asterisk / dahdi-linux

This is the official dahdi-linux repository. All issues and PR should be raised here.
GNU General Public License v2.0
47 stars 69 forks source link

Wct4xxp 0000:04:08.0: Interrupts not detected #54

Open celsoannes opened 1 month ago

celsoannes commented 1 month ago

Hello,

I currently have the following setup working perfectly:

However, when I try to upgrade to the following configuration:

The Digium Wildcard TE220 card does not work and gives the message:

wct4xxp 0000:04:08.0: Interrupts not detected.

I have tested using the same card on different servers with the same configurations:

ProLiant ML110 G7 (Work)

ProLiant ML110 G3 (Work)

I even tested this configuration:

Both the ProLiant ML110 G7 and ProLiant ML110 G3 work perfectly without any issues.

For some reason, the combination of (ML110 Gen9, Debian 11+, DAHDI 3.2.0+, TE220) does not work. I have the DAHDI configurations as follows:

/etc/dahdi/modules

wct4xxp

/etc/dahdi/system.conf

span=1,1,0,cas,hdb3
cas=1-15:1101
cas=17-31:1101

span=2,0,0,cas,hdb3
cas=32-46:1101
cas=48-62:1101

echocanceller=mg2,1-62

loadzone        = br
defaultzone     = br

kernel: 5.10.0-30-amd64.

dahdi_cfg -vvvvvvvvv

DAHDI Tools Version - 3.2.0

DAHDI Version: 3.2.0
Echo Canceller(s): HWEC
Configuration
======================

SPAN 1: CAS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)
SPAN 2: CAS/HDB3 Build-out: 0 db (CSU)/0-133 feet (DSX-1)

Channel map:

Channel 01: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 01)
Channel 02: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 02)
Channel 03: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 03)
Channel 04: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 04)
Channel 05: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 05)
Channel 06: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 06)
Channel 07: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 07)
Channel 08: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 08)
Channel 09: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 09)
Channel 10: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 10)
Channel 11: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 11)
Channel 12: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 12)
Channel 13: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 13)
Channel 14: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 14)
Channel 15: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 15)
Channel 17: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 17)
Channel 18: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 18)
Channel 19: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 19)
Channel 20: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 20)
Channel 21: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 21)
Channel 22: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 22)
Channel 23: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 23)
Channel 24: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 24)
Channel 25: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 25)
Channel 26: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 26)
Channel 27: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 27)
Channel 28: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 28)
Channel 29: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 29)
Channel 30: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 30)
Channel 31: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 31)
Channel 32: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 32)
Channel 33: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 33)
Channel 34: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 34)
Channel 35: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 35)
Channel 36: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 36)
Channel 37: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 37)
Channel 38: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 38)
Channel 39: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 39)
Channel 40: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 40)
Channel 41: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 41)
Channel 42: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 42)
Channel 43: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 43)
Channel 44: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 44)
Channel 45: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 45)
Channel 46: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 46)
Channel 48: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 48)
Channel 49: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 49)
Channel 50: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 50)
Channel 51: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 51)
Channel 52: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 52)
Channel 53: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 53)
Channel 54: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 54)
Channel 55: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 55)
Channel 56: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 56)
Channel 57: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 57)
Channel 58: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 58)
Channel 59: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 59)
Channel 60: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 60)
Channel 61: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 61)
Channel 62: CAS / User (Default) (Echo Canceler: mg2) (Slaves: 62)

60 channels to configure.

Setting echocan for channel 1 to mg2
Setting echocan for channel 2 to mg2
Setting echocan for channel 3 to mg2
Setting echocan for channel 4 to mg2
Setting echocan for channel 5 to mg2
Setting echocan for channel 6 to mg2
Setting echocan for channel 7 to mg2
Setting echocan for channel 8 to mg2
Setting echocan for channel 9 to mg2
Setting echocan for channel 10 to mg2
Setting echocan for channel 11 to mg2
Setting echocan for channel 12 to mg2
Setting echocan for channel 13 to mg2
Setting echocan for channel 14 to mg2
Setting echocan for channel 15 to mg2
Setting echocan for channel 17 to mg2
Setting echocan for channel 18 to mg2
Setting echocan for channel 19 to mg2
Setting echocan for channel 20 to mg2
Setting echocan for channel 21 to mg2
Setting echocan for channel 22 to mg2
Setting echocan for channel 23 to mg2
Setting echocan for channel 24 to mg2
Setting echocan for channel 25 to mg2
Setting echocan for channel 26 to mg2
Setting echocan for channel 27 to mg2
Setting echocan for channel 28 to mg2
Setting echocan for channel 29 to mg2
Setting echocan for channel 30 to mg2
Setting echocan for channel 31 to mg2
Setting echocan for channel 32 to mg2
Setting echocan for channel 33 to mg2
Setting echocan for channel 34 to mg2
Setting echocan for channel 35 to mg2
Setting echocan for channel 36 to mg2
Setting echocan for channel 37 to mg2
Setting echocan for channel 38 to mg2
Setting echocan for channel 39 to mg2
Setting echocan for channel 40 to mg2
Setting echocan for channel 41 to mg2
Setting echocan for channel 42 to mg2
Setting echocan for channel 43 to mg2
Setting echocan for channel 44 to mg2
Setting echocan for channel 45 to mg2
Setting echocan for channel 46 to mg2
Setting echocan for channel 48 to mg2
Setting echocan for channel 49 to mg2
Setting echocan for channel 50 to mg2
Setting echocan for channel 51 to mg2
Setting echocan for channel 52 to mg2
Setting echocan for channel 53 to mg2
Setting echocan for channel 54 to mg2
Setting echocan for channel 55 to mg2
Setting echocan for channel 56 to mg2
Setting echocan for channel 57 to mg2
Setting echocan for channel 58 to mg2
Setting echocan for channel 59 to mg2
Setting echocan for channel 60 to mg2
Setting echocan for channel 61 to mg2
Setting echocan for channel 62 to mg2

