[Asterisk-Users] PRI got event: HDLC Abort (6) on Primary, D-channel of span 1

Derrick Stensrud dstensrud at worleyco.com
Sat Jul 16 14:04:59 MST 2005


Hey Kevin,
	I managed to resolve this error after a week of pulling out my hair.  Here is what I did to resolve the error and a link below for further assistance.

1 - If you are not using 2.6 kernel, upgrade.  

2 - Check your span line in your zaptel.conf.  You should be receiving timing, not giving it, when using a PRI (generally).  Change the second number from 1 to 0.  Save and restart asterisk.  (span=1,0,0,esf,b8zs)

3 - I had a SATA RAID ARRAY setup (RAID 5) because I thought, hey, I can have redundency so that I don't loose voicemail if a drive crashes.  Sadly if you run anything other than an IDE Drive you cannot use DMA and the Digium cards rely heavily on DMA.  So I was forced to take out my RAID Controller and SATA drives and install a nice high end 120 Gig IDE Drive.  

4 - In you BIOS disable any on board devices that you can (i.e. scsi controllers, usb controllers, serial controllers, etc...).  If your BIOS supports/has an APIC(Advanced Processor Interrupt Controller) (which most modern motherboards do) go into your IRQ settings and set them all to the default AUTO type option.  (you'll see why further below).

5 - In your 2.6 kernel enable these options:
	PROCESSOR TYPE AND FEATURES --->
		[*] Local APIC support on uniprocessors                                                                                                     		[*]   IO-APIC support on uniprocessors
	DEVICE DRIVERS --->
		ATA/ATAPI/MFM/RLL support --->
			[*]       Generic PCI bus-master DMA support
			[*]         Use PCI DMA by default when available
			<*>         VIA82CXXX chipset support
----- I CHOSE THE VIA82CXXX CHIPSET SUPPORT FOR MY MOTHERBOARD, CHOSE THE APPROPRIATE ONE FOR YOUR MOTHERBOARD, THIS IS IMPORTANT IN USING DMA.  THE APIC IS GOING TO ASSIGN IRQS AND PREVENT SHARING, ALSO FREES UP MORE THAN 16 IRQ LIMIT.  SAVE THE CHANGES AND RECOMPILE YOUR KERNEL.

6 - run these commands to enable dma if it is not already on and enable irq unmask

linux# hdparm -d1 /dev/hda

/dev/hda:
 setting using_dma to 1 (on)
 using_dma    =  1 (on)



linux# hdparm -u1 /dev/hda

/dev/hda:
 setting unmaskirq to 1 (on)
 unmaskirq    =  1 (on)




linux# hdparm /dev/hda			<----shows info.

/dev/hda:
 multcount    = 16 (on)
 IO_support   =  1 (32-bit)
 unmaskirq    =  1 (on)
 using_dma    =  1 (on)
 keepsettings =  0 (off)
 readonly     =  0 (off)
 readahead    = 256 (on)
 geometry     = 65535/16/63, sectors = 80026361856, start = 0




linux# hdparm -i /dev/hda		<----shows more info.

/dev/hda:

 Model=WDC WD800JB-00FMA0, FwRev=13.03G13, SerialNo=WD-WMAJ97238449
 Config={ HardSect NotMFM HdSw>15uSec SpinMotCtl Fixed DTR>5Mbs FmtGapReq }
 RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=58
 BuffType=unknown, BuffSize=8192kB, MaxMultSect=16, MultSect=16
 CurCHS=4047/16/255, CurSects=16511760, LBA=yes, LBAsects=156301488
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5
 AdvancedPM=no WriteCache=enabled
 Drive conforms to: device does not report version:

 * signifies the current active mode
YOU CAN SEE ABOVE THAT UDMA5 MODE IS ACTIVE  BY THE * NEXT TO IT.

7 - you can run hdparm -tT /dev/hda to get some benchmarks on your drive, mine is running at:

/dev/hda:
 Timing cached reads:   956 MB in  2.00 seconds = 477.59 MB/sec
 Timing buffered disk reads:  126 MB in  3.03 seconds =  41.62 MB/sec

Which is literally 20 times faster than before I ran through these steps.

8 - Make absolutly positive that you are using the current most stable version of asterisk.

9 - Lastly, if you are running any services that you can put on another machine (i.e. TFTP, NTP) do so.  Move them to another machine and try not to run any services but what is absolutely necessary and asterisk.


This should take care of you but if you need more try the link below.  When all else fails, go to the digium supported hardware and change out your motherboard.



Fixing interrputs:
http://www.asteriskguru.com/tutorials/pci_irq_apic_tdm_ticks_te410p_te405p_noise.html




    Message: 6
    Date: Fri, 15 Jul 2005 20:13:48 -0400
    From: "Kevin " <Asterisk at gtcus.com>
    Subject: [Asterisk-Users] PRI got event: HDLC Abort (6) on Primary
    D-channel of span 1
    To: "'Asterisk Users Mailing List - Non-Commercial Discussion'"
    <asterisk-users at lists.digium.com>
    Message-ID: <036801c5899b$3e4877c0$2c02a8c0 at gtcp4>
    Content-Type: text/plain; charset="us-ascii"

    I am getting an error in the log on the PRI span. The error is :

    PRI got event: HDLC Abort (6) on Primary D-channel of span 1

    I thought the problem was an interrupt conflict with the T110P card, so
    I changed out the server to one that will dedicate the interrupt to the
    T110P card. I still have the problem.

    It's a dell 800 server with an SATA drive.

    Can anyone offer and suggestions as any probable cause?

    Thanks 




More information about the asterisk-users mailing list