Netzwerktreiber für kabelgebundenes Netzwerk kompilieren

Auf meinem Asus EeePC habe ich Sidux (ein Debian-Derivat, das versucht möglichst aktuelle Software zu verteilen) installiert. Leider ist jedoch der Treiber für die Netzwerkkarte nicht mit im Kernel.

Kein Problem, können wir selber kompilieren:

  • Treiber von Atheros runterladen: AR813X-linux-v1.0.0.9.tar.gz
  • (evtl. umbennenen) und entpacken, den GZIP-Fehler beim Entpacken ignorieren:
# mkdir /usr/src/atheros
# mv \[459\]AR813X-linux-v1.0.0.9.tar.gz /usr/src/atheros/AR813X-linux-v1.0.0.9.tar.gz
# cd /usr/src/atheros
# tar xvfz AR813X-linux-v1.0.0.9.tar.gz
atl1e.7
at_osdep.h
copying
ldistrib.txt
readme
release_note.txt
src/
src/atl1c.h
src/atl1c_ethtool.c
src/atl1c_hw.c
src/atl1c_hw.h
src/atl1c_main.c
src/atl1c_param.c
src/atl1e.h
src/atl1e_ethtool.c
src/atl1e_hw.c
src/atl1e_hw.h
src/atl1e_main.c
src/atl1e_param.c
src/at_common.h
src/at_common_main.c
src/at_osdep.h
src/kcompat.c
src/kcompat.h

gzip: stdin: decompression OK, trailing garbage ignored
src/kcompat_ethtool.c
src/Makefile
src/Module.symvers
src/modules.order
tar: Child returned status 2
tar: Exiting with failure status due to previous errors
  • ACHTUNG: Soll das Modul für 2.6.30-XX gebaut werden muss die Datei src/kcompat.h muss wie folgt geändert werden:
ab Zeile 206, alt:
#ifndef IRQ_HANDLED
#define irqreturn_t void
#define IRQ_HANDLED
#define IRQ_NONE
#endif
muss geändert werden in:
#ifndef IRQ_HANDLED
#define irqreturn_t void
#define IRQ_HANDLED 1
#define IRQ_NONE 0
#endif
  • jetzt das Modul bauen:
cd src
make
...
make install
  • und noch in /etc/modules einbauen:
echo "atl1e" >> /etc/modules
  • Nach einem Reboot oder manuellen Laden des Moduls (modprobe atl1e) steht das Device eth0 zur Verfügung
  • Möglicherweise muss man den Treiber atl1c blacklisten, diesen wurde bei mir nämlich manchmal fehlerhafterweise geladen. Dazu einfach:
echo "blacklist atl1c" >> /etc/modprobe.d/blacklist.conf

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
O R U P I