Dahdi dummy

From W9CR
Jump to navigation Jump to search

dahdi_dummy is the timing only dahdi driver for olver versions of asterisk. It's not needed on intel as newer dahdi doesn't need it. On the RPi or ARM platforms it's really useful.

Unfortunately John David McGough, KB4FXC of Internet Technologies, Inc has taken this code, removed the author and renamed it as part of the pirated software known as HamVoIP.


I don't care, I just want this to work on ASL 1.01!

Ok, here's the skinny on how to make this work on an ASL 1.01 system.

  1. ensure your system is up and going, with the kernel pinned per the readme
    1. apt-mark hold raspberrypi-kernel-headers raspberrypi-kernel
  2. apt-get install gcc raspberrypi-kernel-headers make vim git
  3. vim /usr/src/asl-dahdi-linux-2.11.1/linux/drivers/dahdi/Kbuild remove the # from the dummy file
  4. cd /usr/src/asl-dahdi-linux-2.11.1
  5. make
  6. make install
  7. echo -e "#needed for rpi timing \ndahdi_dummy" >>/etc/modules # add it to modules.conf
  8. modprobe dahdi_dummy
  9. service restart asterisk

Verify :

StPeteRpt*CLI> dahdi show status
Description                              Alarms     IRQ        bpviol     CRC4
DAHDI_DUMMY/1 (source: HRtimer) 1        UNCONFIGUR 0          0          0




Support Files about this

compare of the ASM code between the two drivers

dahdi_hrtimer.ko-stripped:     file format elf32-littlearm                        dahdi_dummy.ko-stripped:     file format elf32-littlearm
                                                                                  
                                                                                  
Disassembly of section .text:                                                     Disassembly of section .text:
                                                                                  
