# Diferencias UDEV (Cerrado)

## JotaCE

Estimados..... que diferencias hay entre el UDEV que usa Gentoo con openrc y el UDEV que está integrado con systemd??

Hago la pregunta por que tengo un problema para reconocer un dispositivo de red inalambrica usando el mismo kernel en dos distros basadas en código fuente.

Gentoo

```
[    5.596069] systemd-udevd[1278]: starting version 216

[    7.035862] Intel(R) Wireless WiFi driver for Linux, in-tree:d

[    7.035865] Copyright(c) 2003- 2014 Intel Corporation

[    7.036061] iwlwifi 0000:0d:00.0: can't disable ASPM; OS doesn't have ASPM control

[    7.036282] iwlwifi 0000:0d:00.0: irq 43 for MSI/MSI-X

[    7.044602] iwlwifi 0000:0d:00.0: Direct firmware load failed with error -2

[    7.044609] iwlwifi 0000:0d:00.0: Falling back to user helper

[    7.075506] iwlwifi 0000:0d:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm

[    7.098547] iwlwifi 0000:0d:00.0: CONFIG_IWLWIFI_DEBUG enabled

[    7.098550] iwlwifi 0000:0d:00.0: CONFIG_IWLWIFI_DEBUGFS disabled

[    7.098552] iwlwifi 0000:0d:00.0: CONFIG_IWLWIFI_DEVICE_TRACING enabled

[    7.098554] iwlwifi 0000:0d:00.0: Detected Intel(R) Centrino(R) Wireless-N 1030 BGN, REV=0xB0

[    7.098658] iwlwifi 0000:0d:00.0: L1 Enabled; Disabling L0S

[    7.116356] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'

[    7.222379] systemd-udevd[1297]: renamed network interface wlan0 to wlo1
```

```
[    3.769388] udevd[1237]: starting version 1.10

[    4.068500] input: PC Speaker as /devices/platform/pcspkr/input/input9

[    4.407446] Intel(R) Wireless WiFi driver for Linux, in-tree:

[    4.407448] Copyright(c) 2003- 2014 Intel Corporation

[    4.407648] iwlwifi 0000:0d:00.0: can't disable ASPM; OS doesn't have ASPM control

[    4.407875] iwlwifi 0000:0d:00.0: irq 28 for MSI/MSI-X

[    4.428602] iwlwifi 0000:0d:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm

[    4.633286] iwlwifi 0000:0d:00.0: CONFIG_IWLWIFI_DEBUG disabled

[    4.633291] iwlwifi 0000:0d:00.0: CONFIG_IWLWIFI_DEBUGFS disabled

[    4.633294] iwlwifi 0000:0d:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled

[    4.633297] iwlwifi 0000:0d:00.0: Detected Intel(R) Centrino(R) Wireless-N 1030 BGN, REV=0xB0

[    4.633417] iwlwifi 0000:0d:00.0: L1 Enabled; Disabling L0S

[    4.651195] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'
```

Como pueden ver el primer trozo de codigo dmesg muestra como se inicia udev  el kernel ve al dispositivo y le da un nombre (wlo1)

En el segundo trozo de codigo dmesg se inivicia udev el kernel ve al dispositivo pero finalmente no hay un nombre para el dispositivo con lo que no puedo configurarlo

Gracias de antemano!

----------

## esteban_conde

¿Has copiado el kernel de una distro a otra?

Si la respuesta es si pueden ser varias cosas que no hayas copiado /lib/modules/$(uname -r) de un sistema al otro puede ser una causa , otra que se me ocurre puede ser el firmware.

He hecho actualizaciones de openrc a systemd sin cambiar el kernel, es decir he actualizado el kernel en openrec para luego acometer la actualización, es más fácil hacer una instalación limpia me apetecía hacerlo así.

----------

## JotaCE

 *esteban_conde wrote:*   

> ¿Has copiado el kernel de una distro a otra?
> 
> Si la respuesta es si pueden ser varias cosas que no hayas copiado /lib/modules/$(uname -r) de un sistema al otro puede ser una causa , otra que se me ocurre puede ser el firmware.
> 
> He hecho actualizaciones de openrc a systemd sin cambiar el kernel, es decir he actualizado el kernel en openrec para luego acometer la actualización, es más fácil hacer una instalación limpia me apetecía hacerlo así.

 

