Alterar nome da placa de rede no Linux [eth0, eth1]

Outro dia uma amigo meu me pediu uma ajuda pois a placa de um Slackware dele havia dado problema e, ao realizar a troca, a nova placa não estava subindo. Todos nós, já acostumados com as antigas incompatibilidades entre Hardware e Linux, iríamos imaginar que o Linux não reconheceu a placa ethernet, certo?

Depois de um ‘lspci’ e 2 ‘ifconfig ethX up’ verificamos que ele havia reconhecido sim a placa, porém ela havia sido reconhecida como eth1! Mas como se ela foi instalada inclusive no mesmo slot PCI?

O Linux possui um arquivo que vincula o endereço MAC da placa ethernet a um nome (eth0, eth1 e etc). Esse arquivo muda de Distro pra Distro, como conheçemos pouco de Slack apelamos pro Oráculo.

Agora a solução:


No Slackware
Editar o arquivo /etc/udev/rules.d/XYZ-persistent-net.rules. O XYZ é porque o que esse início do arquivo parece que varia, não tenho certeza… já vi pelomenos 4 começos diferentes!

O conteúdo do arquivo geralmente segue o seguinte padrão:
# PCI device 0×1106:0×3106 (via-rhine)
SUBSYSTEM==”net”, DRIVERS==”?*”, ATTRS{address}==”xx:xx:xx:xx:x x:xx”, NAME=”eth0″

Pra alterar o nome basta alterar a chame NAME!

No Debian e Debian Based (Ubuntu, Kurumin e etc)
Basta editar ou criar, caso não exista, o arquivo /etc/iftab

Exemplo de conteúdo:
#iftab
eth0 mac XX:XX:XX:XX:XX:XX arp 1
eth1 mac YY:YY:YY:YY:YY:YY arp 1

Onde XX:XX:XX:XX:XX:XX e YY:YY:YY:YY:YY:YY indicam o MAC das placas.

Porque que Slackware tem que ser tão complexo?!

########## Update ##########

A solução é fácil demais, tão fácil que fica ridicula (rss)

a) descubra (ifconfig) o endereço de hardware de sua placa – ou melhor dizendo, da placa que está com personalidade diferente.

b) ifconfig down ethX (a tal)
c) nameif ethX hardware_address – onde o X é o numero que vc pretende pra ela