[gelöst] Treiber srx-pci4s0-060330 kompiliert nicht

udosw

Aktives Mitglied
Mitglied seit
20 Mrz 2004
Beiträge
1,114
Punkte für Reaktionen
0
Punkte
36
Beim Versuch, den aktuellen Sirrix PCI4S0-Treiber zu kompilieren, erhalte ich nach Aufruf von make modules:

Code:
make[2]: Entering directory `/usr/src/linux-headers-2.6.17-2-486'
  LD      /usr/src/srx-pci4s0/sirrix-pci/layer1/built-in.o
  CC [M]  /usr/src/srx-pci4s0/sirrix-pci/layer1/base.o
  CC [M]  /usr/src/srx-pci4s0/sirrix-pci/layer1/management1.o
  CC [M]  /usr/src/srx-pci4s0/sirrix-pci/layer1/ipac.o
  CC [M]  /usr/src/srx-pci4s0/sirrix-pci/layer1/ipac_fsm.o
  CC [M]  /usr/src/srx-pci4s0/sirrix-pci/layer1/layer1_state.o
  CC [M]  /usr/src/srx-pci4s0/sirrix-pci/layer1/layer1.o
  CC [M]  /usr/src/srx-pci4s0/sirrix-pci/layer1/layer1dev.o
/usr/src/srx-pci4s0/sirrix-pci/layer1/layer1dev.c:55: error: expected ')' before string constant
make[3]: *** [/usr/src/srx-pci4s0/sirrix-pci/layer1/layer1dev.o] Fehler 1
make[2]: *** [_module_/usr/src/srx-pci4s0/sirrix-pci/layer1] Fehler 2
make[2]: Leaving directory `/usr/src/linux-headers-2.6.17-2-486'
make[1]: *** [modules] Fehler 2
make[1]: Leaving directory `/usr/src/srx-pci4s0/sirrix-pci/layer1'
make: *** [modules] Fehler 2
eSNACC ist installiert.

Ratlos :noidea:
Udo

Ergänzung: Exakt derselbe Fehler bei der vorhergehenden Treiberversion.
 
Das ist ein bekanntes Problem, dass mit dem nächsten Treiberrelease behoben wird. Du kannst das Problem glücklicherweise auch relativ einfach selbst beheben. Du musst nur in den Dateien

bchdev/main.c
dchdev/main.c
layer1/layer1dev.c
pfic/pfic.c

Zeilen die so aussehen:

Code:
MODULE_PARM(l1dev_major,"i");

so abändern:

Code:
module_param(l1dev_major, int, 0);
 
@Maik: Danke, das hat zunächst geholfen. Leider kommt jetzt:

make modules
make modules_install
make dev

sind IMHO jetzt OK durchgelaufen.

Nun kommt:

# modprobe sirrix_base
FATAL: Module sirrix_base not found.

:confused:

Udo
 
Wurden die Module wirklich nach /lib/modules/<kernel-version>/misc kopiert? Hast du schon mal insmod mit Angabe des kompletten Pfades versucht?
 
Maik schrieb:
Wurden die Module wirklich nach /lib/modules/<kernel-version>/misc kopiert? Hast du schon mal insmod mit Angabe des kompletten Pfades versucht?
Komischerweise wurde nur sirrix_bch kopiert. Mit insmod konnte ich die Module aber laden.

Danach taucht bei make das nächste Problem auf:

Code:
# make    
make -C utils && make -C layer1 && make -C layer2 && make -C layer3 && make -C asn1 && make -C cc && make -C ccuser && make -C pfic && make -C dchdev && make -C eepromdev && make -C bchdev && true
make[1]: Entering directory `/usr/src/srx-pci4s0/sirrix-pci/utils'
true
make[1]: Leaving directory `/usr/src/srx-pci4s0/sirrix-pci/utils'
make[1]: Entering directory `/usr/src/srx-pci4s0/sirrix-pci/layer1'
true
gcc -o /usr/src/srx-pci4s0/sirrix-pci/../sirrix-pci/bin/layer1test ../utils/string.o layer1test.o -lc -lpthread
make[1]: Leaving directory `/usr/src/srx-pci4s0/sirrix-pci/layer1'
make[1]: Entering directory `/usr/src/srx-pci4s0/sirrix-pci/layer2'
true
make[1]: Leaving directory `/usr/src/srx-pci4s0/sirrix-pci/layer2'
make[1]: Entering directory `/usr/src/srx-pci4s0/sirrix-pci/layer3'
true
make[1]: Leaving directory `/usr/src/srx-pci4s0/sirrix-pci/layer3'
make[1]: Entering directory `/usr/src/srx-pci4s0/sirrix-pci/asn1'
true
make[1]: Leaving directory `/usr/src/srx-pci4s0/sirrix-pci/asn1'
make[1]: Entering directory `/usr/src/srx-pci4s0/sirrix-pci/cc'
true
make[1]: Leaving directory `/usr/src/srx-pci4s0/sirrix-pci/cc'
make[1]: Entering directory `/usr/src/srx-pci4s0/sirrix-pci/ccuser'
make -C speex  && make -C aec  && make -C mec  && make -C fir_ec  && true
make[2]: Entering directory `/usr/src/srx-pci4s0/sirrix-pci/ccuser/speex'
true
make[2]: Leaving directory `/usr/src/srx-pci4s0/sirrix-pci/ccuser/speex'
make[2]: Entering directory `/usr/src/srx-pci4s0/sirrix-pci/ccuser/aec'
true
g++ -c -Wall -O -fPIC -g -I/usr/src/srx-pci4s0/sirrix-pci/.. -I/usr/local/include/esnacc -I/usr/local/include/esnacc/c -I/usr/src/srx-pci4s0/sirrix-pci/.. -I/usr/src/srx-pci4s0/sirrix-pci/.. -o aec.o aec.cpp
aec.h:240: error: extra qualification 'AEC::' on member 'doAEC'
aec.h:242: error: extra qualification 'AEC::' on member 'getambient'
aec.h:245: error: extra qualification 'AEC::' on member 'setambient'
make[2]: *** [aec.o] Fehler 1
make[2]: Leaving directory `/usr/src/srx-pci4s0/sirrix-pci/ccuser/aec'
make[1]: *** [subdirs] Fehler 2
make[1]: Leaving directory `/usr/src/srx-pci4s0/sirrix-pci/ccuser'
make: *** [noasterisk] Fehler 2
...:heul:
Udo
 
Entferne mal in der Datei ccuser/aec/aec.h die Zeichenfolge 'AEC::' aus den Zeilen 240, 242 und 245. Das sollte das Problem beheben. Du hast wohl eine gcc-Version, die alles sehr genau nimmt. ;)
 
Danke, das hat dann geklappt und ich konnte die Karte mit * zum Laufen bringen. :D

Allerdings reicht ein 100 MHz PC (auf dem mein * zu Hause problemlos läuft) nicht wirklich aus, um der Karte irgendetwas anderes als völlig verstümmelte Töne zu entlocken (mit HFC-Karte kein Problem).

Udo
 
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.