[Howto] Timing Probleme Lösen

Tweety

Mitglied
Mitglied seit
2 Apr 2005
Beiträge
215
Punkte für Reaktionen
0
Punkte
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.
 
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
 
Hallo.

Ich hab den Fehler inzwischen endeckt.

Man muss zwingend auch g++ installieren.
 
weis jemand wo ich den RTAI Patch für 2.4.23 herbekomme.
 
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?
 
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?
 
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.
 
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?
 
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.
 
Tweety schrieb:
Hallo lo4dro,

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

Code:
zaphfc: registered IRQ 9 for realtime timing

Ja das funktioniert.
Sieht auch aus also ob es funktionier inzwischen.

Führ doch bitte mal "vmstat 1" mit den HFC-Modulen für RTAI und mit den Modulen ohne RTAI support aus.
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

Das Bruzzeln ist durch RTAI bei mir verschwunden.
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/)
 
lo4dro schrieb:
Tweety schrieb:
Hallo lo4dro,

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

Code:
zaphfc: registered IRQ 9 for realtime timing

*** Korrektur ****
Hab mal syslog durchsucht.
So ein zaphfc eintrag mit realtime timing find ich net
ich finde nur:
Code:
Adeos 2.6r9/x86: Root domain Linux registered
io scheduler noop registered
io scheduler deadline registere
*** Ende Korrektur ***
"Ja das funktioniert.
Sieht auch aus also ob es funktionier inzwischen."

Führ doch bitte mal "vmstat 1" mit den HFC-Modulen für RTAI und mit den Modulen ohne RTAI support aus.
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

Das Bruzzeln ist durch RTAI bei mir verschwunden.
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/)
 
Ich nutz glaube ich einen anderen hfc patch wie du. (http://zaphfc.florz.dyndns.org/)

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!
 
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.
 
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...
 
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.
 
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
 
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?
 
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.
 
Jonny schrieb:
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

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.
 
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)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.