Gentoo Logo

Guía udev en Gentoo

Contenido:

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 --->
  (Asegúrese de que las siguientes opciones *no* están instaladas)
  [ ] 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 --->
  (Asegúrese de que las siguientes opciones *no* están habilitadas)
  < > ATA/ATAPI/MFM/RLL support (DEPRECATED)
  (Esto es *absolutamente* necesario para que /dev tenga entradas)
  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.



Imprimir

Página actualizada 6 de abril, 2013

Sumario: Este documento explica qué es udev y cómo puede usarlo de acuerdo a sus necesidades.

Sven Vermeulen
Autor

Gregorio Guidi
Colaborador

Joshua Saddler
Editor

José Alberto Suárez López
Traductor

John Christian Stoddart
Traductor

José Luis Rivero
Traductor

Alberto F. Capel
Traductor

Manuel Peral González
Traductor

José María Alonso
Traductor

Donate to support our development efforts.

Copyright 2001-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.