Asterisk crashing - two digium cards

Running Fedora Core 6, P2.4, 1g ram, Via Chipset with Asterisk 1.2.16 - yes the makefile has been altered to force i586. Two Digium cards - TE205P & TDM413P Rev I. System is spontaneously rebooting - sometimes runs for hours without incident, other times rebooting within 10 to 15 minutes of last boot.

After the reboot, the two Digium cards swap places - not every time, but quite often - it’s like a 50%-50% coin toss. Based on physical slot location, the TE205P should be coming up first every time. ESCP auto-update is disabled.

However - when the system reboots, they keep swapping around - so that the TDM413P is span 1, channels 1-4 and TE205P is span 2,3 channels 5-52.

If I reconfigure zaptel.conf and zapata.conf for that arrangement then the system starts working fine, but guess what? Next time the system boots - now the TE205P is span 1,2 channels 1-48 and the TDM card is 49-52. Very aggravating, frustrating, and hard to understand. It’s as if I had a gremlin in the machine messing with me. :smiling_imp:

Zaptel dumps when they swap because the span, channels, and signalling don’t line up right. Without Zaptel, Asterisk fails to load. If I reconfigure zaptel.conf and zapata.conf to match the currently recognized card order then modprobe wctdm - zaptel comes up. I can then start up Asterisk. All works until the next time Fedora craps out and reboots.

And people say Windows is flaky??? :question:

the p4mshould be running the i686

you have IRQ issue
you must fix that to solve the issue
in the bios kill everything you can
choose NO PNP OS or linux (other)

go into the advanced settings and “move” the IRQ’s around

NIC onboard ??? Chipset??? if via / boardcom the do not share IRQ with digium card, under heavy load they lockup, and will cause card to do same.

Make sure to run the latest zaptel. You can try turning the little dial on the TE205P to 1 instead of having it on 0 to try and force the card as the first card. Not sure if it will work since the TDM card does not have this though.

More research being done convinces me the IRQ (as suggested here) is probably the culprit or else the motherboard is flaked. (I hope not - I’m tired of swapping out stuff and re-re-reinstalling Fedora Core in this box.) Discovered even more fun on the IRQ side. The TE205P was sharing IRQ 11 with the LAN card & the AGP Video card (nVidia GForce 4x).

I don’t have a fast ethernet card (or a slow one for that matter) laying around that supports manually setting the IRQ. Tried disabling the onboard LAN port and installing a 3COM Etherfast I had on the shelf but it merrily jumped into IRQ 11, nothing gained there.

I killed off the mb serial ports, the printer port, the USB controller, the SATA controller, turned off auto-update. Pulled the TE205P card, turned off VGA palette snoop, forced Fedora to re-recognize the video, and (knock on wood), the system has stopped crashing.

Of course this isn’t much fun because I want the TE205P in the system. However the TDM413P is now picking up IRQ 5 and I am able to move onwards towards setting up the dialplan & so forth.

Have left a cry for help on ECSUSA’s website. The board allows you to reserve IRQ’s for legacy devices but it doesn’t show any way to assign an IRQ to a given PCI slot. I don’t know of any way to forcefeed an IRQ on the Digium card side of the transaction - so my only hope (with this motherboard) is for the techies over there to offer me a way to use the bios to forcefeed/manually apply the IRQ to a given PCI slot.

Some of the remarks in the manual and on the screen seem to hint that you can set up IRQ, DMA, the whole works - but I’ll be darned if I can figure out how to get to that screen. I sadly suspect that I am being victimized by the one size fits all verbiage of the Phoenix Award bios - and reading about features not implemented in this particular model mb.

I don’t think it has to do with IRQ sharing.

MAKE SURE TO USE ZAPTEL 1.2.16 (This version fixes an issue with the dual and quad span T1 cards so they don’t cause a kernel panic/system crash)

[quote=“gllincoln”]
After the reboot, the two Digium cards swap places - not every time, but quite often - it’s like a 50%-50% coin toss.

However - when the system reboots, they keep swapping around - so that the TDM413P is span 1, channels 1-4 and TE205P is span 2,3 channels 5-52.

:?:[/quote]
Very similar problem, cards sometime load in different order on reboot.

Debian Lenny, Zaptel 1.4.4, Libpri-1.4.1 and Asterisk 1.4.10
2 digium cards, TE220 (2 channel, PCI express) and a TDM404P (4 FXO modules), when rebooted modules wctdm and wct4xxp get found in different order. Working config is channels 1-62 on TE220, channel 63-66 on TDM440P.

BIOS “PNP Aware OS” tried both YES and NO.
Tried adjusting switch on TE220 from 0-1.

Anyone found an answer to this.

Thanks

Alec

Seems like it’s a udev related problem, but not sure how to get udev to get 2 different zaptel cards to have the same load order.

Attempted blacklisting wctdm and wct4xxp in /etc/modprobe.d/blacklist, and adding them to /etc/modules. Rebooting didn’t seem to load any of them. So now not blacklisted.

I’d like to know proper way, but the following workaround is fine for now.

Work around: Unload zaptel modules then reload in orderly fashion, done in /etc/init.d/zaptel.

create /etc/init.d/zaptel with the contents as listed below
execute update-rc.d zaptel defaults 9 92

contents of /etc/init.d/zaptel below.

#! /bin/sh

BEGIN INIT INFO

Provides: zaptel modules

Required-Start:

Required-Stop:

Should-Start:

Default-Start:

Default-Stop: 6

Short-Description: Load and Unload the Zaptel Modules.

Description:

END INIT INFO

PATH=/sbin:/usr/sbin:/bin:/usr/bin

. /lib/lsb/init-functions

do_stop () {
# Message should end with a newline since kFreeBSD may
# print more stuff (see #323749)
/sbin/rmmod -a wctdm wct4xxp zttranscode zaptel
}
do_start () {
# Message should end with a newline since kFreeBSD may
# print more stuff (see #323749)
/sbin/rmmod -a wctdm wct4xxp zttranscode zaptel
/sbin/modprobe -q -a zaptel wct4xxp wctdm
/sbin/ztcfg
}

case “$1” in
start)
do_start
;;
restart|reload|force-reload)
echo “Error: argument ‘$1’ not supported” >&2
exit 3
;;
stop)
do_stop
;;
*)
echo “Usage: $0 start|stop” >&2
exit 3
;;
esac