• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Problem mit USB Netzwerkkarten (Treiber pegasus)

sus

Newbie
Hallo liebe Linux Fans,

ich habe riesiges Problem. Ich habe in meinem System aus Platzgründen 3 USB Level One 10/100 Netzwerk-Adapter drin (werden durch das modul pegasus.c unterstützt). Zusätzlich habe noch eine Realtek 8139 Karte drin.
Die zwei Level One Nics (eth0 und eth1) benutze ich mittels VMWARE, worauf mein Router läuft). eth2 hat derzeit keine Verwendung. eth3 ist die Realtekkarte.
Die Realtekkarte ist an ein anderes Netzwerk angeschlossen. Samba versorgt dieses Netzwerk dann mit Daten. Klar.

eth0 und eth1 haben keine ip, sind aber aktiviert. Sie brauchen auch keine, weil VMWARE ihnen über vmnet-bridge eine ip zuteilt - so funktioniert es auch ganz gut.

Meine /etc/modules.conf sieht so aus:

alias eth3 8139too
[...]
alias eth0 pegasus
alias eth1 pegasus
alias eth2 pegasus

Ich habe folgendes RIESEN-Problem:

Wenn der Router läuft und ich über Samba (also auf das System über die Netzwerkkarte von Realtek (eth3)) kopiere, dann
funktionieren plötzlich meine eth0 und eth1 nicht. Ich bekomme eine Fehlermeldung dieser Art:
pegasus.c failed tx_urb -22

Diese Meldung kommt ständig wieder. Ich habe noch bemerkt, dass zuanfang immer folgendes auf der ersten Console steht:
bridge-eth1 set IFF_PROMISC
bridge-eth0 set IFF_PROMISC

Naja, gut. Ich kann ja auf Samba verzichten, da ich das gesamte Netz ehe mit Linux und BSD auspflastern werde, allerdings wäre es damit nicht getan, denn dieser blöde Fehler kommt selbst ohne die Benutzung on SAMBA. Allerdings ist er bisland nur zwei mal nach ungefähr 10 Stunden Benutzung eingetretten.

Leider kann ich auch keinen anderen Kernel als 2.4 darauf laufen lassen. Meine genaue Kernelversion lautet: 2.4.20-8.

Ich habe mir bereits eine modifizierte pegasus.c und pegasus.h source-file aus dem Kernel 2.6.xx besorgt, das Problem ist nur, dass ich dieses Modul einfach nicht kompiliert bekomme. Ich habe es mit folgenden Befehlen probiert:
make config
make dep
make modules

Aber der bricht ab und sagt, dass
make[1]: *** [_mod_drivers} Fehler 2
eingetretten ist und ENDE!

Dann habe ich es mit menuconfig gemacht, damit ich jetzt nicht den gesamten Kernel recompiliere. Tja.

Der selbe Mist:
make[1]: *** [_mod_drivers} Fehler 2

Ich werde bald wirklich wahnsinnig. Ich sitze an dem Problem bereits fast 6 Tage :cry:

Wie kann ich dieses verdammte neue Pegasus-Modul compilieren um es dann in den alten Kernel einbinden zu können?

Wäre jemand von euch so nett und könnte mir helfen?

Vielen Dank

sus

PS: wenn ich das System neustarte gehts wieder. Ich denke, wenn man das Pegasus-Modul reloaded würde es auch wieder gehen, aber das ist keine Lösung!!!!
 
OP
S

sus

Newbie
Hier noch eine Ergänzung:

Es handelt sich um USB 1.1.
An den USB-Port 1 des Motherboards ist ein USB-1.1-HUB angeschlossen.
An diesem HUB hängen die Level One Netzwerkkarten.

bridge-eth1: set IFF_PROMISC
bridge-eth0: set IFF_PROMISC

hub.c already running port 1 disabled by hub (EMI?), re-enabling...

usb-ohci.c unlink URB timeout

bridge-eth0: clear IFF_PROMISC

pegasus.c: ctrl_callback: status -110

ip_tables: (c) 2000 - 2002 Netfilter core team
pegasus.c: link partner stat 0

bridge-eth0: set IFF_PROMISC

pegasus.c: eth1: Tx timed out.
pegasus.c: eth1: Tx timed out.
pegasus.c: eth1: Tx timed out.
pegasus.c: eth1: Tx timed out.
pegasus.c: eth1: Tx timed out.
pegasus.c: eth1: Tx timed out.

bridge-eth1: clear IFF_PROMISC
bridge-eth0: clear IFF_PROMISC


pegasus.c failed tx_urb -22
pegasus.c failed tx_urb -22
pegasus.c failed tx_urb -22
pegasus.c failed tx_urb -22
pegasus.c failed tx_urb -22
pegasus.c failed tx_urb -22
pegasus.c failed tx_urb -22
...

Beim Herunterfahren kommt folgendes:

shutting down eth0 .... usb-ohci.o: unlink URB timeout
shutting down eth1 .... usb-ohci.o: unlink URB timeout
shutting down eth2 .... usb-ohci.o: unlink URB timeout
shutting down eth3 .... OK


Den Kernel mit den Parametern "acpi=off" und "apic=off" zu booten, bringt auch nichts!
 
OP
S

sus

Newbie
Ich kann die Fehlerquelle eindeutig bestimmen.
Es ist der Pegasus-Treiber!

Schaltet man den Netzwerkservice aus, schaltet man alle Level One Nics aus, schmeißt das Pegasus-Modul raus und läd es neu, schaltet die NICs ein und startet den Netzwerkservice, so läuft es wieder!

Tja. Die Unterbrechung erfolgt genau dann, wenn

bridge-eth0: clear IFF_PROMISC
bridge-eth1: clear IFF_PROMISC

erfolgt.

Es ist nicht auszuschließen, dass VMWAREs module daran Schuld sind.

Wie auch immer! Was schlägt Ihr vor?
 
Oben