RTL8111(B)
Aus Gentoo Linux Wiki
Netzwerkkarte RTL8111(B) als Kernelmodul einbinden
| Laptops • Motherboards • Servers • Eingabegeräte • RAID Controller • TV Karten • Wireless • Andere Hardware • Andere Architekturen • alphabetischer Hardware Index |
Inhaltsverzeichnis |
[Bearbeiten] Vorwort
Dieses Howto versucht zu erläutern, wie man die Treiber für den Chipsatz Realtek r8111 manuell in den Kernel einbindet. Für dieses Howto werden installierte Kernel-Sources benötigt. Ab den gentoo-sources-2.6.18 ist der Treiber im Modul r8169 enthalten.
[Bearbeiten] Treiber herunterladen
Als erstes müssen die Treiber von der Realtek-Website heruntergeladen werden. http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=13&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false Die aktuelle Version (04.12.06) ist 1.05. Falls es Probleme damit gibt, kann man auch die ältere 1.04 nehmen.
wget ftp://61.56.86.122/cn/nic/r1000_v1.05.tgz wget http://www.iol.ie/~tomkbt/Arch/r1000_v1.04.tgz
[Bearbeiten] Entpacken und Kompilieren
Als nächstes entpacken wir das heruntergeladene Paket.
tar vzxf r1000_v1.05.tgz
Dann wechseln wir in das Verzeichnis und kompilieren den Treiber als Root.
cd r1000_v1.05 make clean modules make install depmod -a
Sollten bei "make clean modules" errors kommen, bitte Troubleshooting weiter unten konsultieren. Ansonsten ist der Treiber nun installiert.
[Bearbeiten] Treiber laden und testen
Nun muss der Treiber nur noch geladen und getestet werden.
modprobe r1000 ifconfig
Die Ausgabe von dmesg sollte folgendes enthalten:
Realtek RTL8168/8111 Family PCI-E Gigabit Ethernet Network Adapter Driver version:1.05 Released date:2006/11/27 Link Status:Linked Link Speed:100Mbps Duplex mode:Full-Duplex
[Bearbeiten] Autostart r1000
Hierzu wird die /etc/modules.autoload.d/kernel-2.6 bearbeitet
nano -w /etc/modules.autoload.d/kernel-2.6
und eine neue Zeile 'r1000' eingefügt.
r1000
[Bearbeiten] Troubleshooting
[Bearbeiten] MODULE_PARM Error in Version 1.04
/home/max/r1000_v1.04/src/r1000_n.c:51: error: parse error before string constant /home/max/r1000_v1.04/src/r1000_n.c:51: warning: type defaults to `int' in declaration of `MODULE_PARM' /home/max/r1000_v1.04/src/r1000_n.c:51: warning: function declaration isn't a prototype /home/max/r1000_v1.04/src/r1000_n.c:51: warning: data definition has no type or storage class /home/max/r1000_v1.04/src/r1000_n.c:52: error: parse error before string constant /home/max/r1000_v1.04/src/r1000_n.c:52: warning: type defaults to `int' in declaration of `MODULE_PARM' /home/max/r1000_v1.04/src/r1000_n.c:52: warning: function declaration isn't a prototype /home/max/r1000_v1.04/src/r1000_n.c:52: warning: data definition has no type or storage class /home/max/r1000_v1.04/src/r1000_n.c:53: error: parse error before string constant /home/max/r1000_v1.04/src/r1000_n.c:53: warning: type defaults to `int' in declaration of `MODULE_PARM' /home/max/r1000_v1.04/src/r1000_n.c:53: warning: function declaration isn't a prototype /home/max/r1000_v1.04/src/r1000_n.c:53: warning: data definition has no type or storage class
Um den Fehler zu beheben muss die Datei r1000_n.c bearbeitet werden.
nano -w src/r1000_n.c
Dort nach folgendem Zeichensatz suchen (Zeile 51-53):
MODULE_PARM (speed, "1-" __MODULE_STRING(MAX_UNITS) "i"); MODULE_PARM (duplex, "1-" __MODULE_STRING(MAX_UNITS) "i"); MODULE_PARM (autoneg, "1-" __MODULE_STRING(MAX_UNITS) "i");
Diese Zeilen müssen wie folgt abgeändert werden:
MODULE_PARM_DESC (speed, "1-" __MODULE_STRING(MAX_UNITS) "i"); MODULE_PARM_DESC (duplex, "1-" __MODULE_STRING(MAX_UNITS) "i"); MODULE_PARM_DESC (autoneg, "1-" __MODULE_STRING(MAX_UNITS) "i");
[Bearbeiten] entdev-Bug in Version 1.03
/usr/src/r1000/src/r1000_n.c:1450: error: ‘entdev’ undeclared (first use in this function)
Es handelt sich hierbei wohl um einen Schreibfehler der Programmierer. Um diesen Fehler zu beheben, editiere die Datei src/r1000_n.c
nano -w /usr/src/linux/src/r1000_n.c
Dort muss 'entdev' in 'netdev' geändert werden. (Dieser Bug betrifft nur Version 1.03. Ab Version 1.04 ist dies behoben.)