Hola Esteban... no he copiado los kernels, los he compilado manualmente (sin genkernelo cualquier otra herramienta).

Lo que me parece raro es que aun sea las mismas versiones de kernel en la misma maquina, no responde de la misma manera, solo la diferencia es el UDEV.

 :Smile: 

----------

## gringo

en la máquina donde no aparece el dispositivo : 

- que tienes en /sys/class/net/ ?

- tienes alguna regla en /etc/udev/rules.d/ ?

saluetes

----------

## esteban_conde

 *JotaCE wrote:*   

> Hola Esteban... no he copiado los kernels, los he compilado manualmente (sin genkernelo cualquier otra herramienta). 

 

Es que con systemd yo al menos y no recuerdo el porqué conpilo con genkernel all --menuconfig ya que crea un initramfs que me parece que es necesario.

Se puede compilar a mano pero hay que crear tambien un initramfs con el comando genkernel --initramfs.

Espera que alguien lo confirme o investiga la forma de crear el initramfs antes habia un comando independiente pero ahora ha desaparecido.

----------

## JotaCE

 *gringo wrote:*   

> en la máquina donde no aparece el dispositivo : 
> 
> - que tienes en /sys/class/net/ ?
> 
> - tienes alguna regla en /etc/udev/rules.d/ ?
> ...

 

```
-bash-4.3# ls -l /sys/class/net/

total 0

lrwxrwxrwx 1 root root 0 Oct 14 12:34 lo -> ../../devices/virtual/net/lo

lrwxrwxrwx 1 root root 0 Oct 14 12:34 sit0 -> ../../devices/virtual/net/sit0

lrwxrwxrwx 1 root root 0 Oct 14 12:34 wlan0 -> ../../devices/pci0000:00/0000:00:1c.1/0000:0d:00.0/net/wlan0

```

```
-bash-4.3# cd /sys/class/net/wlan0

-bash-4.3# ls

addr_assign_type  broadcast        device    dormant  ifalias  link_mode         netdev_group  phys_port_id  speed       tx_queue_len  wireless

address           carrier          dev_id    duplex   ifindex  mtu               operstate     power         statistics  type

addr_len          carrier_changes  dev_port  flags    iflink   name_assign_type  phy80211      queues        subsystem   uevent

-bash-4.3# ls -l /sys/class/net/wlan0

lrwxrwxrwx 1 root root 0 Oct 14 12:34 /sys/class/net/wlan0 -> ../../devices/pci0000:00/0000:00:1c.1/0000:0d:00.0/net/wlan0
```

```

-bash-4.3# ls -l /etc/udev/rules.d/

total 16

...

...

-rw-r--r-- 1 root root 428 Oct 10 05:59 70-persistent-net.rules

...
```

```
-bash-4.3# cat /etc/udev/rules.d/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 0x8086:0x008b (iwlwifi)

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="4c:eb:42:1e:98:ee", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="wlan0"
```

Parece que ahi hay algo de información.... pero por que no sale eso en el log dmesg??

SalU2

 *esteban_conde wrote:*   

>  *JotaCE wrote:*   Hola Esteban... no he copiado los kernels, los he compilado manualmente (sin genkernelo cualquier otra herramienta).  
> 
> Es que con systemd yo al menos y no recuerdo el porqué conpilo con genkernel all --menuconfig ya que crea un initramfs que me parece que es necesario.
> 
> Se puede compilar a mano pero hay que crear tambien un initramfs con el comando genkernel --initramfs.
> ...

 

Si es cierto, pero ojo.... no estoy usando systemd si no que solamente la parte udev de systemd, lo demas es todo igual (openrc)

----------

## esteban_conde

 *Quote:*   

> SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="4c:eb:42:1e:98:ee", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="wlan0"

 

Pues te la nombra correctamente si trabajas con openrc crea el enlace a wlan0 en /etc/init.d con este comando "ln -sf net.lo net.wlan0" desde dentro del directorio y como root para que te inicie el dispositivo desde el arranque con los parametros que pongas en /etc/conf.d/net para ese dispositivo.

No es conveniente que dejes enchufada al router la tarjeta cableada en mi portátil se desconecta la inalambrica si conecto la otra.