cat /proc/interrupts

           CPU0       CPU1       CPU2       CPU3
  0:          8          0          0          0   IO-APIC   2-edge      timer
  1:          5          0          0          0   IO-APIC   1-edge      i8042
  8:          0          0          0          0   IO-APIC   8-edge      rtc0
  9:          0          1          0          0   IO-APIC   9-fasteoi   acpi
 12:          0          0          0          6   IO-APIC  12-edge      i8042
 16:          0          0          0          0   IO-APIC  16-fasteoi   wct2xxp
 18:          0          0         62          0   IO-APIC  18-fasteoi   i801_smbus, ehci_hcd:usb1, ehci_hcd:usb3
 19:          0         50          0          0   IO-APIC  19-fasteoi   xhci-hcd:usb4, hpilo
 25:          0          0          0          0   PCI-MSI 16384-edge      PCIe PME
 26:          0          0          0          0   PCI-MSI 18432-edge      PCIe PME
 28:          0          0          0          0   PCI-MSI 32768-edge      PCIe PME
 29:          0          0          0          0   PCI-MSI 34816-edge      PCIe PME
 30:          0          0          0          0   PCI-MSI 36864-edge      PCIe PME
 31:          0          0          0          0   PCI-MSI 38912-edge      PCIe PME
 33:          0          0          0          0   PCI-MSI 49152-edge      PCIe PME
 34:          0          0          0          0   PCI-MSI 51200-edge      PCIe PME
 35:          0          0          0          0   PCI-MSI 53248-edge      PCIe PME
 36:          0          0          0          0   PCI-MSI 55296-edge      PCIe PME
 37:          0          0          0          0   PCI-MSI 458752-edge      PCIe PME
 38:          0          0          0          0   PCI-MSI 462848-edge      PCIe PME
 39:          0          0          0          0   PCI-MSI 466944-edge      PCIe PME
 40:          0          0          0          0   PCI-MSI 532480-edge      uhci_hcd:usb2
 41:       6490          0          0          0   PCI-MSI 512000-edge      ahci[0000:00:1f.2]
 43:          0          0          2          0   PCI-MSI 65536-edge      ioat-msix
 45:          0          0          0          2   PCI-MSI 67584-edge      ioat-msix
 46:          2          0          0          0   PCI-MSI 69632-edge      ioat-msix
 47:          0          2          0          0   PCI-MSI 71680-edge      ioat-msix
 48:          0          0          2          0   PCI-MSI 73728-edge      ioat-msix
 49:          0          0          0          2   PCI-MSI 75776-edge      ioat-msix
 50:          2          0          0          0   PCI-MSI 77824-edge      ioat-msix
 51:          0          2          0          0   PCI-MSI 79872-edge      ioat-msix
 52:          0          0        235          0   PCI-MSI 1048576-edge      eno1-tx-0
 53:          0          0          0       2026   PCI-MSI 1048577-edge      eno1-rx-1
 54:          1          0          0          0   PCI-MSI 1048578-edge      eno1-rx-2
NMI:          0          0          0          0   Non-maskable interrupts
LOC:      50166      24851      35865     120181   Local timer interrupts
SPU:          0          0          0          0   Spurious interrupts
PMI:          0          0          0          0   Performance monitoring interrupts
IWI:          0          0          0          0   IRQ work interrupts
RTR:          1          0          0          0   APIC ICR read retries
RES:        194        170         91         94   Rescheduling interrupts
CAL:       1716       3120       2970       3338   Function call interrupts
TLB:          2         16          2          1   TLB shootdowns
TRM:          0          0          0          0   Thermal event interrupts
THR:          0          0          0          0   Threshold APIC interrupts
DFR:          0          0          0          0   Deferred Error APIC interrupts
MCE:          0          0          0          0   Machine check exceptions
MCP:          2          3          3          3   Machine check polls
ERR:          0
MIS:          0
PIN:          0          0          0          0   Posted-interrupt notification event
NPI:          0          0          0          0   Nested posted-interrupt event
PIW:          0          0          0          0   Posted-interrupt wakeup event

