Hardware: la parte di un computer che puoi prendere a calci

— Jeff Pesis

UDEV rules : Fissare i nomi device delle nostre schede di rete

http://www.stenoweb.it/files/blog/eth.png Il problema insorto dopo l'aggiornamento del kernel mi aveva lasciato parecchio l'amaro in bocca: ho seguito il suggerimento di Davide (postato come commento al post e che ringrazio) e ho creato una regola per UDEV in modo che lo stesso non avesse più libera licenza nell'assegnamento dei nomi alle interfacce di rete. Esperimento riuscito e problema scomparso, anche se nello stesso periodo è arrivato un nuovo aggiornamento del kernel e quindi qualche dubbio mi rimane...

Ci sono tre possibilità:

  • Al momento del fattaccio io avevo qualche fetta di salame davanti agli occhi (che in certe ore del giorno può succedere) e non mi sono accorto dello "scambio" di interfacce.
  • il nuovo kernel (2.6.25-11) ha risolto il problema.
  • le rules applicate a udev hanno risolto il problema.

Va bè, vediamo comunque, come si fà ad applicare il suggerimento di Davide relativo a udev (che male non fà di certo, anzi) con Archlinux.

UDEV rules

Udev è un programma in user space in grado ricevere le notifiche del sottosistema hotplug dei kernel 2.6. udev è in grado di creare dinamicamente i device file (quelli in /dev) per ogni periferica che viene rilevata nel sistema.
Per fare un esempio, se al boot vengono trovate delle porte usb, verrà automaticamente caricato il modulo relativo che permetterà (tra le altre cose) di usare eventuali chiavette usb.
Nel mio caso probabilmente mischiava le interfacce di rete eth0, eth1 e eth2 rispetto a prima e da qui il PATATRAC ;)

E' possibile "pilotare" udev in modo che ad ogni riavvio possiamo essere sicuri che assegni lo stesso nome device alle interfacce di rete. Questo è stato il suggerimento di Davide, e io, come lui, ora lo metterò di default nelle mie future installazioni.

Azione

Risolviamo il tutto creando il file 10-network.rules :

sudo nano /etc/udev/rules.d/10-network.rules

Nel mio caso ci sono 3 interfacce di rete (tra cui due identiche su scheda madre, da qui forse il casino), eth0, eth1, e eth2.
Con ifconfig vedo il MAC address delle schede, ne prendo nota e nel file inserisco:
SUBSYSTEM=="net", ATTRS{address}=="00:ab:cd:39:b7:00", NAME="eth0"
SUBSYSTEM=="net", ATTRS{address}=="00:a3:12:d2:c2:26", NAME="eth1"
SUBSYSTEM=="net", ATTRS{address}=="00:a3:12:d2:c2:27", NAME="eth2"

In questo modo sono sicuro che ad ogni riavvio alla scheda con MAC address "00:ab:cd:39:b7:00" venga assegnato il nome "eth0" e così via.

Per non dimenticare ;)

Recentemente ho trasferito vari sistemi (partizioni) da un oac ad un altro, ed ovviamente le varie eth* cambiavano, ho risolto anche io cancellato nelle udev rules le vecchie interfacce e numerando le nuove equivalenti.

Mi chiedevo appunto perchè contrariamente ai Debian Ubuntu e Gentoo, in Archlinux il file /etc/udev/rules.d/xx-persistent-net.rules non esistesse di default.

Già, pensa che io manco sapevo che ci fosse un //xx-persistent-net.rules// ...
Con altre distro mai avuti stì problemi (forse appunto per questo motivo).

Meglio che risolvano (mò lo dico al nostro dev italiano) :D

anche io sono perplesso della mancanza di questa regola in udev, quando a steno è capitato il problema mi era venuto subito in mente di quando avevo cambiato driver wifi e mi comparivano 2 periferiche wlan, ho editato la regola su udev ed era tutto risolto.

Quando steno ha postato il problema ho detto "facile basta che edita que...we dov'è sta roba...perché non c'è in arch...boh sto zitto..." :-)

Fantastic site. A lot of helpful infoo here. I'm
sending it to some buddies ans aloso sharing in delicious.
And of course, thanks on your sweat!