Netzwerkkarte unter Linux einrichten
Dieses kleine HOWTO richtest sich vor allem an Linux-Neulinge. Es wird hierbei
die Linuxdistribution von Suse in Version 8.2 verwendet. Ich würde mich
sehr über Feedback freuen, falls irgendetwas unklar oder noch was aufgenommen
werden sollte.
Welche Karte schlummert hier?
Finden wir zunäschst einmal herraus, welche Karte im PC steckt. Ist die Verpackung, bzw. Anleitung noch vorhanden, so ist dies natürlich ein Leichtes - wenn nicht, dann benötigt man ein Textconsole mit root Rechten.
Auf dieser wird eingegeben: cat /proc/pci - die aus diesem Befehl resultierende Ausgabe sieht prinzipiell wie folgt aus:
linux:/home/mr # cat /proc/pci
PCI devices found:
Bus 0, device 15, function 0:
Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 16).
IRQ 5.
Master Capable. Latency=64. Min Gnt=32.Max Lat=64.
I/O at 0xd400 [0xd4ff].
Non-prefetchable 32 bit memory at 0xcfffdf00 [0xcfffdfff].
Bus 0, device 17, function 0:
linux:/home/mr #
Hier sind alle PCI Geräte aufgelistet, die Linux beim Booten gefunden hat. Der Eintrag "Ethernet controller:" ist interessant. Dieser zeigt uns, welche Karte eingebaut ist, in diesem Fall eine Realtek 8139, bzw. eine mit Realtek Chipsatz.
Sollte sich hier kein Eintrag finden, so ist sehr wahrscheinlich Karte defekt, oder es liegt ein anderer Konfikt vor. Hier hilft nur "/var/log/boot.msg" und die "/var/log/messages" auszuwerten.
Modul laden? Hdd?
Welche Karte (RTL-8139) eingebaut ist, haben wir herausgefunden . Nun müssen wir Linux einen Treiber zur Verfügung stellen. Treiber heisen unter Linux auch Module. Aber welchen? Schauen wir uns mal den Befehl modprobe genauer an modprobe -h.
Dieser Befehl gestattet uns Module zu laden un zu entladen, oder auch geladene Module anzuzeigen. Interessant ist aber der Schalter modprobe -l, hier werden alle Module, die zur Verfügung stehen, aufgelistet. Wow, eine Menge! - Schränken wir die Suche ein bischen weiter ein. Wir wissen, es handelt sich um einen Treiber und wir wissen, es handelt sich um eine Netzwerkkarte. Somit kann folgende Syntax verwendet werden: modprobe -l | grep drivers/net
linux:/home/mr # modprobe -l | grep drivers/net
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/3c501.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/3c503.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/3c505.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/3c507.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/3c509.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/3c515.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/3c59x.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/3c90x.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/8139cp.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/8139too.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/82596.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/8390.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/de4x5.o
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/epic100.o
linux:/home/mr #
Diese Auflistung ist je nach Version unterschiedlich lang. Aber hier springt uns schon die Zeilen mit 8139 ins Auge. Aha, es gibt zwei Treiber. Tja welcher, 8139cp.o oder 8139too.o?
Probieren geht über Studieren. Mit modprobe 8139cp bekomme ich gleich mal Fehlermeldungen:
linux:/home/mr # modprobe 8139cp
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/8139cp.o:
init_module: No such device
Hint: insmod errors can be caused by incorrect module parameters,
including invalid IO or IRQ parameters.
You may find more information in syslog or the output from dmesg
/lib/modules/2.4.20-4GB-athlon/kernel/drivers/net/8139cp.o:
insmod 8139cp failed
linux:/home/mr #
Aha, "No such device", also kein passendes Gerät gefunden. Versuchen wir mal den zweiten: modprobe 8139too - Keine Fehlermeldung.
Überprüfen wir mal, ob er auch gelanden ist: cat /proc/modules
linux:/home/mr # cat /proc/modules
snd-pcm-oss 50144 0 (autoclean)
snd-mixer-oss 15704 1 (autoclean) [snd-pcm-oss]
usbserial 19580 0 (autoclean) (unused)
mousedev 4372 0 (unused)
joydev 5792 0 (unused)
evdev 4192 0 (unused)
8139too 15752 1
ntfs 80620 2 (autoclean)
reiserfs 217364 1
linux:/home/mr #
Jep, ist geladen. Fertig.
Wie verpasse ich der Netzwerkkarte eine IP?
Am besten mit ifconfig. Der Syntax dazu lautet: ifconfig eth0 172.16.0.1 netmask 255.255.0.0. Der Schalter "netmask" ist hier optional. Überprüfen wir die Eingabe mit 'ifconfig':
linux:/home/mr # ifconfig
eth0 Protokoll:Ethernet Hardware Adresse XX:XX:XX:XX:XX:XX
inet Adresse:172.16.0.1 Bcast:172.16.255.255 Maske:255.255.0.0
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:234 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenldnge:100
RX bytes:0 (0.0 b) TX bytes:131900 (128.8 Kb)
Interrupt:5 Basisadresse:0xaf00
linux:/home/mr #
Nun kann ich mittels ping versuchen, eine Verbindung zu testen: ping 172.16.0.2. Natürlich muss auch ein solcher Rechner mit der IP 172.16.0.2 vorhanden sein. Ein ping auf 172.16.0.1 tut es aber auch. ;-)
Das wars schon?
Das wars schon, sagte Markus. Der nächste Schritt würde natürlich mit der Aussenwelt (Internet) Kontakt aufzunehmen. Darüber gibt es aber schon sehr viele HOWTOs.
Nachdenkliches
Hier bin ich natürlich vom Idealfall ausgegangen. Sollte Deine Karte nicht als Modul vorliegen, so schau doch mal in der SuSE Hardwaredatenbank (www.suse.de) vorbei. Vielleicht gibt es aber noch keinen Treiber dafür, dann probiere verschiedene aus. Vielleicht musst du das Modul erst kompilieren. Auch hierzu gibt es im Internet verschiedene HOWTOs. Poste auch mal in verschiedene Foren. Noch besser ist es aber, vor dem Erwerb einer neuen Netzwerkkarte nachzuschauen, ob diese auch von Linux unterstützt wird.
Viel Spass
|