Probleme beim compilen von mISDN auf NSLU2

duese222

Neuer User
Mitglied seit
15 Apr 2010
Beiträge
5
Punkte für Reaktionen
0
Punkte
0
Guten Tag!

Ich habe eine http://de.wikipedia.org/wiki/NSLU2 auf welcher ein Debian läuft.

Code:
uname -a
Linux Server 2.6.26-2-ixp4xx #1 Tue Aug 31 11:47:33 UTC 2010 armv5tel GNU/Linux

Ich möchte hier einen Asterisk mit ISDN laufen lassen. Dafür habe habe ich eine "Draytech miniVigor 128 ISDN TA" USB Karte mit hfc Chip.
Wenn ich nun wie hier vorgehe, bekomme ich nach
Code:
make modules
folgendes Problem (dies ist nur das Ende, vollständig hier):
Code:
/usr/src/misdntest/mISDN/standalone/drivers/isdn/mISDN/octvqe/octvqe_linux.c: In function 'ZapOctVqeApiEcChannelProcess':
/usr/src/misdntest/mISDN/standalone/drivers/isdn/mISDN/octvqe/octvqe_linux.c:541: error: implicit declaration of function 'rdtscl'
make[5]: *** [/usr/src/misdntest/mISDN/standalone/drivers/isdn/mISDN/octvqe/octvqe_linux.o] Error 1
make[4]: *** [/usr/src/misdntest/mISDN/standalone/drivers/isdn/mISDN/octvqe] Error 2
make[3]: *** [_module_/usr/src/misdntest/mISDN/standalone/drivers/isdn/mISDN] Error 2
make[3]: Leaving directory `/usr/src/linux-headers-2.6.26-2-ixp4xx'
make[2]: *** [modules_] Error 2
make[2]: Leaving directory `/usr/src/misdntest/mISDN/standalone'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/misdntest/mISDN/standalone'
make: *** [modules] Error 2

Ich bin etwas verzweifelt, da ich nicht weiß was ich falsch gemacht habe.
Über Infos und Denkanstöße wäre ich sehr dankbar.
Vielen Dank!
 
Hallo stinkstiefel!

Danke für den Link. Ich habe auch schon mit spezifischeren Suchbegriffen gesucht.
Allerdings habe ich keinen Lösungsansatz finden können.
Deshalb hier meine Nachfrage.

duese
 
Das heisst nun also du hast dir für das NAS schon einen neuen Kernel mit ISDN Support gebacken?
 
Nein, dass habe ich nicht. Die Unterstützung will ich mir durch den mISDN Treiber holen. Oder denke ich da falsch?
 
Ich habe dasselbe wie du auf der ARM Plattform versucht (allerdings mit einem Sheevaplug und einem Trust mini USB HFC Adapter) und bin auf denselben Fehler gestoßen.

Nach meiner Analyse kann das Modul gar nicht auf ARM compilieren, weil es rdtscl() (zum Zählen von Taktzyklen) nur auf x86 gibt. Die plattformunabhängige Variante wäre get_cycles(), die auf ARM nur ein return 0 macht.

Ist aber egal, weil ich nicht erkennen kann, dass das Ergebnis des Aufrufs im folgenden überhaupt noch irgendwo verwendet wird.

Wenn man die entsprechende Zeile auskommentiert (oder löscht), compiliert das Modul (zur Echo-Unterdrückung) ohne Probleme.

In der normalen Kernel-Distribution (ich habe 2.6.35.2) ist das Modul übrigens (noch?) nicht dabei. Ich wollte lieber auf den aktuellsten Sourcen arbeiten. Da ARM aber offensichtlich nicht gut getestet ist, bin ich skeptisch, was die Stabilität anbelangen könnte.

Weiter bin ich aber auch noch nicht (mangels Zeit, nicht wegen weiterer Probleme).

Ich bin jetzt gerade auch ein bisschen ratlos, wie ich diesen Fehler den mISDN-Entwicklern (letzte Änderung an diesem Modul durch Karsten Keil am 18.03.2010) am besten kommunizieren kann.
 
Hi,
ich bin dabei, mISDN+chan_lcr auf einem Dockstar (ARM) zum Laufen zu bringen. Bisher habe ich sowohl asterisk 1.6 als auch 1.8 durchkompilieren können (anhand dieser Anleitung), mISDN-Kernelmodule konnte ich auch laden, ich verwende einen HFC-USB-Adapter.
Was jetzt klemmt ist chan_lcr, da bricht die Kompilierung immer mit einer Fehlermeldung ab.
Code:
chan_lcr.c: In function ‘lcr_call’:
chan_lcr.c:1927: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1927: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1928: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1931: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1931: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1932: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1934: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1934: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c:1935: error: ‘struct ast_channel’ has no member named ‘cid’
chan_lcr.c: In function ‘lcr_write’:
chan_lcr.c:2164: error: wrong type argument to unary exclamation mark
chan_lcr.c:2166: error: invalid operands to binary & (have ‘union ast_frame_subclass’ and ‘format_t’)
chan_lcr.c: In function ‘lcr_read’:
chan_lcr.c:2229: error: incompatible types in assignment
chan_lcr.c: In function ‘lcr_indicate’:
chan_lcr.c:2274: warning: assignment from incompatible pointer type
chan_lcr.c:2289: warning: assignment from incompatible pointer type
chan_lcr.c:2316: warning: assignment from incompatible pointer type
chan_lcr.c:2381: error: dereferencing pointer to incomplete type
chan_lcr.c:2382: error: dereferencing pointer to incomplete type
chan_lcr.c: At top level:
chan_lcr.c:2602: warning: initialization from incompatible pointer type
chan_lcr.c: In function ‘load_module’:
chan_lcr.c:2818: warning: passing argument 2 of ‘ast_register_application2’ from incompatible pointer type
make[1]: *** [chan_lcr.po] Fehler 1
make[1]: Leaving directory `/usr/src/lcr'
make: *** [all] Fehler 2

make lcr; make lcradmin funktioniert übrigens.
 
Hi afrink!

Super, dass du dich meldest!
Was für eine Zeile meinst du wenn ich fragen darf im make-sccript, oder an einem anderen Ort?
 
Es geht um Zeile 541 in standalone/drivers/isdn/mISDN/octvqe/octvqe_linux.c
(bzw. drivers/isdn/mISDN/octvqe/octvqe_linux.c, wenn du dir frisch den git-Tree gezogen hast, die Version in standalone/... wird daraus generiert)

Ersetze
rdtscl(pChan->ulTimestampIn);
durch
/* rdtscl(pChan->ulTimestampIn); */
 

Statistik des Forums

Themen
246,195
Beiträge
2,247,820
Mitglieder
373,748
Neuestes Mitglied
fanti88
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.