.titleBar { margin-bottom: 5px!important; }

[Howto] Timing Probleme Lösen

Dieses Thema im Forum "Asterisk ISDN mit Bristuff (hfc, zaptel)" wurde erstellt von Tweety, 2 Apr. 2005.

  1. Tweety

    Tweety Mitglied

    Registriert seit:
    2 Apr. 2005
    Beiträge:
    215
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo,

    zuerst möchte ich mich für eure VoIP-FAQ bedanken welche mir letzte Woche bei der integration von Asterisk in meine ISDN Anlage relativ erfolgreich zur Verfügung stand.

    Hier nun eine kleine Anleitung wie man die nervigen Interrupt Probleme in den Griff bekommt (jedenfalls hat so bei mir funktioniert).

    Hardware: Intel Pentium 3 650 MHz, Mainboard Supermicro P6SBA (i440BX Chipsatz) mit 256MB Ram.

    PSTN Karte: AVM B1 Rev. 2, Interne Karte: HFC Karte von Conrad.

    Kernel 2.6.10 (Debian patched), Distribution Debian Mischung aus Sarge und Sid.

    Asterisk direkt von Debian sid.

    Code:
    Asterisk 1.0.7-BRIstuffed-0.2.0-RC7k
    Als erstes mit
    Code:
    apt-get install kernel-source-2.6.10 kernel-package fakeroot
    die entsprechenden Pakete installieren. Ich geh mal davon das Asterisk schon installiert ist. Wichtig ist das RTAI unterstützt wird.

    Danach die Kernel Quellen entpacken, den Adeos Patch Hier herunterladen. Danach in das Verzeichnis der Kernel Quellen wechseln und den Kernel patchen.
    z.B.
    Code:
    cd /usr/src/kernel-source-2.6.10
    patch -p1 < ../adeos-linux-2.6.10-i386-r9.patch
    Evtl. zuerst die standard Debian Konfiguration aus /boot/config-2.6.10-1-686 mit
    Code:
     cp /boot/config-2.6.10-1-686 /usr/src/kernel-source-2.6.10/.config 
    zu den Quellen kopieren.

    Nun den Kernel konfigurieren und erstellen (Debian)

    Code:
    make-kpkg --revision=2.6.10-1 --append-to-version=-1-686-rtai --config=menuconfig --rootcmd=fakeroot --initrd kernel_image kernel_headers
    Hier nochmal alles checken, insbesondere den Adeos Support.

    Wenn alles fertig ist sollte der Kernel installiert werden.
    Code:
    dpkg -i ../kernel-image-2.6.10-1-686-rtai_2.6.10-1_i386.deb
    Jetzt rebooten.

    Als nächstes RTAI downloaden und entpacken -> Hier

    In das entsprechende Verzeichnis wechseln und ein make menuconfig ausführen, die standard Konfiguration war ok, nur das Verzeichnis der Kernel Quellen anpassen.

    Jetzt RTAI mit
    Code:
    make
    compilieren und mit
    Code:
    make install
    in /usr/realtime installieren.

    Danach in das Verzeichnis /usr/src/modules/zaptel wechseln und mit
    Code:
     make linux26-modules
    die Module neu übersetzen.

    Jetzt die RTAI Module laden.

    Code:
    insmod /usr/realtime/modules/rtai_hal.ko
    insmod /usr/realtime/modules/rtai_up.ko
    Wenn das geklappt hat mal mit dmesg die Kernel Meldungen checken.

    Da sollte etwa so was stehen.

    Code:
    Adeos: Domain RTAI registered.
    RTAI[hal]: 3.2-test3 mounted over Adeos 2.6r9/x86.
    RTAI[hal]: compiled with gcc version 3.3.5 (Debian 1:3.3.5-8).
    RTAI[malloc]: kmalloced extent c07e0000, size 131072.
    RTAI[malloc]: loaded (global heap size=131072 bytes).
    RTAI[sched_lxrt]: loaded (PIPED, UP, KERNEL SPACE).
    RTAI[sched_lxrt]: timer=periodic (8254-PIT),.
    RTAI[sched_lxrt]: standard tick=1000 hz, CPU freq=651399000 hz.
    RTAI[sched_lxrt]: timer setup=2009 ns, resched latency=2689 ns.
    Nun wie gewohnt die HFC Module laden und sich darüber freuen das die extrem hohe Interrupt Last ziemlich gefallen ist.

    Bei mir von ca. 9000 auf 2000.
     
  2. lo4dro

    lo4dro Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    656
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo.

    Welche Debianpacket werden benötigt, wenn man folgende Fehlermeldung bekommt.
    Ich habe cpp-3.3 installiert.

    Code:
    checking how to run the C++ preprocessor... /lib/cpp
    configure: error: C++ preprocessor "/lib/cpp" fails sanity check
    See `config.log' for more details.
    make: *** [config.status] Error 1
    
     
  3. lo4dro

    lo4dro Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    656
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo.

    Ich hab den Fehler inzwischen endeckt.

    Man muss zwingend auch g++ installieren.
     
  4. traxanos

    traxanos Mitglied

    Registriert seit:
    15 Juli 2004
    Beiträge:
    486
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    weis jemand wo ich den RTAI Patch für 2.4.23 herbekomme.
     
  5. lo4dro

    lo4dro Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    656
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Nach dem alles geklappt hat, hab ich ein kleines Problem mit dem laden des rtai_hal.ko modules

    Code:
    insmod /usr/realtime/modules/rtai_hal.ko
    
    Folgender Fehler steht im syslog drinnen.

    Code:
    Apr  4 11:40:57 pbx  kernel: RTAI[hal]: ERROR, LOCAL APIC CONFIGURED BUT NOT AVAILABLE/ENABLED
    
    Wie aktivert bzw konfiguriert man APIC?
    Oder soll ich die Unterstützung besser im Kernel deaktivieren?
     
  6. lo4dro

    lo4dro Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    656
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    So, nun hab ich alles installiert bekommen.
    Ich hab extra auf BRIstuffed-0.2.0-RC7k umgestellt.
    Ich kann allerdings keinen Unterschied zu früher feststellen.
    Kannst du mal genauer erklären was du gemacht hast und wie das ganze funktionieren soll?
     
  7. Tweety

    Tweety Mitglied

    Registriert seit:
    2 Apr. 2005
    Beiträge:
    215
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Die Implementation von RTAI drückt bei mir die Interrupt Last ziemlich nach unten. Davor kam es ständig zu Aussetzern (Gespräche waren abgehackt etc.) wenn eine weitere Karte z.B. (B1 Controller). zusätzlich aktiv war, was eigentlich bei jedem ankommendem Gespräch der Fall war. Zusätzlich war die laut vmstat die Interrupt Last bei ca. 9000. Mit RTAI fiel sie auf 2000.

    Das momentan einzige auffällige Problem is manchmal ein kleines Echo bei Telefonaten über SIP/Freenet. Ansonsten läufts ganz gut.
     
  8. lo4dro

    lo4dro Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    656
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Tweety

    was für eine B1 hast du?
    Also ich habe immer noch Aussetzer (Bruzel) sobald zwei Gespräche gleichzeitig über ein bzw zwei B1-ISA Karten gehen.
    Bei mir (Pentium-2) kann ich kein Unterschied endecken.

    IRQ-Last:

    Um 10:10 --> 11: 3105853 XT-PIC zaphfc
    Um 10:11 --> 11: 3547932 XT-PIC zaphfc

    Pro minute also ca. 44000 IRQs ohne das Telefoniert wird


    Bei dir gibt es kein Gebrutzel mehr, wenn du zwei Gespräche über die B1 gleichzeitig führst?
     
  9. Tweety

    Tweety Mitglied

    Registriert seit:
    2 Apr. 2005
    Beiträge:
    215
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo lo4dro,

    zeigt dein Kernel beim Laden von den HFC Modulen etwa folgende Meldung?

    Code:
    zaphfc: registered IRQ 9 for realtime timing
    Ich hab den AVM B1 Rev. 2 PCI drinn.

    Hier mal meine Interrupts

    Code:
               CPU0
      0:   12237234          XT-PIC  timer, rtai_jif_chk
      1:        472          XT-PIC  i8042
      2:          0          XT-PIC  cascade
      7:          0          XT-PIC  parport0
      9:   12123199          XT-PIC  zaphfc-rtai
     10:      24934          XT-PIC  ide2, ide3, uhci_hcd
     11:      86453          XT-PIC  eth0, b1pci-eec0
     14:          1          XT-PIC  ide0
     15:          0          XT-PIC  ide1
    NMI:          0
    ERR:          0
    
    Führ doch bitte mal "vmstat 1" mit den HFC-Modulen für RTAI und mit den Modulen ohne RTAI support aus.

    Das Bruzzeln ist durch RTAI bei mir verschwunden.

    Die Echo Ursache hab ich inzwischen auch ausgemacht. (Telefoniere normal nich soo viel zu Hause wo das ganze im Testbetrieb läuft). Nach einer gewissen Zeit spuckt das zaphfc Modul obwohl nicht telefoniert wird folgende Meldung(en) aus.

    Code:
    zaphfc: bchan tx fifo full, dropping audio! (z1=4295, z2=4303)
    zaphfc: bchan tx fifo full, dropping audio! (z1=6847, z2=6854)
    zaphfc: bchan tx fifo full, dropping audio! (z1=7103, z2=7111)
    zaphfc: bchan tx fifo full, dropping audio! (z1=1967, z2=1975)
    zaphfc: bchan tx fifo full, dropping audio! (z1=2199, z2=2207)
    zaphfc: bchan tx fifo full, dropping audio! (z1=4759, z2=4766)
    zaphfc: bchan tx fifo full, dropping audio! (z1=4927, z2=4935)
    zaphfc: bchan tx fifo full, dropping audio! (z1=7439, z2=7446)
    zaphfc: bchan tx fifo full, dropping audio! (z1=7711, z2=7719)
    zaphfc: bchan tx fifo full, dropping audio! (z1=2599, z2=2606)
    zaphfc: bchan tx fifo full, dropping audio! (z1=2863, z2=2871)
    zaphfc: bchan tx fifo full, dropping audio! (z1=5455, z2=5462)
    zaphfc: bchan tx fifo full, dropping audio! (z1=5735, z2=5743)
    zaphfc: bchan tx fifo full, dropping audio! (z1=615, z2=622)
    zaphfc: bchan tx fifo full, dropping audio! (z1=847, z2=854)
    zaphfc: bchan tx fifo full, dropping audio! (z1=3367, z2=3374)
    zaphfc: bchan tx fifo full, dropping audio! (z1=3655, z2=3663)
    zaphfc: bchan tx fifo full, dropping audio! (z1=6199, z2=6206)
    zaphfc: bchan tx fifo full, dropping audio! (z1=6431, z2=6438)
    zaphfc: bchan tx fifo full, dropping audio! (z1=1311, z2=1319)
    zaphfc: bchan tx fifo full, dropping audio! (z1=1615, z2=1622)
    zaphfc: bchan tx fifo full, dropping audio! (z1=4191, z2=4199)
    zaphfc: bchan tx fifo full, dropping audio! (z1=4391, z2=4399)
    zaphfc: bchan tx fifo full, dropping audio! (z1=6943, z2=6950)
    zaphfc: bchan tx fifo full, dropping audio! (z1=7207, z2=7214)
    zaphfc: bchan tx fifo full, dropping audio! (z1=2095, z2=2102)
    Ab der ersten Meldung hab ich ein Echo und eine extrem nervige Verzögerung. Ansonsten "keine" Probleme.
     
  10. lo4dro

    lo4dro Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    656
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja das funktioniert.
    Sieht auch aus also ob es funktionier inzwischen.

    Code:
    pbx:~$ vmstat 1
    procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
     r  b   swpd   free   buff  cache   si   so    bi    bo   in    cs us sy id wa
     3  0      0   8844      0  45592    0    0     0     1   11    66  0  0 100  0
     0  0      0   8844      0  45592    0    0     0     4 8192   372  0  1 99  0
     0  0      0   8844      0  45592    0    0     0     0 8185   363  0  0 100  0
     0  0      0   8844      0  45592    0    0     0     0 8183   364  0  0 100  0
    
    Habe immer noch ein Brutzel, sobald ich zwei gespräche auf der B1 führe

    Ich nutz glaube ich einen anderen hfc patch wie du. (http://zaphfc.florz.dyndns.org/)
     
  11. lo4dro

    lo4dro Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    656
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
     
  12. Jonny

    Jonny Neuer User

    Registriert seit:
    30 Dez. 2004
    Beiträge:
    189
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Den Patch solltest Du nicht verwenden wenn Du RTAI nutzen möchtest.
    Auf der Homepage von florz steht deutlich:
    Note that the patch removes all the RTAI code that was added to the original driver in bristuff version 0.2.0-RC7h!
     
  13. lo4dro

    lo4dro Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    656
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ups, das hab ich noch nie gelesen.
    Äh welchen patch nutzt du?

    Oder wird das modul automatisch richtig erzeugt?

    zaphfc-rtai

    So ich hab das ganze mal getestet.

    nun hab ich die Meldung:

    kernel: zaphfc: registered IRQ 11 for realtime timing

    werd es mal testen.

    zaphfc komplett ohne patch.
     
  14. Jonny

    Jonny Neuer User

    Registriert seit:
    30 Dez. 2004
    Beiträge:
    189
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich verwende garkeinen Patch. Habe die RTAI bisher auch noch nicht zum laufen bekomme. (Kompiliere gerade den neuen Kernel.)

    Bericht ob es geklappt hat kommt später...
     
  15. lo4dro

    lo4dro Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    656
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    So hab jetzt alles gemacht wie du empfohlen hast.

    Die IRQ Last ist sehr viel geringer. (1000 IRQs/pro sec anstatt 8000)
    Der Brutzelsound ist im Moment auch weg.
    Allerdings waren zwischen drinneb grosse audio störung vorhanden.
    Weis allerdings nicht ob das am Telefon oder an der asterisk liegt.

    Was immer noch nicht geht, ist das verschicken von einem FAX an mich selber.

    ISDN --- ZAPHFC --- ASTERISK-CAPI --- T-AMT --- CAPI --- Hylafax

    * Nachtrag *

    Im Syslog tauchen jetzt auch bei mir viele "zaphfc: dropped audio (z1=5966, z2=5946, wanted 8 got 20, dro
    pped 12)" auf.
     
  16. Jonny

    Jonny Neuer User

    Registriert seit:
    30 Dez. 2004
    Beiträge:
    189
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Von wo versendest Du das Fax und wo soll es hin?
    Wenn es am internen S0 von zaphfc hängt, dann muss die Echo-Compensation ausgeschaltet werden. Sonst klappt das mit dem faxen nicht richtig
     
  17. Jonny

    Jonny Neuer User

    Registriert seit:
    30 Dez. 2004
    Beiträge:
    189
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Habe den Kernel nun soweit am laufen. Jetzt scheitert aber leider das kompilieren von RTAI.

    Code:
    make[5]: Entering directory `/usr/src/linux-2.6.11.6-l7'
      CC [M]  /usr/src/rtai-3.2-test3/base/sched/sched.o
    In file included from /usr/src/rtai-3.2-test3/base/include/rtai_shm.h:104,
                     from /usr/src/rtai-3.2-test3/base/include/rtai_scb.h:42,
                     from /usr/src/rtai-3.2-test3/base/include/rtai_schedcore.h:31,
                     from /usr/src/rtai-3.2-test3/base/sched/sched.c:70:
    /usr/src/rtai-3.2-test3/base/include/asm/rtai_shm.h: In function `uvirt_to_kva':
    /usr/src/rtai-3.2-test3/base/include/asm/rtai_shm.h:52: warning: passing arg 1 of `pmd_offset' from incompatible pointer type
    /usr/src/rtai-3.2-test3/base/sched/sched.c: In function `rt_schedule':
    /usr/src/rtai-3.2-test3/base/sched/sched.c:846: error: structure has no member named `used_math'
    /usr/src/rtai-3.2-test3/base/sched/sched.c:858: warning: assignment from incompatible pointer type
    /usr/src/rtai-3.2-test3/base/sched/sched.c: In function `rt_timer_handler':
    /usr/src/rtai-3.2-test3/base/sched/sched.c:1151: error: structure has no member named `used_math'
    /usr/src/rtai-3.2-test3/base/sched/sched.c: In function `thread_fun':
    /usr/src/rtai-3.2-test3/base/sched/sched.c:1795: error: structure has no member named `used_math'
    /usr/src/rtai-3.2-test3/base/sched/sched.c: In function `steal_from_linux':
    /usr/src/rtai-3.2-test3/base/sched/sched.c:1908: error: structure has no member named `used_math'
    make[6]: *** [/usr/src/rtai-3.2-test3/base/sched/sched.o] Error 1
    make[5]: *** [_module_/usr/src/rtai-3.2-test3/base/sched] Error 2
    make[5]: Leaving directory `/usr/src/linux-2.6.11.6-l7'
    make[4]: *** [rtai_up.ko] Error 2
    make[4]: Leaving directory `/usr/src/rtai-3.2-test3/base/sched'
    make[3]: *** [all-recursive] Error 1
    make[3]: Leaving directory `/usr/src/rtai-3.2-test3/base/sched'
    make[2]: *** [all-recursive] Error 1
    make[2]: Leaving directory `/usr/src/rtai-3.2-test3/base'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/usr/src/rtai-3.2-test3'
    make: *** [all] Error 2
    
    Ich verwende einen 2.6.11.6 Kernel mit dem Patch "adeos-linux-2.6.11-i386-r10c2.patch". Hat jemand ein Tipp für mich?
     
  18. lo4dro

    lo4dro Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    656
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hi.

    Das ist komisch, bei mir gab es immer relativ genau
    Fehlerbeschreibungen, warum das net funktioniert.

    Ich habe den 2.6.10-ac12 Kernel + adeos-linux-2.6.10-i386-r9.patch.

    Und rtai-3.2-test3

    Ein Fehler bei mir war das fehlen von "g++". Wurde durch "make menuconfig" angezeigt
    Zweiter Fehler war ungeeigneter Kernel (APIC und Modul behandlung)
    wurde aber auch als klartext Meldung angezeigt.
     
  19. lo4dro

    lo4dro Mitglied

    Registriert seit:
    14 Okt. 2004
    Beiträge:
    656
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    FAX an ein externes FX funktioniert.
    Das empfang von externen Faxen am internen FAX-Server geht auch.
    Das das schicken von internem Hardware FAX zu internem FAX-Server über das öffentliche amt geht net.
    So bald beide B-Kanäle an der B1 belegt sind kommt es zu probleme.
    Aber das ist ja ne unwichtig Funktion. Hauptsache das Bruzel geräusch bei zwei gleichzeitigen Gespräche ist weg.
     
  20. Jonny

    Jonny Neuer User

    Registriert seit:
    30 Dez. 2004
    Beiträge:
    189
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Wie bereits erwähnt solltest Du versuchen die Echo-Compensation für aus und eingehende Faxe abzuschalten. Dafür musst Du im Dialplan bei Eingehenden Verbindungen zapEC(off) aufrufen und bei ausgehenden Verbindungen die Option "m" verwenden.
    Z.B. Dial(Zap/g1m/0123456789,T)