12.4. Avvio e configurazione iniziale di un dispositivo

Tutti gli eventi di dispositivi avvenuti durante il processo di avvio e prima dell'esecuzione del daemon udev vanno perduti perché l'infrastruttura che gestisce questi eventi risiede nel file system root e non è disponibile in questa fase. Per risolvere queste perdite, il kernel fornisce un file uevent per ogni dispositivo incluso nel file system sysfs. È sufficiente scrivere add in questo file per fare in modo che il kernel invii di nuovo lo stesso evento perduto durante l'avvio. È sufficiente un loop su tutti i file uevent inclusi in /sys per indurre di nuovo tutti gli eventi a creare i nodi dei dispositivi e configurare i dispositivi.

Ad esempio, è possibile che un mouse USB presente durante l'avvio non venga inizializzato dalla logica di avvio iniziale a causa della mancata disponibilità del driver in quel momento. L'evento per il rilevamento del dispositivo è andato perduto ed è impossibile individuare un modulo del kernel per il dispositivo. Anziché cercare manualmente i possibili dispositivi connessi, udev richiede tutti gli eventi dei dispositivi verificatisi nel kernel dal momento in cui il file system root è diventato disponibile. In questo modo l'evento per il dispositivo mouse USB viene eseguito di nuovo. Viene quindi individuato il modulo del kernel sul file system root montato ed è possibile inizializzare il mouse USB.

In userspace non ci sono differenze visibili tra una sequenza coldplug di un dispositivo e un rilevamento di un dispositivo durante il runtime. In entrambi i casi, vengono utilizzate le stesse regole per il confronto e vengono eseguiti gli stessi programmi configurati.