12.4. Arranque y configuración inicial del dispositivo

Todos los eventos del dispositivo que se produzcan durante el proceso de arranque antes de que se ejecute el daemon udev se perderán debido a que la infraestructura para gestionar estos eventos se encuentra en el sistema de archivos raíz y no está disponible en ese momento. Para cubrir esta pérdida, el núcleo ofrece un archivo uevent para cada dispositivo en el sistema de archivos sysfs. Al escribir add en ese archivo, el núcleo volverá a enviar el mismo evento que el que se perdió durante el arranque. Un simple bucle sobre todos los archivos uevent en /sys activará de nuevo todos los eventos para crear los nodos del dispositivo y realizar la configuración del dispositivo.

Por ejemplo, es posible que la lógica de arranque temprana no inicialice un ratón USB presente durante el arranque debido a que el controlador no estaba disponible en ese momento. Se ha perdido el evento encargado del descubrimiento del dispositivo y se ha producido un error al encontrar un módulo del núcleo para el dispositivo. En lugar de buscar manualmente dispositivos conectados, udev sólo solicitará todos los eventos del dispositivo desde el núcleo después de que esté disponible el sistema de archivos raíz, de manera que el evento para el ratón USB se ejecutará de nuevo. Ahora encontrará el módulo del núcleo en el sistema de archivos raíz montado, por lo que el ratón USB podrá inicializarse.

Desde el espacio de usuario, no hay una diferencia visible entre la secuencia de coldplug de dispositivo y el descubrimiento de dispositivos durante el tiempo de ejecución. En ambos casos, se usarán las mismas reglas para que coincidan y se ejecutan los mismos programas configurados.