theHacker

sieht vor lauter Ads den Content nicht mehr
Teammitglied
ID: 69505
L
20 April 2006
22.680
1.315
Moin.

Ich hab n Linux-Rechner, der nur über Netzwerk erreichbar is ... oder manchmal eben gar nicht.
Jetzt weiß ich mittlerweile auch warum: der Netzwerkadapter heißt einmal eth0 und einmal eth1. In letzterem Fall geht alles, in ersterem muss ich auf den Reset-Knopf drücken, um es nochmal zu probieren.

Hier Auszüge aus dem syslog:
Code:
[FONT=Courier New]# hier hats nicht funktioniert, weil der Adapter eth0 heißt
Jan  7 11:49:16 zeus kernel: [    6.118782] eth0: VIA Rhine II at 0x1d400, 00:0c:76:97:39:e7, IRQ 23.
Jan  7 11:49:16 zeus kernel: [    6.119501] eth0: MII PHY found at address 1, status 0x786d advertising 05e1 Link 45e1.
Jan  7 11:49:16 zeus kernel: [    6.122711] eth1: RealTek RTL-8029 found at 0xec00, IRQ 16, ff:ff:ff:ff:ff:ff.
Jan  7 11:49:16 zeus kernel: [    6.313163] udev[243]: renamed network interface eth0 to eth0-eth1
Jan  7 11:49:18 zeus dhclient: DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 10
Jan  7 11:49:18 zeus dhclient: send_packet: Network is down

# hier geht alles, weil der Adapter eth1 heißt
Jan  7 12:01:23 zeus kernel: [    5.075049] eth0: RealTek RTL-8029 found at 0xec00, IRQ 16, ff:ff:ff:ff:ff:ff.
Jan  7 12:01:23 zeus kernel: [    5.091083] eth1: VIA Rhine II at 0x1d400, 00:0c:76:97:39:e7, IRQ 23.
Jan  7 12:01:23 zeus kernel: [    5.091801] eth1: MII PHY found at address 1, status 0x786d advertising 05e1 Link 45e1.
Jan  7 12:01:23 zeus kernel: [   10.695479] eth1: link up, 100Mbps, full-duplex, lpa 0x45E1

# Interessanter Weise: vor einem halben Jahr hat der Kern einen
# Dreiecks-Namentausch gemacht, wenn die Karte als eth0 erkannt wurde
# - Wieso macht er das jetzt nicht mehr?
Jul  9 14:06:21 zeus kernel: [    4.890101] eth0: VIA Rhine II at 0x1d400, 00:0c:76:97:39:e7, IRQ 23.
Jul  9 14:06:21 zeus kernel: [    4.890821] eth0: MII PHY found at address 1, status 0x786d advertising 05e1 Link 45e1.
Jul  9 14:06:21 zeus kernel: [    5.358120] eth1: RealTek RTL-8029 found at 0xec00, IRQ 16, 00:e0:7d:77:38:b0.
Jul  9 14:06:21 zeus kernel: [    6.107016] udev[247]: renamed network interface eth1 to eth1-eth0
Jul  9 14:06:21 zeus kernel: [    6.112205] udev[256]: renamed network interface eth0 to eth1
Jul  9 14:06:21 zeus kernel: [    6.192644] udev[247]: renamed network interface eth1-eth0 to eth0
Jul  9 14:06:21 zeus kernel: [   10.609847] eth1: link up, 100Mbps, full-duplex, lpa 0x45E1[/FONT]
Hier noch die /etc/network/interfaces:
Code:
[FONT=Courier New]# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth1
iface eth1 inet dhcp
        pre-down ethtool -s eth1 wol g[/FONT]
Ich hab - grade nochmal nachgeguckt - zwei Netzwerkkarten. Nur eine davon is die richtige, wo auch n Stecker drinsteckt:
Code:
[FONT=Lucida Console]root@zeus:/etc/network# lspci | grep Ethernet
00:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8029(AS)
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 74)[/FONT]
Wie bring ich dem Ding bei, dass er von der RTL-8029 die Finger lassen soll, also sie immer auf eth0 mappen und die Rhine-II immer auf eth1 mappen soll?
 
eh0

Hallo

Was sagt denn /etc/udev/rules.d, dort persistent-net.rules

dort eth0 und eth1 entsprechend anpassen, bzw. löschen.

P.S.
Ist eine der karten eine onboard, oder wird nicht benutzt?
Mußt du dann nat. im Bios löschen
 
Ah, Neuland dieses Verzeichnis :)
Code:
[FONT=Lucida Console]root@zeus:/etc/udev/rules.d# cat 70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# PCI device 0x10ec:0x8029 (ne2k-pci)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:e0:7d:77:38:b0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x1106:0x3065 (via-rhine)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:76:97:39:e7", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
root@zeus:/etc/udev/rules.d# ifconfig -a | grep eth
eth0      Link encap:Ethernet  Hardware Adresse ff:ff:ff:ff:ff:ff
eth1      Link encap:Ethernet  Hardware Adresse 00:0c:76:97:39:e7[/FONT]
Die MAC-Adresse der richtigen Netzwerkkarte stimmt, also die mit ...:e7.
Die für die falsche Karte stimmt nicht überein.
Müsste aber doch egal sein, solange die, die ich haben will, richtig is, oder?