dmesg

[   10.593113] dahdi: loading out-of-tree module taints kernel.
[   10.593329] dahdi: module verification failed: signature and/or required key missing - tainting kernel
[   10.596520] dahdi: Version: 3.4.0
[   10.596732] dahdi: Telephony Interface Registered on major 196
[   10.734042] wct4xxp 0000:04:08.0: Firmware Version: c01a016c
[   10.736638] wct4xxp 0000:04:08.0: FALC Framer Version: 2.1 or earlier
[   10.736754] wct4xxp 0000:04:08.0: Found a Wildcard: Wildcard TE220 (4th Gen)
[   10.798833] wct4xxp 0000:04:08.0: firmware: direct-loading firmware dahdi-fw-oct6114-064.bin
[   10.798844] VPM450: echo cancellation for 64 channels
[   13.572753] tg3 0000:02:00.0 eno1: Link is up at 1000 Mbps, full duplex
[   13.572760] tg3 0000:02:00.0 eno1: Flow control is off for TX and off for RX
[   13.572763] tg3 0000:02:00.0 eno1: EEE is disabled
[   13.572782] IPv6: ADDRCONF(NETDEV_CHANGE): eno1: link becomes ready
[   15.471722] wct4xxp 0000:04:08.0: VPM450: hardware DTMF disabled.
[   15.471725] wct4xxp 0000:04:08.0: VPM450: Present and operational servicing 2 span(s)
[   16.008063] wct4xxp 0000:04:08.0: TE2XXP: Span 1 configured for CAS/HDB3
[   16.008187] wct4xxp 0000:04:08.0: SPAN 1: Primary Sync Source
[   18.085304] wct4xxp 0000:04:08.0: Interrupts not detected.
[   18.085543] wct4xxp 0000:04:08.0: TE2XXP: Span 2 configured for CAS/HDB3
[   18.085588] wct4xxp 0000:04:08.0: Setting yellow alarm span 2
[   20.165306] wct4xxp 0000:04:08.0: Interrupts not detected.

Considering that the card works on the same machine with an older version, it should work with a newer version.

Can anyone help me?

Thank you!

tpimont commented 1 month ago

Same problem here with Rocky 9 on Proliant Gen9, work with other server Gen8 Gen10. On the same server Centos 7 Dahdi 2.11 work .

didnt find any solution at this time.

InterLinked1 commented 1 month ago

Considering that the card works on the same machine with an older version, it should work with a newer version.

Can anyone help me?

Thank you!

I agree it should work... these kinds of issues are tricky to track down though and hard for others to reproduce as they don't have all the same hardware. I do have a Proliant ML110 G7 but it doesn't look like there are ever issues with that you've observed.

One thing that's worked for me in the past, you could try is doing a git bisect (or manually bisecting by going back to each commit). If you do binary search between the Git head at the time of 2.11 and now, you should be able to identify a commit that broke something. If that can be identified, that gives us something to work with.

celsoannes commented 1 month ago

@InterLinked1 I've always installed the DAHDI package from the address http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/.

I've never installed it via Git, which makes me hesitant to use git bisect because I wouldn't know how to do it precisely. This uncertainty could potentially lead us in the wrong direction when diagnosing the issue.

Additionally, I can't install a version of DAHDI earlier than 3.2.0 on Debian 11 due to kernel limitations. If there's a way for me to contact you, I can provide access to the machine if you're interested in testing.

InterLinked1 commented 1 month ago

@InterLinked1 I've always installed the DAHDI package from the address http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/.

It's generally recommended to install dahdi-linux and dahdi-tools separately (and that's what I do), I can't say anything about using the complete tarball.

I've never installed it via Git, which makes me hesitant to use git bisect because I wouldn't know how to do it precisely. This uncertainty could potentially lead us in the wrong direction when diagnosing the issue.

I actually don't use git bisect proper myself. You can simply checkout a specific commit git checkout <COMMIT> (git log will provide a list of these in descending order). You can basically start in the middle and keep dividing the commits in half until you narrow it down. Since DAHDI is a much smaller project than, say, Asterisk, it shouldn't take more than 5-10 tries to narrow it down in this manner.

Additionally, I can't install a version of DAHDI earlier than 3.2.0 on Debian 11 due to kernel limitations.

Yeah, that can be a challenge with these sorts of things... I think newer DAHDI versiond should run on an older kernel since they are intended to be backwards compatible, so you could maybe try using an older kernel + range of DAHDI versions and see if you notice anything.

If there's a way for me to contact you, I can provide access to the machine if you're interested in testing.

Unfortunately, I don't have time to do personalized troubleshooting, but I'm happy to provide guidance if it's helpful, and if you narrow it down to a specific commit, I could at least take a look at it from there.