# [udev] Actualización a 200 [solucionado]

## Theasker

Hace unos días me llegó (como a todos supongo) por eselect la información de la actualización a udev 200, y leyendolo un poco por encima me dió un poco de "miedo", y antes de ponerme al asunto (tengo todas las actualizaciones paradas desde entonces), quería preguntar vuestras experiencias y si tengo que tener algo en cuenta importante.

Gracias anticipadas.

----------

## quilosaq

Mira este hilo.

https://forums.gentoo.org/viewtopic-t-956268-start-0-postdays-0-postorder-asc-highlight-.html

----------

## Theasker

después de leer un poco de todo, aún no me queda muy claro qué tengo que hacer con /etc/udev/rules.d/*, ni con /etc/conf.d/net, ni con todas los links de /etc/init.d/net.* (.br0, .lo, .tap0, tap1).

Por ahora hasta que sepa qué hacer con seguridad no voy a actualizarlo, porque veo que al menos me quedo sin la red.

----------

## Stolz

El tema de la red es solo un cambio de nombre, no tengas miendo de actualizar. Actualiza Portage y ejecutando "eselect news read" deberías tener unas instrucciones  de actualización (en inglés) más detalladas que las primeras que dieron. Una versión resumida:

Asegúrate de que tienes un kernel >=2.6.32 con la opción CONFIG_DEVTMPFS=y.

Si montas /dev a traves de /etc/fstab asegúrate de que el tipo de sistema de ficheros es devtmpfs.

Elimina /etc/udev/rules.d/70-persistent-net.rules (si lo estabas usando haz copia antes).

Elimina udev-postmount de tus runlenvels (rc-update del udev-postmount).

Actualiza udev. Como dicen en el otro post no apagues o reinicies hasta que tengas todos los paquetes */udev* actualizados o puedes quedarte con un sistema que no arranca.

Cuando reinicies verás que el nombre de tu tarjeta de red ha cambiado. Puedes ver el nuevo nombre con "ifconfig -a".

En mi caso eth0 pasó a llamarse enp2s0. Voy  a suponer que en tu caso el nombre nuevo es el mismo, si no es así tan solo sustituye en los comandos siguientes por el nombre adecuado.

Renombra el symlink de /etc/init.d/net.eth0 -> net.lo a /etc/init.d/net.enp2s0 -> net.lo

Modifica /etc/conf.d/net y sustituye el nombre viejo por el nuevo, por ejemplo config_eth0="..."  pasa a ser config_enp2s0="..."

Si estabas usando /etc/udev/rules.d/70-persistent-net.rules para asignar un nombre predecible a la tarjeta de red la nueva forma es con /etc/udev/rules.d/80-net-name-slot.rules y la nueva sintaxis es

```

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="xx:xx:xx:xx:xx:xx", NAME="net0"

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="yy:yy:yy:yy:yy:yy", NAME="net1"

```

siendo yy:yy:yy:yy:yy:yy la direccion MAC de la tarjeta, la cual puedes obtener con ifconfig

----------

## Theasker

Lo primero, muchas gracias por el mini-howto Stolz:

 - Ya tenía esa opción del kernel activa

 - Creo que no tengo que modificar nada de mi fstab

```
# cat /etc/fstab

# <fs>                  <mountpoint>    <type>          <opts>          <dump/pas$

/dev/sda1       /mnt/windows            ntfs-3g force,ro                0 0

/dev/sdb2   /mnt/datos1      ext4   noatime         0 2

/dev/sdc1   /mnt/datos2      ntfs-3g users         0 1

/dev/sda2       /boot                   ext2    noauto,noatime          1 2

/dev/sda3       none                    swap    sw                      0 0

/dev/sda5       /                       ext4    noatime                 0 1

/dev/sda6       /usr/portage            ext2    noatime                 0 1

/dev/sda7       /usr/portage/distfiles  ext2    noatime                 0 1

/dev/sda8       /var                    ext4    noatime                 0 1

/dev/sda9       /usr/src                ext2    noatime                 0 1

/dev/sda10      /tmp                    ext2    noatime                 0 1

/dev/sda10      /var/tmp                ext2    noatime                 0 1

/dev/sda11      /home                   ext4    noatime,user_xattr                 0 2

/dev/dvdrw/       /mnt/dvdrw/             auto    noauto,users,gid=100,umask=007  0 0

#none    /dev/shm        devtmpfs   nodev,nosuid,noexec     0 0

# NOTE: The next line is critical for boot!

proc            /proc                   proc    defaults                0 0
```

