e1000 Treiber Update & Kernel Einbindung

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
hacki
Beiträge: 10
Registriert: 28.11.2003 17:14:22
Kontaktdaten:

e1000 Treiber Update & Kernel Einbindung

Beitrag von hacki » 09.02.2008 20:21:35

Hallo zusammen,

leider fallen meine e1000 NICs unter starker Last mit einem "Detected TX Unit Hang" weg.
Daher wollte ich nun ein Update des e1000 Intel Treibers vornehmen.

Da ich mir jetzt aber nicht 100% sicher bin wie ich am besten vorgehen sollte, wollte ich hier
um Rat fragen.

Debian Etch
2.6.18-6-686

Ich habe bereits den Treiber kompilliert und er lässt sich auch korrekt einbinden.
ethtool -i eth0 zeigt auch, dass die neue Version aktiv ist.
Nach einem Neustart jedoch ist wieder der alte Treiber aktiv.

Nun macht es ja Sinn das neue Modul in den Kernel einzubinden:

Code: Alles auswählen

aptitude install kernel-package build-essential libncurses5-dev
apt-get source linux-image-2.6.18-6-686
Sourcen nach /usr/src kopiert und nach /usr/src/linux verlinkt.
cp /boot/config-2.6.18-6-686 /usr/src/linux/.config
Die Dateien aus dem src Verzeichnis des e1000 Treibers nach /usr/src/linux/drivers/net/e1000/ kopiert

Code: Alles auswählen

cd /usr/src/linux
make oldconfig
make menuconfig
make-kpkg buildpackage --initrd
und letztlich mit dpkg -i die neuen Pakete installieren.

Ist meine Vorgehensweise so korrekt, oder sollte man so ein Treiberupdate grundsätzlich anders gestalten?

Freu mich schon auf Tips, Vielen Dank schonmal

Gruß Jürgen

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Re: e1000 Treiber Update & Kernel Einbindung

Beitrag von Saxman » 09.02.2008 20:25:41

hacki hat geschrieben: Ich habe bereits den Treiber kompilliert und er lässt sich auch korrekt einbinden.
ethtool -i eth0 zeigt auch, dass die neue Version aktiv ist.
Nach einem Neustart jedoch ist wieder der alte Treiber aktiv.
Nur mal so ein Schuss ins blaue, nicht ausprobiert..

Würde es an dieser stelle nicht reichen den neuen treiber mit in die initramdisk aufzunehmen?
Dann sollte er beim booten schon da sein..

Nur so ne idee...
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

hacki
Beiträge: 10
Registriert: 28.11.2003 17:14:22
Kontaktdaten:

Beitrag von hacki » 09.02.2008 20:31:17

Hi Saxman,

danke für die schnelle Antwort.
Wie genau nehm ich ihn in die initramdisk auf?

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Beitrag von Saxman » 09.02.2008 20:36:12

in die /etc/initramfs-tools/modules auf nehmen

und dann initram neu bauen.. z.B so :

Code: Alles auswählen

update-initramfs -v -u -k all
Ich mag diesen Befehl.. :)
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

hacki
Beiträge: 10
Registriert: 28.11.2003 17:14:22
Kontaktdaten:

Beitrag von hacki » 09.02.2008 20:39:12

Läd er bei hochfahren dann zuerst die Version aus dem Kernel oder die aus der init ramdisk?

Versuch ich gleich mal.

edit: Funktioniert :D

Danke!

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Beitrag von Saxman » 09.02.2008 20:42:31

in der initramdisk packe ich bei mir module die er bevorzugen soll wenn mehrere in betracht kommen..

Im grunde kommen da module rein die schon für das booten gebraucht werden, aber in deinem fall sollte es denn älteren treiber quasi "überschreiben" bei der erkennung dannach ..
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

hacki
Beiträge: 10
Registriert: 28.11.2003 17:14:22
Kontaktdaten:

Beitrag von hacki » 10.02.2008 13:30:02

Treiber aktiv und seit 1TB kein einziger Hänger mehr.
Vielleicht noch ein paar Daten für die Suchfunktion, vielleicht brauchts ja mal wer.