EDITO:

Te pongo un copy/paste en el que se ve que a mi me renombra eth0 a enp4s0 y wlan0 a wlp2s0 como ves siguen un camino un poco tortuoso con esto de los nombres.

 *Quote:*   

> esteban@localhost ~ $ dmesg |grep -i net
> 
> [    4.308597] e1000: Intel(R) PRO/1000 Network Driver - version 7.3.21-k8-NAPI
> 
> [    5.645997] NET: Registered protocol family 10
> ...

 

----------

## JotaCE

 *esteban_conde wrote:*   

>  *Quote:*   SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="4c:eb:42:1e:98:ee", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="wlan0" 
> 
> Pues te la nombra correctamente si trabajas con openrc crea el enlace a wlan0 en /etc/init.d con este comando "ln -sf net.lo net.wlan0" desde dentro del directorio y como root para que te inicie el dispositivo desde el arranque con los parametros que pongas en /etc/conf.d/net para ese dispositivo.
> 
> No es conveniente que dejes enchufada al router la tarjeta cableada en mi portátil se desconecta la inalambrica si conecto la otra.
> ...

 

Arreglado!!!

```
[    3.696225] udevd[1231]: starting version 1.10

[    4.001981] input: PC Speaker as /devices/platform/pcspkr/input/input8

[    4.008522] Intel(R) Wireless WiFi driver for Linux, in-tree:

[    4.008525] Copyright(c) 2003- 2014 Intel Corporation

[    4.008691] iwlwifi 0000:0d:00.0: can't disable ASPM; OS doesn't have ASPM control

[    4.008897] iwlwifi 0000:0d:00.0: irq 28 for MSI/MSI-X

[    4.579282] iwlwifi 0000:0d:00.0: loaded firmware version 18.168.6.1 op_mode iwldvm

[    4.621806] iwlwifi 0000:0d:00.0: CONFIG_IWLWIFI_DEBUG disabled

[    4.621810] iwlwifi 0000:0d:00.0: CONFIG_IWLWIFI_DEBUGFS disabled

[    4.621813] iwlwifi 0000:0d:00.0: CONFIG_IWLWIFI_DEVICE_TRACING disabled

[    4.621816] iwlwifi 0000:0d:00.0: Detected Intel(R) Centrino(R) Wireless-N 1030 BGN, REV=0xB0

[    4.621923] iwlwifi 0000:0d:00.0: L1 Enabled; Disabling L0S

[    4.639795] ieee80211 phy0: Selected rate control algorithm 'iwl-agn-rs'

[    4.640100] modprobe (2420) used greatest stack depth: 12520 bytes left

[    7.082382] Adding 8388604k swap on /dev/sda5.  Priority:1 extents:1 across:8388604k 

[    7.482720] EXT3-fs (sda9): using internal journal

[    8.077416] rc (1140) used greatest stack depth: 12384 bytes left

[    8.686857] iwlwifi 0000:0d:00.0: L1 Enabled; Disabling L0S

[    8.693700] iwlwifi 0000:0d:00.0: Radio type=0x2-0x2-0x1

[    8.758331] iwlwifi 0000:0d:00.0: L1 Enabled; Disabling L0S

[    8.765182] iwlwifi 0000:0d:00.0: Radio type=0x2-0x2-0x1

[    8.820514] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready

[    9.471696] wlan0: authenticate with 0c:71:5d:94:74:eb

[    9.476263] wlan0: send auth to 0c:71:5d:94:74:eb (try 1/3)

[    9.479342] wlan0: authenticated

[    9.479429] iwlwifi 0000:0d:00.0 wlan0: disabling HT as WMM/QoS is not supported by the AP

[    9.479432] iwlwifi 0000:0d:00.0 wlan0: disabling VHT as WMM/QoS is not supported by the AP

[    9.480215] wlan0: associate with 0c:71:5d:94:74:eb (try 1/3)

[    9.482714] wlan0: RX AssocResp from 0c:71:5d:94:74:eb (capab=0x411 status=0 aid=2)

[    9.491299] wlan0: associated
```

[    9.491324] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

No se por que no aparece el dispositivo en dmesg (log del kernel)

Pero el verlo ahi me dio a entender que estaba disponible y listo para configurarlo!!

GRACIAS!

----------

