Guía udev en Gentoo
1.
¿Qué es udev?
El directorio /dev
Cuando los usuarios de Linux hablan acerca del hardware de sus
sistemas a gente que puede llegar a pensar que Linux es algún tipo de
virus o marca de café, el uso de términos como "barra dev barra algo"
provocará, sin dudas, miradas raras. Pero para el usuario afortunado
(incluyendo al lector) el usar /dev/sda1 es solo una
forma rápida de explicar que nos referimos a la primera partición del
disco primer disco SATA. ¿O no?
Todos sabemos lo que es un archivo de dispositivo. Algunos incluso
saben por qué cuando miramos un poco más de cerca la salida de ls
-l en /dev los archivos de dispositivo muestran unos
números especiales. Pero lo que siempre damos por sentado es que el
primer disco SATA se llama /dev/sda. Tal vez no lo vea
así, pero ésta es un fallo de diseño.
Piense en los dispositivos que se enchufan en caliente como los USB,
IEEE 1394, tarjetas PCI que se cambian en caliente ... ¿Cuál es el
primer dispositivo? ¿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 gracioso que un trabajo de impresión
se cambiase de repente desde su flamante impresora láser nueva a la
moribunda impresora de matriz solo porque alguien decidió desenchufar
la impresora láser que era la primera impresora?
Entra en escena udev. Los objetivos del proyecto udev son a la
vez interesantes y necesarios:
- Funciona en espacio de usuario
- Crea/borra archivos de dispositivo dinámicamente
- Proporciona nombres consistentes
- Proporciona una API en espacio de usuario
Cada vez que se produce un cambio en la estructura de dispositivos, el
núcleo emite un uevent el cual es recogido por udev. Entonces,
udev 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 consistir en la creación
o eliminación de ficheros de dispositivo, pero pueden suponer también
la carga de ficheros de firmware particulares en la memoria del núcleo.
2.
Utilizar udev en Gentoo
Requisitos
Udev está pensado para ser utilizado en combinación con núcleos 3.X
(como gentoo-sources con el perfil por defecto 13.0).
Si está usando alguno de estos núcleos, no debería tener problemas,
ya que el soporte necesario está incluido en todas las versiones
estables de sys-apps/baselayout. Normalmente, udev debería
estar instalado en su sistema, pero si éste no es el caso, es fácil
de instalar:
Listado de Código 2.1: Instalar udev |
# emerge udev
|
Al construir un núcleo, asegúrese de activar las siguientes opciones:
Listado de Código 2.2: Opciones requeridas en el núcleo |
General Setup --->
[ ] Enable deprecated sysfs features to support old userspace tools
File Systems --->
[*] Inotify support for userspace
Pseudo filesystems --->
[*] Virtual memory file system support (former shm fs)
Device Drivers --->
< > ATA/ATAPI/MFM/RLL support (DEPRECATED)
Generic Driver Options --->
[*] Maintain a devtmpfs filesystem to mount at /dev (NEW)
|
Si usa sys-kernel/genkernel, no necesita hacer nada especial.
Genkernel activa udev por defecto. Puede probar también con
sys-kernel/dracut, el cual está bastante bien integrado en
Gentoo.
3.
Recursos y reconocimientos
Documentación para utilizar
los nuevos nombres de interfaces de red predecibles (en inglés),
se pusieron en marcha en la versión 197 reemplazando al fichero
generador de reglas /etc/udev/rules.d/70-persistent-net.rules
(ahora eliminado).
Variación del árbol git
in el propio systemd en github, que pretende ser una API
estable a largo plazo, más POSIX que GNU. Indicado principalmente
para dispositivos empotrados minimalistas pero que funciona en
otras plataformas. Puede comprobar si está al día echando un
vistazo al histórico del repositorio, ya que esta documentación
puede que no lo esté.
4.
Problemas conocidos
Los ficheros sueltos 70-persistent-net.rules (u otras
reglas para configurar la red) en /etc/udev/rules.d
pueden evitar que el nombrado predecible de los dispositivos
de red se active correctamente. Tanto
70-persistent-net.rules como 70-persistent-cd.rules
pertenecen al ahora eliminado generador de reglas (rule_generator).
El guión de inicio 'udev-postmount' se debe eliminar de los
niveles de ejecución si todavía está definido en ellos.
El contenido de este documento, a no ser que se especifique
expresamente, está registrado bajo los términos de la licencia
CC-BY-SA-2.5. Se aplican las
Pautas de
Utilización del logotipo y nombre de Gentoo.
|