Hay varias alternativas a udevpor ahí. Aparentemente, Gentoo puede usar algo llamado mdev. Otra opción sería intentar usar udevel predecesor devfsd. Finalmente, siempre puede crear todos los archivos de dispositivo que necesita mknod.
Tenga en cuenta que con este último no hay necesidad de crear todo en el momento del arranque ya que los nodos se pueden crear en el disco y no en un sistema de archivos temporal como con las otras opciones. Por supuesto, pierde la flexibilidad de haber creado dinámicamente archivos de dispositivo cuando se conecta un nuevo hardware (por ejemplo, una memoria USB). Creo que el enfoque estándar en esta era era tener todos los archivos de dispositivos que podría necesitar razonablemente creados /dev(es decir, muchos archivos de dispositivos).
Por supuesto, la dificultad de lograr que cualquiera de estos enfoques funcione en una distribución moderna es probablemente bastante alta. La wiki de Gentoo menciona dificultades mdevpara trabajar con un entorno de escritorio (y mucho menos fuera de Gentoo). La última devfsdversión fue 2002, no tengo idea si funcionará con los núcleos modernos. La creación de los nodos manualmente es probablemente el enfoque más viable, pero incluso la desactivación udevpodría ser un desafío, particularmente en el uso de distos systemd( udevahora es parte de systemd, lo que sugiere una fuerte dependencia).
Mi consejo es seguir udev;)
udevdebería funcionar perfectamente bien sinsystemdque ambos se desarrollen dentro de la misma base de código, peroudevse pueden construir + ejecutar independientemente de él.udevha existido por mucho más tiempo que desystemdtodos modos. La pregunta es, ¿puedesystemdtrabajar sin éludev? Supongo que al menos tendría que volver a compilar con algún tipo de--without-udevopción.Los núcleos modernos de Linux son compatibles con el
devtmpfssistema de archivos (no confunda con los antiguosdevfs) , que crea todos los nodos de dispositivos dinámicamente tan pronto como el núcleo los descubre. (De hecho, las últimasudevversiones requieren esto; encontrará que udev ya no crea ningún nodo de dispositivo, solo enlaces simbólicos).Del mismo modo, la carga de firmware también se ha trasladado al kernel, por lo que las únicas tareas restantes
udevson la carga de módulos (según las modalidades) y la aplicación de permisos de dispositivos y otras reglas de udev.Entonces, en teoría, un núcleo completamente monolítico debería arrancar bien sin udev.
Sin embargo, el verdadero problema aquí es lo que sucede más tarde.
Muchos programas de espacio de usuario confían en que udev mantenga su base de datos de dispositivos, accesible a través de
libudev. Si bien la enumeración de dispositivos y la escucha de eventos agregados / eliminados se pueden hacer directamente utilizando las interfaces del kernel (sysfs y netlink), aún se quedará sin todos los metadatos que varias reglas de udev han adjuntado.udev reglas también mantienen varios enlaces simbólicos "persistentes" en
/dev/disk/by-*,/dev/mapper,/dev/input/by-path,/dev/snd/by-path, y así sucesivamente. Por ejemplo, si tiene dos discos conectados, no hay garantía de que el primero siempre seasdaosdb, pero udev asegura que los enlaces simbólicos/dev/disk/by-uuidcontinuarán apuntando al correcto.Si bien los núcleos de dispositivos ahora son creados por el kernel y, por lo tanto, ya no son de su incumbencia, es importante tener en cuenta que algunos tipos de dispositivos han comenzado a usar números mayores / menores asignados dinámicamente, por lo que aunque tenga 10,228
/dev/fusey/dev/hpet10,229 hoy, lo harán tener números diferentes después de cada reinicio, por lo quedevtmpfso bien (en sistemas más antiguos) se requiere un programa que escuche eventos .Muchas de estas cosas podrían ser fácilmente realizadas por otros programas como
mdev, por supuesto. Mi punto es que un/etc/MAKEDEVscript estático ya no funcionará ...Entonces, básicamente, cuando se trata de la complejidad del arranque, udev es probablemente la menor de sus preocupaciones.
fuente
Hay varias alternativas:
chmod,chown,ln, y cosas por el estilo comandos en un script que se ejecuta como parte de la rutina de carga.systemd-udev, el administrador plug-and-play que forma parte del proyecto systemd.eudev, que es una bifurcación de lasystemd-udevque systemd ahora se ha desviado significativamente.vdev, que es un administrador plug-and-play desarrollado por Jude Nelson, que es parte de Devuan.mdev, que contrario a otra respuesta no es una cosa de Gentoo. Es el administrador plug-and-play integrado en BusyBox .mdevque es un administrador plug-and-play desarrollado por Dimitris Papastamos.mdevd, que es una configuración compatible con BusyBoxmdevpero que maneja su propio socket y no comprende el protocolo LISTEN.Todos estos, aparte del primero, requieren conjuntos de reglas que describen cómo reaccionar ante los eventos de notificación del núcleo sobre los dispositivos. Obviamente.
También hay herramientas que tomarán programas diseñados para
/proc/sys/kernel/hotplug, como los dosmdevs, y que los adaptarán y serializarán al escuchar un socket de enlace de red y luego generar esos programas:s6-netlink-listenerys6-uevent-spawnernetlink-datagram-socket-listenyplug-and-play-event-handlerdel conjunto de herramientas noshfuente
udev? La mejor alternativa es no usarlo. Y al aprender a no usarlo, Linux y el mundo * NIX comenzarán a tener un sentido más lógico.
La mejor alternativa a largo plazo es usar dispositivos estáticos (ver nota). Si tiene el controlador, el kernel de Linux gestiona la conexión en caliente. Prefiero no tener udevd funcionando, nunca.
dbus es otro asunto. Sí ralentiza su sistema, pero al mundo en constante cambio de los guionistas les encanta. Por lo tanto, muchas cosas a las que está acostumbrado, como los navegadores web o las aplicaciones con backends de script, deben repararse (iniciarse o reconstruirse sin esas cosas o volcarse para otra aplicación).
Nota: Si solo está conectando una unidad flash o un dispositivo de DVD, use
dmesg|tailpara ver el nombre del dispositivo a montar. Aprender cuando un dispositivo es un personaje o un dispositivo de bloque es un conocimiento fundamental del sistema en el mundo del hardware informático. En Linux es de código abierto, mira esto mucho sobre Linux, no solo incrustado . Es lo mejor para una comprensión más amplia de la lógica directa (no filosofía) de todos los * NIX, como Linux (Solaris, HPUX, AIX, etc.).Udev, dbus, gconf / dconf, systemd, gnome-shell, Gnome, Glib, mono y Fedora son para personas con mucho tiempo en sus manos que no pueden RTFM, o que desean una actualización automática realmente ingeniosa pero más lenta que melaza, buggy, a mitad de camino Linux. (Un lugar realmente horrible, busca toneladas de experiencias similares en la web).
El sistema arranca y luego ejecuta udevd. Pero, se afirma que udev es necesario porque, los números menores del dispositivo
will changeal reiniciar. La razón de ser de Udev parece contradecirse a cada paso. Y dónde están los archivos parece estar siempre mal, sin importar a quién consultes. No confíes en freedesktop.org.Además de que udev está siendo absorbido por ese horror conocido como systemd, no sé qué se hace con los / etc / udev junk entonces. Y, es fatuo decir que escribir reglas udev es de alguna manera mejor que nada. La gente de gentoo parece querer aferrarse a él y no tener que tener systemd, por lo que se lo han bifurcado a eudev.
Si desea un sistema ridículamente rápido y sin sorpresas desagradables, use los conceptos básicos de Linux.
fuente
udevfuncionalidad. También está bien señalar las fortalezas de este enfoque alternativo .