- En cuanto al directorio /etc/udev/rules.d/ tenía todos esos ficheros pero no los había usado nunca, por lo que el de red lo he renombrado

```
cp 70-persistent-net.rules 70-persistent-net.rules.old
```

 y ... sigue funcionando la red, por lo que creo que no lo estaba usando.[/quote]

- udev-postmount no lo tengo en el sistema

```
# /etc/init.d/udev

udev        udev-mount  

Theasker64 rules.d # /etc/init.d/udev-mount status

 * status: started
```

si ejecuto el comando que pone en las eselect news para ver el nuevo nombre de mi tarjeta me sale esto:

```
# udevadm test-builtin net_id /sys/class/net/eth0 2> /dev/null

ID_NET_NAME_MAC=enx00237d0764dd

ID_OUI_FROM_DATABASE=Hewlett-Packard Company

ID_NET_NAME_PATH=enp14s0
```

por lo que entiendo que mi nuevo nombre sería enp14s0

pero mi archivo de configuración tiene algunas cosillas más

```
# cat /etc/conf.d/net

#config_eth0="192.168.0.69 netmask 255.255.255.0 brd 192.168.0.255"

#routes_eth0="default via 192.168.0.1"

bridge_br0="eth0 tap0 tap1"

brctl_br0="setfd 0 sethello 0 stp off"

rc_net_br0_need="net.tap0 net.tap1"

config_br0="192.168.0.69/24"

routes_br0="default via 192.168.0.1"

config_tap0="null"

tuntap_tap0="tap"

mac_tap0="00:00:00:00:00:00"

config_tap1="null"

tuntap_tap1="tap"

mac_tap1="00:00:00:00:00:01"

config_eth0="null"

tunctl_tap0="-u theasker" 

tunctl_tap1="-u theasker"
```

¿qué parte tendría que cambiar aquí?, ¿sólo donde pongo eth0 y sustituirlo por enp14s0

----------

## Theasker

Después de un tiempo queríéndolo hacer me he puesto a actualizar udev, hasta ahora estaba con exámenes y no podía permitirme que me dejara de funcionar mi gentoo.

He seguido los pasos que me dio stolz, pero no se muy bien qué pasa, no me ha cambiado ningún nombre, tengo instalado a la vez 2 versiones de udev

```

[I] sys-fs/udev (200@13/06/13): Linux dynamic and persistent device naming support (aka userspace devfs)

[I] sys-fs/udev-init-scripts (25@13/06/13): udev startup scripts for openrc

[I] virtual/udev (197-r3@13/06/13): Virtual to select between sys-fs/udev and sys-fs/eudev

```

y sigo funcionando con mi configuración de eth0. Se supone que el nombre cambiaría pero ... no se que he hecho mal.

----------

## gringo

 *Quote:*   

> tengo instalado a la vez 2 versiones de udev 

 

no, tienes instalado el paquete udev y un virtual ( dado que hay varios paquetes que hacen lo mismo que udev en el árbol oficial).

 *Quote:*   

> Se supone que el nombre cambiaría

 

supongo que será porque todavía tienes algún archivo de configuración que le dice a udev que no quieres que cambien los nombres.

Que tienes en /etc/udev/rules.d/ ( creo que era ese el directorio) ?

saluetes

----------

## Theasker

```
# ls -la

total 28

drwxr-xr-x 2 root root 4096 abr 10 22:06 .

drwxr-xr-x 4 root root 4096 jun 13 00:14 ..

-rw-r--r-- 1 root root  100 feb 26  2012 50android.rules

-rw-r--r-- 1 root root  225 feb  8 19:43 70-libsane.rules

-rw-r--r-- 1 root root 1363 ene 13 11:38 70-persistent-cd.rules.old

-rw-r--r-- 1 root root  441 ene  7 21:24 70-persistent-net.rules.old

-rw-r--r-- 1 root root 1667 ene 19 19:35 80-net-name-slot.rules

```

----------

## opotonil

```

cat /etc/udev/rules.d/80-net-name-slot.rules 

#

# Udev 197 and above has implemented predictable network interface names

# for hardware network interfaces. This new scheme does not affect

# stacked network interfaces such as bonds, bridges or vlans.

#

# This file is here to prevent your interfaces from being renamed automatically,

# because the new names will be drastically different from the eth*, wlan*, etc

# names you are used to working with.

#

# To activate this function, move this file to a name that doesn't end in.rules,

# or remove it then reboot your system.

[...]

```

Salu2.

----------

## Theasker

No pensaba que ese fichero afectase, pero renombrando ese fichero todo arreglado.

----------

