//Edit:
Mittlerweile gibt es für openSUSE ab Version 10.1 _fertige_ RPM-Pakete bzw. src.rpm-Pakete, weshalb die ersten drei Beiträge zwar vielleicht noch informativ aber das darin beschriebene, händische Kompilieren/Installieren des entsprechenden Treibers _nicht_ mehr nötig ist.
Wer Treiberpakete sucht, der sollte sich besonders die Beiträge ab einschließlich Nr.4 in diesem Thread ansehen.
Hallo,
Aufgrund dieses Threads hier:
http://www.pc-forum24.de/showthread.php?t=890
möchte ich die Installation des Treibers kurz beschreiben, da es doch -vor allem je nach SuSE-Version UND abhängig davon, ob es sich um eine 32- oder 64-Bit Installation handelt- zu ausgesprochen "unliebsamen Überraschungen" kommen kann.
Die Anregungen/Lösungsvorschläge habe ich hier gefunden und zusammengetragen:
Another Realtek Rtl8111b Compilation Problem - SuSE Linux Forums
Thema anzeigen - Realtek 8168 Treiber als Modul kompilieren - SuSE Linux
Dank an die jeweiligen Autoren!
0. Vorbereitungen
- Pakete kernel-source, gcc und make sollten installiert sein
- Treiber von Realtek runterladen & entpacken
Realtek
Das wäre einer der Download-Server
ftp://61.56.86.122/cn/nic/rtl8111brtl8168b/
Die neuste Version ist zur Zeit:
ftp://61.56.86.122/cn/nic/rtl8111brtl8168b/linux-r1000(103).zip
1. Treiber kompilieren und installieren
a) SuSE 10.0 32 Bit:
- Ordner r1000 als ROOT in /usr/src/linux-aktuelleKernelversion kopieren.
- Unterordner r1000/src ebenfalls in /usr/src/linux-aktuelleKernelversion kopieren
b) SuSE 10.0 64 Bit:
Mangels passender Hardware/Versuchskarnickel *g* keine Möglichkeit gehabt, es zu testen.
Beiträge anderer User mit passendem System sind SEHR willkommen!
Bei SuSE 10.1 treten nun weitere Probleme auf:
Es befinden sich zumindest 2 Fehler im Quellcode des Treibers, folgende Änderungen sind zu machen:
c) SuSE 10.1 32 Bit:
Selbst wenn man die obigen Vorarbeiten macht, taucht dieser Fehler hier auf:
Lösung:
Die Datei r1000_n.c im Unterverzeichnis /r1000/src mit kate öffnen, Zeile 46 suchen (Unten läuft in der Statuszeile ein Zähler) und den Ausdruck von
MODULE_PARM (media, "1-" __MODULE_STRING(MAX_UNITS) "i");
in
MODULE_PARM_DESC (media, "1-" __MODULE_STRING(MAX_UNITS) "i");
ändern. Anschliessend speichern und kate schliessen, der Rest wie oben beschrieben.
SuSE 10.1 64 Bit:
Hier tritt folgender Fehler auf:
Lösung:Hier liegt der "Fehler" in der selben Datei, aber an anderer Stelle.
Wieder mit Kate öffnen und Zeile 1450 suchen und ändern von
synchronize_irq (entdev->irq);
in
synchronize_irq (netdev->irq);
Cooler Fehler oder? Sowas nennt man glaube ich "Wechstabenverbuchsler"
Danach Rest wie gehabt.
2. WICHTIG:Nach einem Kernel-Update wird es zunächst NICHT mehr klappen mit der Karte!
Der Grund dürfte klar sein, denn der Treiber ist nicht im Kernel enthalten sondern als SELBSTgebautes Modul realisiert.
Bei einem Update des Kernels werden diese Module normalerweise NICHT upgedatet, es sei denn, der neue Kernel enthält diesen Treiber.
Deshalb folgende Schritte:
a) Sicherungskopien der geänderten Dateien anlegen.
Die beiden Ordner /usr/src/linux-aktuellerKernel/r1000/ und /usr/src/linux-aktuellerKernel/src/ an einen "lauschigen" Platz kopieren, wo man sie wiederfindet.
b) Nach einem Kernelupdate wird es einen neuen Ordner geben, der /usr/src/linux-neueKernelversion/ heißen wird.
c) Die gesicherten Ordner reinkopieren und analog verfahren.
Dann müsste es wieder gehen, die Fehler im Quellcode wurden ja jetzt beseitigt, also ein einfaches
sollte genügen.
Das muss man ab sofort bei JEDEM Kernelupdate machen und zwar so lange, bis der Treiber offiziell unterstützt wird.
Sollte die Karte nach einem Reboot auch ohne Kernelupdate nicht laufen, dann muss man z.B. in Yast einstellen, daß das Modul beim Start geladen wird.
Yast --> System --> Editor für /etc/sysconfig Dateien --> System --> Kernel ---> MODULES_LOADED_ON_BOOT --> r1000 Eintragen und bestätigen.
Greetz,
RM
Mittlerweile gibt es für openSUSE ab Version 10.1 _fertige_ RPM-Pakete bzw. src.rpm-Pakete, weshalb die ersten drei Beiträge zwar vielleicht noch informativ aber das darin beschriebene, händische Kompilieren/Installieren des entsprechenden Treibers _nicht_ mehr nötig ist.
Wer Treiberpakete sucht, der sollte sich besonders die Beiträge ab einschließlich Nr.4 in diesem Thread ansehen.
Hallo,
Aufgrund dieses Threads hier:
http://www.pc-forum24.de/showthread.php?t=890
möchte ich die Installation des Treibers kurz beschreiben, da es doch -vor allem je nach SuSE-Version UND abhängig davon, ob es sich um eine 32- oder 64-Bit Installation handelt- zu ausgesprochen "unliebsamen Überraschungen" kommen kann.
Die Anregungen/Lösungsvorschläge habe ich hier gefunden und zusammengetragen:
Another Realtek Rtl8111b Compilation Problem - SuSE Linux Forums
Thema anzeigen - Realtek 8168 Treiber als Modul kompilieren - SuSE Linux
Dank an die jeweiligen Autoren!
0. Vorbereitungen
- Pakete kernel-source, gcc und make sollten installiert sein
- Treiber von Realtek runterladen & entpacken
Realtek
Das wäre einer der Download-Server
ftp://61.56.86.122/cn/nic/rtl8111brtl8168b/
Die neuste Version ist zur Zeit:
Das wäre also der hier:Linux driver for kernel 2.4.x and 2.6.x 1.03 2006/06/12
ftp://61.56.86.122/cn/nic/rtl8111brtl8168b/linux-r1000(103).zip
1. Treiber kompilieren und installieren
a) SuSE 10.0 32 Bit:
- Ordner r1000 als ROOT in /usr/src/linux-aktuelleKernelversion kopieren.
- Unterordner r1000/src ebenfalls in /usr/src/linux-aktuelleKernelversion kopieren
Code:
su
(Passwort)
cd /usr/src/linux-[i]aktuelleKernelversion[/i]/r1000/
make clean modules
make install
depmod -a
moprobe r1000
Mangels passender Hardware/Versuchskarnickel *g* keine Möglichkeit gehabt, es zu testen.
Beiträge anderer User mit passendem System sind SEHR willkommen!
Bei SuSE 10.1 treten nun weitere Probleme auf:
Es befinden sich zumindest 2 Fehler im Quellcode des Treibers, folgende Änderungen sind zu machen:
c) SuSE 10.1 32 Bit:
Selbst wenn man die obigen Vorarbeiten macht, taucht dieser Fehler hier auf:
Code:
make clean modules
make -C src/ clean
make[1]: Entering directory `/usr/src/linux-2.6.16.13-4/r1000/src'
rm -f *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags
make[1]: Leaving directory `/usr/src/linux-2.6.16.13-4/r1000/src'
make -C src/ modules
make[1]: Entering directory `/usr/src/linux-2.6.16.13-4/r1000/src'
make -C /lib/modules/2.6.16.13-4-default/build SUBDIRS=/usr/src/linux/r1000/src modules
make[2]: Entering directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
make -C ../../../linux-2.6.16.13-4 O=../linux-2.6.16.13-4-obj/i386/default modul es
CC [M] /usr/src/linux/r1000/src/r1000_n.o
/usr/src/linux/r1000/src/r1000_n.c:46: error: expected ')' before string constan t
make[5]: *** [/usr/src/linux/r1000/src/r1000_n.o] Fehler 1
make[4]: *** [_module_/usr/src/linux/r1000/src] Fehler 2
make[3]: *** [modules] Fehler 2
make[2]: *** [modules] Fehler 2
make[2]: Leaving directory `/usr/src/linux-2.6.16.13-4-obj/i386/default'
make[1]: *** [modules] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.16.13-4/r1000/src'
make: *** [modules] Fehler 2
Die Datei r1000_n.c im Unterverzeichnis /r1000/src mit kate öffnen, Zeile 46 suchen (Unten läuft in der Statuszeile ein Zähler) und den Ausdruck von
MODULE_PARM (media, "1-" __MODULE_STRING(MAX_UNITS) "i");
in
MODULE_PARM_DESC (media, "1-" __MODULE_STRING(MAX_UNITS) "i");
ändern. Anschliessend speichern und kate schliessen, der Rest wie oben beschrieben.
SuSE 10.1 64 Bit:
Hier tritt folgender Fehler auf:
Code:
# make clean modules
make -C src/ clean
make[1]: Entering directory `/usr/src/linux-2.6.16.13-4/r1000/src'
rm -f *.o *.ko *~ core* .dep* .*.d .*.cmd *.mod.c *.a *.s .*.flags
make[1]: Leaving directory `/usr/src/linux-2.6.16.13-4/r1000/src'
make -C src/ modules
make[1]: Entering directory `/usr/src/linux-2.6.16.13-4/r1000/src'
make -C /lib/modules/2.6.16.13-4-smp/build SUBDIRS=/usr/src/linux-2.6.16.13-4/r1000/src modules
make[2]: Entering directory `/usr/src/linux-2.6.16.13-4-obj/x86_64/smp'
make -C ../../../linux-2.6.16.13-4 O=../linux-2.6.16.13-4-obj/x86_64/smp modules
CC [M] /usr/src/linux-2.6.16.13-4/r1000/src/r1000_n.o
/usr/src/linux-2.6.16.13-4/r1000/src/r1000_n.c: In function ‘r1000_close’:
/usr/src/linux-2.6.16.13-4/r1000/src/r1000_n.c:1450: error: ‘entdev’ undeclared (first use in this function)
/usr/src/linux-2.6.16.13-4/r1000/src/r1000_n.c:1450: error: (Each undeclared identifier is reported only once
/usr/src/linux-2.6.16.13-4/r1000/src/r1000_n.c:1450: error: for each function it appears in.)
make[5]: *** [/usr/src/linux-2.6.16.13-4/r1000/src/r1000_n.o] Error 1
make[4]: *** [_module_/usr/src/linux-2.6.16.13-4/r1000/src] Error 2
make[3]: *** [modules] Error 2
make[2]: *** [modules] Error 2
make[2]: Leaving directory `/usr/src/linux-2.6.16.13-4-obj/x86_64/smp'
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.16.13-4/r1000/src'
make: *** [modules] Error 2
Wieder mit Kate öffnen und Zeile 1450 suchen und ändern von
synchronize_irq (entdev->irq);
in
synchronize_irq (netdev->irq);
Cooler Fehler oder? Sowas nennt man glaube ich "Wechstabenverbuchsler"
Danach Rest wie gehabt.
2. WICHTIG:Nach einem Kernel-Update wird es zunächst NICHT mehr klappen mit der Karte!
Der Grund dürfte klar sein, denn der Treiber ist nicht im Kernel enthalten sondern als SELBSTgebautes Modul realisiert.
Bei einem Update des Kernels werden diese Module normalerweise NICHT upgedatet, es sei denn, der neue Kernel enthält diesen Treiber.
Deshalb folgende Schritte:
a) Sicherungskopien der geänderten Dateien anlegen.
Die beiden Ordner /usr/src/linux-aktuellerKernel/r1000/ und /usr/src/linux-aktuellerKernel/src/ an einen "lauschigen" Platz kopieren, wo man sie wiederfindet.
b) Nach einem Kernelupdate wird es einen neuen Ordner geben, der /usr/src/linux-neueKernelversion/ heißen wird.
c) Die gesicherten Ordner reinkopieren und analog verfahren.
Dann müsste es wieder gehen, die Fehler im Quellcode wurden ja jetzt beseitigt, also ein einfaches
Code:
su
(Passwort)
make clean modules
make install
depmod -a
modprobe r1000
Das muss man ab sofort bei JEDEM Kernelupdate machen und zwar so lange, bis der Treiber offiziell unterstützt wird.
Sollte die Karte nach einem Reboot auch ohne Kernelupdate nicht laufen, dann muss man z.B. in Yast einstellen, daß das Modul beim Start geladen wird.
Yast --> System --> Editor für /etc/sysconfig Dateien --> System --> Kernel ---> MODULES_LOADED_ON_BOOT --> r1000 Eintragen und bestätigen.
Greetz,
RM