lspci
Ethernet controller: Intel Corporation 631xESB/632xESB DPT LAN Controller SERDES (rev 01)
Intel 82563EB Gigabit Ethernet

Vor dem Update:

Code: Alles auswählen

# ethtool -i eth1
driver: e1000
version: 7.1.9-k4-NAPI
Fehler:

Code: Alles auswählen

e1000: eth1: e1000_clean_tx_irq: Detected Tx Unit Hang
Tx Queue <0>
TDH <91>
TDT <a3>
next_to_use <a3>
next_to_clean <90>
buffer_info[next_to_clean]
time_stamp <33a0d>
next_to_watch <96>
jiffies <33f8f>
next_to_watch.status <0>
NETDEV WATCHDOG: eth1: transmit timed out
e1000: eth1: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex
Nach dem Update:

Code: Alles auswählen

# ethtool -i eth1
driver: e1000
version: 7.6.15-NAPI
Fehlerfrei!

Benutzeravatar
minimike
Beiträge: 5616
Registriert: 26.03.2003 02:21:19
Lizenz eigener Beiträge: neue BSD Lizenz
Wohnort: Köln
Kontaktdaten:

Beitrag von minimike » 11.02.2008 09:20:31

Saxman hat geschrieben:in der initramdisk packe ich bei mir module die er bevorzugen soll wenn mehrere in betracht kommen..

Im grunde kommen da module rein die schon für das booten gebraucht werden, aber in deinem fall sollte es denn älteren treiber quasi "überschreiben" bei der erkennung dannach ..
Wäre es denn dann nicht sinnvoll den "blöden" alten Treiber in /lib/modules/$Kernelversion zu löschen/verschieben und danach ein depmod -a?
SuSE liefert auf der 10.3 für mich mangelhafte Wlantreiber aus. Das erste was ich nach der Installation gemacht habe war den Kram zu finden und vernichten. Dann habe ich ein ordentliches Modul gebaut
"Lennart Poettering is one of those typical IT leaders..." "like Linus Torvalds and Theo de Raadt?" "more like Bozo the Clown" After all, now a good employee of Microsoft

tex
Beiträge: 411
Registriert: 03.12.2005 00:32:40
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von tex » 11.02.2008 10:00:07

Ich baue mir meine Kernel immer aus Vanilla-Sourcen selbst.
Gerade für die e1000 Karten macht das Sinn, da sich da mit den neusten Kernel-Versionen einiges getan hat. Einen Versuch mit dem neusten Kernel würde ich mal wagen.

Benutzeravatar
Saxman
Beiträge: 4233
Registriert: 02.05.2005 21:53:52
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: localhost

Beitrag von Saxman » 11.02.2008 19:56:04

minimike hat geschrieben:
Saxman hat geschrieben:in der initramdisk packe ich bei mir module die er bevorzugen soll wenn mehrere in betracht kommen..

Im grunde kommen da module rein die schon für das booten gebraucht werden, aber in deinem fall sollte es denn älteren treiber quasi "überschreiben" bei der erkennung dannach ..
Wäre es denn dann nicht sinnvoll den "blöden" alten Treiber in /lib/modules/$Kernelversion zu löschen/verschieben und danach ein depmod -a?
SuSE liefert auf der 10.3 für mich mangelhafte Wlantreiber aus. Das erste was ich nach der Installation gemacht habe war den Kram zu finden und vernichten. Dann habe ich ein ordentliches Modul gebaut
Das wäre natürlich auch eine Lösung, genauso wie den alten zu blacklisten.
Es gibt sicher auch noch andere Wege die funktionieren.
Wenn aber ein kernel update da ist (Fehlerbereinigung) dann ist das modul wieder da.
In der initram wird das andere modul aber trotzdem noch bevorzugt.
So oder so, beide Lösungen sind "quick and dirty" und sie funktionieren.

Das sauberste ist im Grunde immer einen ordentlichen kernel zu bauen..
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie

Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.

Antworten