Eudev
eudev es una bifurcación del proyecto udev de Gentoo, el gestor de ficheros de dispositivo para el núcleo Linux.[1] Gestiona los nodos de dispositivo en /dev y maneja todas las acciones en espacio de usuario cuando se añaden o eliminan dispositivos.
eudev is a fork of udev, systemd's device file manager for the Linux kernel.[2] It manages device nodes in /dev and handles all user space actions when adding or removing devices.
La meta de eudev es conseguir una mejor compatibilidad con el software ya instalado como los sistemas de inicio OpenRC, Upstart, antiguos núcleos Linux, algunas cadenas de herramientas y cualquier otra cosa que se necesite [3] por (todavía no está bien soportado) udev.
Al igual que los términos ebuild, eclass, emerge, etc. El nombre asignado al proyecto eudev conserva la convención de utilizar el prefijo 'E' que inició el fundador de Gentoo Daniel Robbins.
Las configuraciones de sistema que corren systemd no tienen sentido para eudev.
El directorio /dev
La mayoría de los usuarios de Linux comprenden que /dev/sda1 es una forma rápida de referirse a la primera partición del primer disco que ha detectado el núcleo. Esto es muy fácil ¿no?
Pero tenga en cuenta los dispositivos que se enchufan en caliente como los USB, IEEE 1394, tarjetas PCI que se conectan en caliente, etc. ¿Cuál es el primer dispositivo de cada uno de estos tipo? ¿Y por cuánto tiempo? ¿Cómo se llamarán los demás dispositivos cuando el primero desaparezca? ¿Cómo afectará ésto a las transacciones en curso? ¿No sería divertido si un trabajo de impresión se cambiase de repente desde una impresora láser de última generación a una moribunda impresora de matriz solo porque alguien decidió desenchufar la impresora láser (que casualmente era la primera impresora)?
- Corre en espacio de usuario.
- Crea y borra archivos de dispositivo dinámicamente,
- Ofrece un nombrado de dispositivos consistente.
- Ofrece una interfaz de aplicación (API) en el espacio de usuario.
Cada vez que se produce un cambio en la estructura de los dispositivos, el núcleo emite un uevent el cual es recogido por el gestor de dispositivos. Este gestor de dispositivos sigue las reglas declaradas en los directorios /etc/udev/rules.d, /run/udev/rules.d y /lib/udev/rules.d. Basándose en la información contenida en el evento, busca la regla o reglas que necesita ejecutar y realiza las acciones requeridas. Estas acciones pueden involucrar la creación o eliminación de ficheros de dispositivo y pueden también disparar la carga de ficheros de firmware particulares en la memoria del núcleo.
Instalación
Ajustes USE
Algunos paquetes soportan el ajuste USE udev
para habilitar la integración de virtual/udev.
Emerge
Para evitar el registro en el conjunto world, se debe utilizar la opción oneshot.
root #
emerge --ask --oneshot sys-fs/eudev
Configuración
Servicio RC
El nombre RC es udev no eudev. Se necesita registrar en el nivel de ejecución sysinit.
root #
rc-update add udev sysinit
* rc-update: udev already installed in runlevel `sysinit'; skipping
A partir de la versión 29 del paquete sys-fs/udev-init-scripts se debe añadir udev-trigger
al nivel de ejecución sysinit.
Mantener el nombrado clásico 'eth0'
This section is obsolete. See Udev#Optional: Disable_or_override_predictable_network_interface_naming for updated instructions.
Los nombres de dispositivos de red eth0
, eth1
, etc. tal y como los suministra el núcleo podrían cambiar en el arranque (ver dmesg) por la regla udev /lib/udev/rules.d/80-net-name-slot.rules.
Para mantener el nombrado clásico, se puede sobrescribir esta regla con un fichero vacío con el mismo nombre en el directorio /etc/udev/rules.d:
root #
touch /etc/udev/rules.d/80-net-name-slot.rules
De forma alternativa, añadir net.ifnames=0
a la línea de órdenes cambia la directriz por defecto o crea una personalizada.
Un recurso interesante ligado al nombrado de la red es No me gusta esto, cómo lo deshabilito en el wiki de Freedesktop.
Resolución de problemas
Usar udevadm
Lanzar udevadm monitor y comprobar que sucede:
user $
udevadm monitor
Obtener información del dispositivo medianteudevadm info seguido de la ruta al dispositivo:
user $
udevadm info -p /devices/pci0000:00/0000:00:1d.7
Obtener la ruta al dispositivo utilizando su nombre:
user $
udevadm info -q path -n input/mouse1
/devices/pci0000:00/0000:00:1d.7/usb1/1-3/1-3.4/1-3.4:1.0/0003:046D:C404.0006/input/input24/mouse1
Comprobar que un evento se ejecuta utilizando udevadm test seguido de la ruta al dispositivo del que se quiere probar el evento:
user $
udevadm test /devices/pci0000:00/0000:00:1d.7
Para obtener una lista de todas las órdenes udevadm:
user $
udevadm -h
Migrar desde versiones anteriores
Desde udev 171-r10 hasta eudev 1.2-r1
Leer este hilo en los foros de Gentoo.
Sistema roto cuando se cambia de udev a eudev
Leer este hilo en los foros de Gentoo.
Véase también
- udev — el gestor de dispositivos para el núcleo Linux
- Proyecto eudev de Gentoo - El proyecto oficial de Gentoo bifurcación de udev.
- Permitir únicamente dispositivos USB conocidos
- Google Summer of Code/2016/Ideas/Eudev
Recursos externos
- Moving from udev (171-r10) to eudev (1.2-r1) en los foros de Gentoo
Referencias
- ↑ Bug 575718 - Request for council decision RE virtual/udev default provider, Gentoo's Bugzilla Main Page, (Última modificación) 27 de febrero de 2016. Recuperado el 1 de marzo de 2016.
- ↑ Bug 575718 - Request for council decision RE virtual/udev default provider, Gentoo's Bugzilla Main Page, (Last modified) February 27th, 2016. Retrieved on March 1st, 2016.
- ↑ Project:Eudev, Gentoo Wiki, (Última modificación) 12 de noviembre de 2015. Recuperado el 11 de marzo de 2016.