Reicht das, wenn ich den eth0-Eintrag aus der Datei raushaue? Immerhin sieht es jetzt ja auch schon richtig aus. Oder soll ich die eth0-Adresse auf ff:ff:... ändern?

P.S.
Ist eine der karten eine onboard, oder wird nicht benutzt?
Mußt du dann nat. im Bios löschen
Die richtige Karte is die onBoard-Karte. Die zusätzlich eingebaute Karte wird nicht benutzt (ich glaub, die hab ich zu Urzeiten mal eingebaut gehabt, um n zweites Netzwerk aufzubauen; da war aber noch n Windows drauf).
 
eth0

Hallo

Es müßte reichen, in den persistent-rules nur die zu belassen, die auch Inet zur Verfügung stellt, die andere löscht du, in der interfaces muß dann nur dieselbe eth-xyz auftauchen, wie in der rules-Datei, ansonsten passiert immer wieder , das du 2 drin hast.
 
Ok, thx.

Jetzt mal n paar Tage warten, ob es ab sofort immer funktioniert. Ich fahr die Kiste nicht täglich hoch.
 
Hat nicht funkioniert :(

Ich hab eben in der udev-Rules-Datei nachgesehen und irgendwer hat wieder den bösen eth0 eingetragen :-?
Code:
[FONT=Courier New]# PCI device 0x10ec:0x8029 (ne2k-pci)
#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:e0:7d:77:38:b0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x1106:0x3065 (via-rhine)[/FONT] [FONT=Courier New]
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:76:97:39:e7", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8029 (ne2k-pci)[/FONT] [FONT=Courier New]
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="68:68:68:68:68:68", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"[/FONT]
Der erste Eintrag is der, den ich vor 2 Monaten auskommentiert hab. Der zweite Eintrag ok. Der dritte Eintrag is plötzlich aufgetaucht.
 
hi,

einfachste möglichkeit: Karte entfernen, oder internen Anschluß im Bios deaktivieren ;)

nächste möglichkeit: in der blacklist das entsprechende Modul / Treiber angeben, dann wird es beim Start nicht geladen.

Gruß,

jiw
 
udev-Regel

Hallo

Ok, sicher die Datei für alle Fälle, von mir aus als persistant.bak und lösche dann die Datei, oder verschiebe sie einfaxh woanders hin.
Beim Neustart sollte die Datei per udev neu erstellt werden, mit den korekten Einträgen für eth0.

Falls das nicht klappt, dann die eth-Einträge nur in der /etc/interfaces anpassen (also dort aus eth0, eth1 machen), sodaß sie mit den Einträgen in der persistant-net-rules übereinstimmen.
 
einfachste möglichkeit: Karte entfernen, oder internen Anschluß im Bios deaktivieren ;)
Da brauch ich entweder Schraubenzieher oder einen Bildschirm :nö:
nächste möglichkeit: in der blacklist das entsprechende Modul / Treiber angeben, dann wird es beim Start nicht geladen.
Klingt interessanter :) Was soll ich da angeben? Dass, was da in Klammern im Kommentar in der Rules-Datei steht?
Ok, sicher die Datei für alle Fälle, von mir aus als persistant.bak und lösche dann die Datei, oder verschiebe sie einfaxh woanders hin.
Beim Neustart sollte die Datei per udev neu erstellt werden, mit den korekten Einträgen für eth0.
Kann ich probieren, glaub aber nicht, dass das was bringt.
Falls das nicht klappt, dann die eth-Einträge nur in der /etc/interfaces anpassen (also dort aus eth0, eth1 machen), sodaß sie mit den Einträgen in der persistant-net-rules übereinstimmen.
Das bringt sicher nix. Wenn die Karte einmal eth0 und einmal eth1 heißt, kann ich in der /etc/interfaces drehen wie ich will und mag... ich hab immer nur ne 50%-Chance, dass es grade richtig is.
 
[...]
Was soll ich da angeben? Dass, was da in Klammern im Kommentar in der Rules-Datei steht?
google ist dein Freund.. Aber für Dich: https://wiki.ubuntuusers.de/Kernelmodule#blacklisting

In Kurzform:

in der /etc/modprobe.d/blacklist.conf

das entsprechende Modul (ne2k-pci | via-rhine) angeben, welches nicht geladen werden soll, fertig.
In der Regel existiert diese Datei schon und einige Module sind schon geblacklisted. Wenn diese Datei nicht existiert, mit ruth-rechten angeben.

Sollte deine Distro nicht Ubuntu sein bzw. ein Debian-basiertes System, dann halt in der Doku zu deiner Distro nachlesen oder kurz: RTFM :mrgreen:

Gruß,

jiw
 
das entsprechende Modul (ne2k-pci | via-rhine) angeben, welches nicht geladen werden soll, fertig.
Das war die Antwort auf meine Frage, wie das Modul heißt ;)
Wie man es blacklistet, hab ich gar nicht gefragt; dass hätt ich mit dem
fucking.gif
Manual selber hinbekommen :p
 
Na, dann hast du aber schon beim Lesen der /var/log/messages, der udev-rules und dem Manual geschlafen. :p

Aber kein Problem, ich helf gerne. ;)

Mit freundlichem Gruß,

jiw