# [udev] modification du nom de mon interface réseau

## spider312

Salut à tous

Depuis hier (sachant qu'avant hier j'ai fait une mise à jour de mon système pour la première fois depuis peut-être bien 3 semaines ou 1 mois), mon interface wifi ne se renomme plus comme avant, alors que mon interface ethernet se renomme bien, elle 

Ma conf : (/etc/udev/rules.d/10-local.rules)

```
KERNEL=="eth*", ATTR{address}=="00:03:0d:30:57:ce", NAME="gigabit"

KERNEL=="eth*", ATTR{address}=="00:12:f0:0e:7b:b7", NAME="wifi"
```

(l'adresse MAC n'a pas changé, bien évidemment)

Par contre j'ai un /etc/udev/rules.d/70-persistent-net.rules qui contient 

```
SUBSYSTEM=="net", DRIVERS=="?*", ATTR{address}=="00:12:f0:0e:7b:b7", KERNEL=="eth*", NAME="eth0"
```

 (que je n'ai pas créé moi même, et je me demande bien d'où il vient)

Si je commente cette ligne, mon interface reprend bien son nom "wifi", mais alors le script d'init retourne une erreur "1" et n'affiche rien quand je start/stop/restart

Quelqu'un saurait-il comment je peux retrouver mon bon vieux fonctionnement qui me convenait depuis des mois ?

Merci d'avance

----------

## Temet

Salut,

Au pif, t'as testé de commenter la ligne dans le fichier 10 et de changer le name dans le 70 ?

----------

## guilc

Alors le 70-persistent-net.rules, tu peux le virer : c'est un fichier autogénéré au lancement d'udev pour conserver la même assignation des interfaces réseau d'un boot sur l'autre (idem pour les cd-rules)

Le script d'init qui plante c'est quoi exactement ?

tu parles de /etc/init.d/net.eth0 ?

Parceque si tu renommes l'interface, il faut virer /etc/init.d/net.eth0 (qui est un lien symbolique) et créer un nouveau lien /etc/init.d/net.wifi (et /etc/init.d/net.gigabit) vers /etc/init.d/net.lo

Exemple chez moi :

```
lrwxrwxrwx 1 root root     6 janv. 26 21:03 /etc/init.d/net.lan -> net.lo*

-rwxr-xr-x 1 root root 15179 juin   9 11:09 /etc/init.d/net.lo*

lrwxrwxrwx 1 root root     6 janv. 26 21:03 /etc/init.d/net.net -> net.lo*

lrwxrwxrwx 1 root root     6 janv. 26 21:03 /etc/init.d/net.ppp0 -> net.lo*
```

----------

## spider312

 *Temet wrote:*   

> Au pif, t'as testé de commenter la ligne dans le fichier 10 et de changer le name dans le 70 ?

 Si c'est un fichier auto-généré, il sera re-écrasé, donc je ne vois pas trop l'intérêt, mais je vais faire quelques tests, je verrais ça ...

 *guilc wrote:*   

> Alors le 70-persistent-net.rules, tu peux le virer : c'est un fichier autogénéré au lancement d'udev pour conserver la même assignation des interfaces réseau d'un boot sur l'autre (idem pour les cd-rules)

 Et y'a pas moyen de virer ce mécanisme ? Parce que c'était justement le but de ma conf, et en plus les noms d'interface étaient clairs

 *guilc wrote:*   

> Le script d'init qui plante c'est quoi exactement ?
> 
> tu parles de /etc/init.d/net.eth0 ?

 J'ai recréé net.eth0 pour ravoir le net avant de trouver d'où venait le problème de renommage, donc en gros, avec interface=eth0 et script=net.eth0, ça marche (mais je doute qu'il tienne compte de ma conf réseau, puisqu'elle est configurée d'après le nom d'interface "wifi") et avec interface=wifi et script=net.wifi, erreur précédemment mentionnée, je n'ai pas essayé avec interface=wifi et script=net.eth0 ni interface=eth0 et script=net.wifi, je ne vois pas trop l'intérêt

----------

## guilc

Et c'est quoi l'erreur exactement ? Si des fois on avait une idée de pourquoi le script d'init plante ? (avec le contenu du fichier /etc/conf.d/net)

----------

## spider312

L'erreur, il n'y en a pas justement, c'est genre 

```
# /etc/init.d/net.wifi restart

# echo $?

1
```

Et voilà mon conf.d/net : http://nopaste.org/p/aYKTZ0XZU

Mais le script marchait avant, et marche toujours pour lo et le nouveau nom de l'interface, donc je doute que ça ne vienne de la conf

J'ai testé avec "wifi" comme nom d'interface dans le 70, et ça semble avoir marché, il n'a pas été écrasé, ça semble être généré de façon intelligente donc

Je me demande si le but ce n'est pas que les utilisateurs définissent eux même cette règle dans ce fichier, mais je ne trouve aucune doc à jour (ni même complète) sur udev pour vérifier ça

On pourrait presque considérer que le problème est résolu, mais j'aimerais bien comprendre et être sûr que la solution que j'ai choisie est "la bonne" histoire de ne pas avoir à revenir vous embêter avec ça à la prochaine update d'udev ...

----------

## GentooUser@Clubic

Au passage 

/etc/conf.d/udev

```

...

# Disable adding new rules for persistent-net

persistent_net_disable="no"

...

```

----------

## spider312

Ah, oui, tiens, j'avais pas pensé à cette conf là, merci  :Smile: 

Et à votre avis, il vaut mieux désactiver ça et utiliser une conf perso, ou utiliser le 70 pour configurer mes interfaces réseau ?

----------

## ghoti

AMHA, il est préférable de créer un fichier perso qui ne risque pas d'être modifié automatiquement par un composant du système.

Même si tu désactives maintenant la mise-à-jour automatique du 70-persistent*, es-tu certain de ne pas le réactiver par accident plus tard ?  :Wink: 

----------

## spider312

 *ghoti wrote:*   

> Même si tu désactives maintenant la mise-à-jour automatique du 70-persistent*, es-tu certain de ne pas le réactiver par accident plus tard ? 

 Juste comme ça, dans ce cas le fichier n'est écrasé que s'il ne contient pas déjà une conf pour l'interface en question, donc ce ne serait pas problématique

----------

## salamandrix

```
KERNEL=="eth*", ATTR{address}=="00:12:f0:0e:7b:b7", NAME="wifi"
```

Et en mettant :

```
NAME:="wifi"
```

C'est une idée bête mais... avec udev....

----------

## Whoo

Personnellement j'utilise /sbin/nameif ... qui permet de renommer les interfaces en fonction  de l'adresse mac.

Udev c'est bien, mais j'ai l'impression que cela change à chaque upgrade.

nameif fonctionne avec le fichier /etc/mactab

```
cat /etc/mactab

Iprive 00:24:21:2A:A3:ee

Ipublic 00:40:fA:9A:d8:62
```

Il faut ajouter dans le fichier /etc/conf.d/local.start le lancement de /sbin/nameif (en fait avant que les scripts net.* se lance)

Il faut aussi vérifier que local est bien lancé dans le runlevel boot => rc-update add local boot 

-----

Dominique DERRIER

(http://pidginsvn.dyndns.org | http://www.lugm.org )

----------