00000000 <.text>:                                                                 00000000 <.text>:
   0:   e92d40f0        push    {r4, r5, r6, r7, lr}                                 0:   e92d40f0        push    {r4, r5, r6, r7, lr}
   4:   e3004000        movw    r4, #0                                               4:   e3004000        movw    r4, #0
   8:   e3404000        movt    r4, #0                                               8:   e3404000        movt    r4, #0
   c:   e1a06000        mov     r6, r0                                               c:   e1a06000        mov     r6, r0
  10:   e5940000        ldr     r0, [r4]                                            10:   e5940000        ldr     r0, [r4]
  14:   e24dd00c        sub     sp, sp, #12                                         14:   e24dd00c        sub     sp, sp, #12
  18:   e2800004        add     r0, r0, #4                                          18:   e2800004        add     r0, r0, #4
  1c:   e10f5000        mrs     r5, CPSR                                            1c:   e10f5000        mrs     r5, CPSR
  20:   f10c0080        cpsid   i                                                   20:   f10c0080        cpsid   i
  24:   ebfffffe        bl      0x24                                                24:   ebfffffe        bl      0x24
  28:   e3c55040        bic     r5, r5, #64     ; 0x40                              28:   e3c55040        bic     r5, r5, #64     ; 0x40
  2c:   e10f3000        mrs     r3, CPSR                                            2c:   e10f3000        mrs     r3, CPSR
  30:   e2033040        and     r3, r3, #64     ; 0x40                              30:   e2033040        and     r3, r3, #64     ; 0x40
  34:   e1835005        orr     r5, r3, r5                                          34:   e1835005        orr     r5, r3, r5
  38:   e121f005        msr     CPSR_c, r5                                          38:   e121f005        msr     CPSR_c, r5
  3c:   e5940000        ldr     r0, [r4]                                            3c:   e5940000        ldr     r0, [r4]
  40:   e2800004        add     r0, r0, #4                                          40:   e2800004        add     r0, r0, #4
  44:   e10f5000        mrs     r5, CPSR                                            44:   e10f5000        mrs     r5, CPSR
  48:   f10c0080        cpsid   i                                                   48:   f10c0080        cpsid   i
  4c:   ebfffffe        bl      0x4c                                                4c:   ebfffffe        bl      0x4c
  50:   e3c55040        bic     r5, r5, #64     ; 0x40                              50:   e3c55040        bic     r5, r5, #64     ; 0x40
  54:   e10f3000        mrs     r3, CPSR                                            54:   e10f3000        mrs     r3, CPSR
  58:   e2033040        and     r3, r3, #64     ; 0x40                              58:   e2033040        and     r3, r3, #64     ; 0x40
  5c:   e1835005        orr     r5, r3, r5                                          5c:   e1835005        orr     r5, r3, r5
  60:   e121f005        msr     CPSR_c, r5                                          60:   e121f005        msr     CPSR_c, r5
  64:   e1c621d0        ldrd    r2, [r6, #16]                                       64:   e1c621d0        ldrd    r2, [r6, #16]
  68:   e3046240        movw    r6, #16960      ; 0x4240                            68:   e3046240        movw    r6, #16960      ; 0x4240
  6c:   e340600f        movt    r6, #15                                             6c:   e340600f        movt    r6, #15
  70:   e3a07000        mov     r7, #0                                              70:   e3a07000        mov     r7, #0
  74:   e2840008        add     r0, r4, #8                                          74:   e2840008        add     r0, r4, #8
  78:   e1cd60f0        strd    r6, [sp]                                            78:   e1cd60f0        strd    r6, [sp]
  7c:   ebfffffe        bl      0x7c                                                7c:   ebfffffe        bl      0x7c
  80:   e3500001        cmp     r0, #1                                              80:   e3500001        cmp     r0, #1
  84:   9a000005        bls     0xa0                                                84:   9a000005        bls     0xa0
  88:   e1a05000        mov     r5, r0                                              88:   e1a05000        mov     r5, r0
  8c:   e3000000        movw    r0, #0                                              8c:   e3000000        movw    r0, #0
  90:   e3400000        movt    r0, #0                                              90:   e3400000        movt    r0, #0
  94:   ebfffffe        bl      0x94                                                94:   ebfffffe        bl      0x94
  98:   e3500000        cmp     r0, #0                                              98:   e3500000        cmp     r0, #0
  9c:   1a000017        bne     0x100                                               9c:   1a000013        bne     0xf0
  a0:   e5943038        ldr     r3, [r4, #56]   ; 0x38                              a0:   e5942038        ldr     r2, [r4, #56]   ; 0x38
  a4:   e3002000        movw    r2, #0                                              a4:   e3003000        movw    r3, #0
  a8:   e3402000        movt    r2, #0                                              a8:   e3403000        movt    r3, #0
  ac:   e3530001        cmp     r3, #1                                              ac:   e3520000        cmp     r2, #0
  b0:   da00000b        ble     0xe4                                                b0:   0a00000b        beq     0xe4
  b4:   e592303c        ldr     r3, [r2, #60]   ; 0x3c                              b4:   e593103c        ldr     r1, [r3, #60]   ; 0x3c
  b8:   e3080bad        movw    r0, #35757      ; 0x8bad                            b8:   e3082bad        movw    r2, #35757      ; 0x8bad
  bc:   e34608db        movt    r0, #26843      ; 0x68db                            bc:   e34628db        movt    r2, #26843      ; 0x68db
  c0:   e301c388        movw    ip, #5000       ; 0x1388                            c0:   e3010388        movw    r0, #5000       ; 0x1388
  c4:   e2831001        add     r1, r3, #1                                          c4:   e281c001        add     ip, r1, #1
  c8:   e582103c        str     r1, [r2, #60]   ; 0x3c                              c8:   e583c03c        str     ip, [r3, #60]   ; 0x3c
  cc:   e0c10093        smull   r0, r1, r3, r0                                      cc:   e0c32291        smull   r2, r3, r1, r2
  d0:   e1a02fc3        asr     r2, r3, #31                                         d0:   e1a02fc1        asr     r2, r1, #31
  d4:   e06225c1        rsb     r2, r2, r1, asr #11                                 d4:   e06225c3        rsb     r2, r2, r3, asr #11
  d8:   e063329c        mls     r3, ip, r2, r3                                      d8:   e0631290        mls     r3, r0, r2, r1
  dc:   e3530000        cmp     r3, #0                                              dc:   e3530000        cmp     r3, #0
  e0:   0a000002        beq     0xf0                                                e0:   0a000007        beq     0x104
  e4:   e3a00001        mov     r0, #1                                              e4:   e3a00001        mov     r0, #1
  e8:   e28dd00c        add     sp, sp, #12                                         e8:   e28dd00c        add     sp, sp, #12
  ec:   e8bd80f0        pop     {r4, r5, r6, r7, pc}                                ec:   e8bd80f0        pop     {r4, r5, r6, r7, pc}
  f0:   e3000000        movw    r0, #0                                              f0:   e3000000        movw    r0, #0
  f4:   e3400000        movt    r0, #0                                              f4:   e2451001        sub     r1, r5, #1
  f8:   ebfffffe        bl      0xf8                                                f8:   e3400000        movt    r0, #0
  fc:   eafffff8        b       0xe4                                                fc:   ebfffffe        bl      0xfc
 100:   e3000000        movw    r0, #0                                             100:   eaffffe6        b       0xa0
 104:   e2451001        sub     r1, r5, #1                                         104:   e3000000        movw    r0, #0
 108:   e3400000        movt    r0, #0                                             108:   e3400000        movt    r0, #0
 10c:   ebfffffe        bl      0x10c                                              10c:   ebfffffe        bl      0x10c
 110:   eaffffe2        b       0xa0                                               110:   eafffff3        b       0xe4
 114:   e3003000        movw    r3, #0                                             114:   e3003000        movw    r3, #0
 118:   e30810c0        movw    r1, #32960      ; 0x80c0                           118:   e30810c0        movw    r1, #32960      ; 0x80c0
 11c:   e3403000        movt    r3, #0                                             11c:   e3403000        movt    r3, #0
 120:   e3401060        movt    r1, #96 ; 0x60                                     120:   e3401060        movt    r1, #96 ; 0x60
 124:   e92d43f0        push    {r4, r5, r6, r7, r8, r9, lr}                       124:   e92d43f0        push    {r4, r5, r6, r7, r8, r9, lr}
 128:   e3002b38        movw    r2, #2872       ; 0xb38                            128:   e3002b38        movw    r2, #2872       ; 0xb38
 12c:   e24dd014        sub     sp, sp, #20                                        12c:   e24dd014        sub     sp, sp, #20
 130:   e5930030        ldr     r0, [r3, #48]   ; 0x30                             130:   e5930030        ldr     r0, [r3, #48]   ; 0x30
 134:   ebfffffe        bl      0x134                                              134:   ebfffffe        bl      0x134
 138:   e3005000        movw    r5, #0                                             138:   e3005000        movw    r5, #0
 13c:   e3405000        movt    r5, #0                                             13c:   e3405000        movt    r5, #0
 140:   e3500000        cmp     r0, #0                                             140:   e3500000        cmp     r0, #0
 144:   e5850000        str     r0, [r5]                                           144:   e5850000        str     r0, [r5]
 148:   0a000047        beq     0x26c                                              148:   0a000047        beq     0x26c
 14c:   e1a04000        mov     r4, r0                                             14c:   e1a04000        mov     r4, r0
 150:   ebfffffe        bl      0x150                                              150:   ebfffffe        bl      0x150
 154:   e3500000        cmp     r0, #0                                             154:   e3500000        cmp     r0, #0
 158:   e5840000        str     r0, [r4]                                           158:   e5840000        str     r0, [r4]
 15c:   0a000040        beq     0x264                                              15c:   0a000040        beq     0x264
 160:   e3001000        movw    r1, #0                                             160:   e3001000        movw    r1, #0
 164:   e2800018        add     r0, r0, #24                                        164:   e2800018        add     r0, r0, #24
 168:   e3401000        movt    r1, #0                                             168:   e3401000        movt    r1, #0
 16c:   e3a06001        mov     r6, #1                                             16c:   e2847e11        add     r7, r4, #272    ; 0x110
 170:   ebfffffe        bl      0x170                                              170:   ebfffffe        bl      0x170
 174:   e3003000        movw    r3, #0                                             174:   e3003000        movw    r3, #0
 178:   e3403000        movt    r3, #0                                             178:   e3403000        movt    r3, #0
 17c:   e284c008        add     ip, r4, #8                                         17c:   e284e008        add     lr, r4, #8
 180:   e893000f        ldm     r3, {r0, r1, r2, r3}                               180:   e893000f        ldm     r3, {r0, r1, r2, r3}
 184:   e284ee11        add     lr, r4, #272    ; 0x110                            184:   e1a0c00e        mov     ip, lr
 188:   e584eb30        str     lr, [r4, #2864] ; 0xb30                            188:   e5847b30        str     r7, [r4, #2864] ; 0xb30
 18c:   e88c000f        stm     ip, {r0, r1, r2, r3}                               18c:   e3a06001        mov     r6, #1
 190:   e3002000        movw    r2, #0                                             190:   e8ac0007        stmia   ip!, {r0, r1, r2}
 194:   e1a0300c        mov     r3, ip                                             194:   e3002000        movw    r2, #0
 198:   e3402000        movt    r2, #0                                             198:   e1cc30b0        strh    r3, [ip]
 19c:   e3a0104f        mov     r1, #79 ; 0x4f                                     19c:   e3402000        movt    r2, #0
 1a0:   e2840030        add     r0, r4, #48     ; 0x30                             1a0:   e1a0300e        mov     r3, lr
 1a4:   e58d6000        str     r6, [sp]                                           1a4:   e3a0104f        mov     r1, #79 ; 0x4f
 1a8:   ebfffffe        bl      0x1a8                                              1a8:   e2840030        add     r0, r4, #48     ; 0x30
 1ac:   e5940b30        ldr     r0, [r4, #2864] ; 0xb30                            1ac:   e58d6000        str     r6, [sp]
 1b0:   e3001000        movw    r1, #0                                             1b0:   ebfffffe        bl      0x1b0
 1b4:   e1a02006        mov     r2, r6                                             1b4:   e5940b30        ldr     r0, [r4, #2864] ; 0xb30
 1b8:   e3401000        movt    r1, #0                                             1b8:   e3001000        movw    r1, #0
 1bc:   e3a03000        mov     r3, #0                                             1bc:   e1a02006        mov     r2, r6
 1c0:   e2800018        add     r0, r0, #24                                        1c0:   e3401000        movt    r1, #0
 1c4:   ebfffffe        bl      0x1c4                                              1c4:   e3a03000        mov     r3, #0
 1c8:   e5941000        ldr     r1, [r4]                                           1c8:   e2800018        add     r0, r0, #24
 1cc:   e1a03004        mov     r3, r4                                             1cc:   ebfffffe        bl      0x1cc
 1d0:   e3002000        movw    r2, #0                                             1d0:   e5941000        ldr     r1, [r4]
 1d4:   e3402000        movt    r2, #0                                             1d4:   e1a03004        mov     r3, r4
 1d8:   e3a00000        mov     r0, #0                                             1d8:   e3002000        movw    r2, #0
 1dc:   e5812014        str     r2, [r1, #20]                                      1dc:   e3402000        movt    r2, #0
 1e0:   e3a0e00b        mov     lr, #11                                            1e0:   e3a0c000        mov     ip, #0
 1e4:   e5b3cb30        ldr     ip, [r3, #2864]!        ; 0xb30                    1e4:   e5812014        str     r2, [r1, #20]
 1e8:   e1a01000        mov     r1, r0                                             1e8:   e2840f41        add     r0, r4, #260    ; 0x104
 1ec:   e59f211c        ldr     r2, [pc, #284]  ; 0x310                            1ec:   e5b3eb30        ldr     lr, [r3, #2864]!        ; 0xb30
 1f0:   e58c6044        str     r6, [ip, #68]   ; 0x44                             1f0:   e1a0100c        mov     r1, ip
 1f4:   e594cb30        ldr     ip, [r4, #2864] ; 0xb30                            1f4:   e59f2114        ldr     r2, [pc, #276]  ; 0x310
 1f8:   e58430e0        str     r3, [r4, #224]  ; 0xe0                             1f8:   e58e6044        str     r6, [lr, #68]   ; 0x44
 1fc:   e58400a0        str     r0, [r4, #160]  ; 0xa0                             1fc:   e594eb30        ldr     lr, [r4, #2864] ; 0xb30
 200:   e2840f41        add     r0, r4, #260    ; 0x104                            200:   e58430e0        str     r3, [r4, #224]  ; 0xe0
 204:   e5846084        str     r6, [r4, #132]  ; 0x84                             204:   e5846084        str     r6, [r4, #132]  ; 0x84
 208:   e584e080        str     lr, [r4, #128]  ; 0x80                             208:   e584c0a0        str     ip, [r4, #160]  ; 0xa0
 20c:   e58c40c4        str     r4, [ip, #196]  ; 0xc4                             20c:   e58e40c4        str     r4, [lr, #196]  ; 0xc4
 210:   e5943000        ldr     r3, [r4]                                           210:   e5943000        ldr     r3, [r4]
 214:   e58420e4        str     r2, [r4, #228]  ; 0xe4                             214:   e58420e4        str     r2, [r4, #228]  ; 0xe4
 218:   e5932004        ldr     r2, [r3, #4]                                       218:   e5932004        ldr     r2, [r3, #4]
 21c:   e5830004        str     r0, [r3, #4]                                       21c:   e5830004        str     r0, [r3, #4]
 220:   e5843104        str     r3, [r4, #260]  ; 0x104                            220:   e5843104        str     r3, [r4, #260]  ; 0x104
 224:   e5842108        str     r2, [r4, #264]  ; 0x108                            224:   e5842108        str     r2, [r4, #264]  ; 0x108
 228:   e5820000        str     r0, [r2]                                           228:   e5820000        str     r0, [r2]
 22c:   e5940000        ldr     r0, [r4]                                           22c:   e5940000        ldr     r0, [r4]
 230:   ebfffffe        bl      0x230                                              230:   ebfffffe        bl      0x230
 234:   e2507000        subs    r7, r0, #0                                         234:   e2507000        subs    r7, r0, #0
 238:   0a000010        beq     0x280                                              238:   0a000010        beq     0x280
 23c:   e1a04007        mov     r4, r7                                             23c:   e1a04007        mov     r4, r7
 240:   e3000000        movw    r0, #0                                             240:   e3000000        movw    r0, #0
 244:   e1a01004        mov     r1, r4                                             244:   e1a01004        mov     r1, r4
 248:   e3400000        movt    r0, #0                                             248:   e3400000        movt    r0, #0
 24c:   ebfffffe        bl      0x24c                                              24c:   ebfffffe        bl      0x24c
 250:   e5950000        ldr     r0, [r5]                                           250:   e5950000        ldr     r0, [r5]
 254:   ebfffffe        bl      0x254                                              254:   ebfffffe        bl      0x254
 258:   e1a00004        mov     r0, r4                                             258:   e1a00004        mov     r0, r4
 25c:   e28dd014        add     sp, sp, #20                                        25c:   e28dd014        add     sp, sp, #20
 260:   e8bd83f0        pop     {r4, r5, r6, r7, r8, r9, pc}                       260:   e8bd83f0        pop     {r4, r5, r6, r7, r8, r9, pc}
 264:   e3e0400b        mvn     r4, #11                                            264:   e3e0400b        mvn     r4, #11
 268:   eafffff4        b       0x240                                              268:   eafffff4        b       0x240
 26c:   e3000000        movw    r0, #0                                             26c:   e3000000        movw    r0, #0
 270:   e3e0400b        mvn     r4, #11                                            270:   e3e0400b        mvn     r4, #11
 274:   e3400000        movt    r0, #0                                             274:   e3400000        movt    r0, #0
 278:   ebfffffe        bl      0x278                                              278:   ebfffffe        bl      0x278
 27c:   eafffff5        b       0x258                                              27c:   eafffff5        b       0x258
 280:   e3000000        movw    r0, #0                                             280:   e3000000        movw    r0, #0
 284:   e3a08000        mov     r8, #0                                             284:   e3a08000        mov     r8, #0
 288:   e3400000        movt    r0, #0                                             288:   e3400000        movt    r0, #0
 28c:   e3a09000        mov     r9, #0                                             28c:   e3a09000        mov     r9, #0
 290:   ebfffffe        bl      0x290                                              290:   ebfffffe        bl      0x290
 294:   e1a01006        mov     r1, r6                                             294:   e1a01006        mov     r1, r6
 298:   e1a02006        mov     r2, r6                                             298:   e1a02006        mov     r2, r6
 29c:   e2850008        add     r0, r5, #8                                         29c:   e2850008        add     r0, r5, #8
 2a0:   ebfffffe        bl      0x2a0                                              2a0:   ebfffffe        bl      0x2a0
 2a4:   e3000000        movw    r0, #0                                             2a4:   e3000000        movw    r0, #0
 2a8:   e3400000        movt    r0, #0                                             2a8:   e3400000        movt    r0, #0
 2ac:   ebfffffe        bl      0x2ac                                              2ac:   ebfffffe        bl      0x2ac
 2b0:   e3000000        movw    r0, #0                                             2b0:   e3000000        movw    r0, #0
 2b4:   e3003000        movw    r3, #0                                             2b4:   e3003000        movw    r3, #0
 2b8:   e3400000        movt    r0, #0                                             2b8:   e3400000        movt    r0, #0
 2bc:   e3403000        movt    r3, #0                                             2bc:   e3403000        movt    r3, #0
 2c0:   e5853028        str     r3, [r5, #40]   ; 0x28                             2c0:   e5853028        str     r3, [r5, #40]   ; 0x28
 2c4:   ebfffffe        bl      0x2c4                                              2c4:   ebfffffe        bl      0x2c4
 2c8:   e3042240        movw    r2, #16960      ; 0x4240                           2c8:   e3042240        movw    r2, #16960      ; 0x4240
 2cc:   e340200f        movt    r2, #15                                            2cc:   e340200f        movt    r2, #15
 2d0:   e3a03000        mov     r3, #0                                             2d0:   e3a03000        mov     r3, #0
 2d4:   e2850008        add     r0, r5, #8                                         2d4:   e2850008        add     r0, r5, #8
 2d8:   e58d6008        str     r6, [sp, #8]                                       2d8:   e58d6008        str     r6, [sp, #8]
 2dc:   e1cd80f0        strd    r8, [sp]                                           2dc:   e1cd80f0        strd    r8, [sp]
 2e0:   ebfffffe        bl      0x2e0                                              2e0:   ebfffffe        bl      0x2e0
 2e4:   e3000000        movw    r0, #0                                             2e4:   e3000000        movw    r0, #0
 2e8:   e3400000        movt    r0, #0                                             2e8:   e3400000        movt    r0, #0
 2ec:   ebfffffe        bl      0x2ec                                              2ec:   ebfffffe        bl      0x2ec
 2f0:   e5954038        ldr     r4, [r5, #56]   ; 0x38                             2f0:   e5954038        ldr     r4, [r5, #56]   ; 0x38
 2f4:   e3540000        cmp     r4, #0                                             2f4:   e3540000        cmp     r4, #0
 2f8:   0affffd6        beq     0x258                                              2f8:   0affffd6        beq     0x258
 2fc:   e3000000        movw    r0, #0                                             2fc:   e3000000        movw    r0, #0
 300:   e1a04007        mov     r4, r7                                             300:   e1a04007        mov     r4, r7
 304:   e3400000        movt    r0, #0                                             304:   e3400000        movt    r0, #0
 308:   ebfffffe        bl      0x308                                              308:   ebfffffe        bl      0x308
 30c:   eaffffd1        b       0x258                                              30c:   eaffffd1        b       0x258
 310:   00000014        andeq   r0, r0, r4, lsl r0                                 310:   00000014        andeq   r0, r0, r4, lsl r0
 314:   e92d4010        push    {r4, lr}                                           314:   e92d4010        push    {r4, lr}
 318:   e3004000        movw    r4, #0                                             318:   e3004000        movw    r4, #0
 31c:   e3404000        movt    r4, #0                                             31c:   e3404000        movt    r4, #0
 320:   e2840008        add     r0, r4, #8                                         320:   e2840008        add     r0, r4, #8
 324:   ebfffffe        bl      0x324                                              324:   ebfffffe        bl      0x324
 328:   e5943000        ldr     r3, [r4]                                           328:   e5943000        ldr     r3, [r4]
 32c:   e5930000        ldr     r0, [r3]                                           32c:   e5930000        ldr     r0, [r3]
 330:   ebfffffe        bl      0x330                                              330:   ebfffffe        bl      0x330
 334:   e5943000        ldr     r3, [r4]                                           334:   e5943000        ldr     r3, [r4]
 338:   e5930000        ldr     r0, [r3]                                           338:   e5930000        ldr     r0, [r3]
 33c:   ebfffffe        bl      0x33c                                              33c:   ebfffffe        bl      0x33c
 340:   e5940000        ldr     r0, [r4]                                           340:   e5940000        ldr     r0, [r4]
 344:   ebfffffe        bl      0x344                                              344:   ebfffffe        bl      0x344
 348:   e5943038        ldr     r3, [r4, #56]   ; 0x38                             348:   e5943038        ldr     r3, [r4, #56]   ; 0x38
 34c:   e3530000        cmp     r3, #0                                             34c:   e3530000        cmp     r3, #0
 350:   08bd8010        popeq   {r4, pc}                                           350:   08bd8010        popeq   {r4, pc}
 354:   e3000000        movw    r0, #0                                             354:   e3000000        movw    r0, #0
 358:   e3400000        movt    r0, #0                                             358:   e3400000        movt    r0, #0
 35c:   e8bd4010        pop     {r4, lr}                                           35c:   e8bd4010        pop     {r4, lr}
 360:   eafffffe        b       0x360                                              360:   eafffffe        b       0x360

First email about this from september 2019

It looks like John David has renamed dummy to hrtimer, dummy is designed to
provide good timing on systems lacking dahdi hardware.   I've attached strings
of his module and the dummy one I built today, they are virtually identical.

Please test this if you have asl1.01 on a rpi.

Simply building this seems to fix any studering on asl 1.01 running on a RPi3:

bryan@StPeteRpt:~ $ sudo dahdi_test
[sudo] password for bryan:
Opened pseudo dahdi interface, measuring accuracy...
99.614% 99.594% 99.608% 99.608% 98.476% 99.638% 99.599% 99.601%
99.600% 98.450% 99.602% 99.600% 99.601% 99.600% 98.445% 99.581%
99.621% 99.605% 99.597% 98.478% 99.630% 99.579% 99.626% 99.601%
98.478% 99.630% 99.602% 99.600% 99.601% 98.446% 99.601% 99.580% ^C
--- Results after 32 passes ---
Best: 99.638% -- Worst: 98.445% -- Average: 99.390271%
Cumulative Accuracy (not per pass): 99.967

After insmod of dummy module.

bryan@StPeteRpt:~ $ sudo dahdi_test
Opened pseudo dahdi interface, measuring accuracy...
99.990% 99.967% 99.991% 99.992% 99.991% 99.992% 99.991% 99.991%
99.991% 99.988% 99.992% 99.991% 99.991% 99.992% 99.991% 99.991%
99.991% 99.990% 99.992% 99.991% 99.991% 99.991% 99.991% 99.991%
99.992% 99.991% 99.991% 99.992% 99.991% 99.991% 99.991% 99.991%
99.991% 99.990% 99.991% 99.992% 99.991% 99.991% 99.991% 99.991% ^C
--- Results after 40 passes ---
Best: 99.992% -- Worst: 99.967% -- Average: 99.990443%
Cumulative Accuracy (not per pass): 99.990

Here it is on an intel server running a pci_radio card:

root@Itchy:/home/bryan# dahdi_test
Opened pseudo dahdi interface, measuring accuracy...
99.993% 99.986% 99.995% 99.992% 99.984% 99.971% 99.993% 99.990%
99.992% 99.992% 99.991% 99.990% 99.996% 99.990% 99.971% 99.954%
99.994% 99.992% 99.991% 99.995% 99.983% 99.993% 99.992% 99.992%
99.997% 99.990% 99.985% 99.995% 99.990% 99.996% 99.989% 99.993%
99.993% 99.989% 99.997% 99.989% 99.994% 99.996% 99.988% 99.993% ^C
--- Results after 40 passes ---
Best: 99.997% -- Worst: 99.954% -- Average: 99.989596%
Cummulative Accuracy (not per pass): 99.992

It's identical.

To build as root:
# cd /usr/src/asl-dahdi-linux-2.11.1/linux
# export MODULES_EXTRA='dahdi_dummy'
# make
# insmod /usr/src/asl-dahdi-linux-2.11.1/linux/drivers/dahdi/dahdi_dummy.ko

# lsmod |grep dahdi
dahdi_dummy             3432  0
dahdi                 229561  35 dahdi_dummy
crc_ccitt               1771  1 dahdi

you will need to do dahdi_genconf and then dahdi_cfg.  ASL1.01 is missing this
in the service script that starts asterisk.  It needs to be added.
Restart asterisk
#service asterisk restart

# dahdi_scan
[1]
active=yes
alarms=UNCONFIGURED
description=DAHDI_DUMMY/1 (source: HRtimer) 1
name=DAHDI_DUMMY/1
manufacturer=
devicetype=DAHDI Dummy Timing
location=
basechan=1
totchans=0
irq=0

I'm not on the admin list, so unicast if you have a question.