2012-01-02 8 views

Respuesta

15

depmod hace algo más que calcular dependencias directas, sino que también crea una asignación entre los identificadores de hardware y los módulos que los manejan. Esto se usa para encontrar el módulo correcto para cargar para una pieza de hardware detectada.

En cuanto a por qué no funciona la carga de la demanda como lo hace el espacio de usuario, parte de esto se debe a que el kernel linker no puede acceder al sistema de archivos, por diseño. La filosofía en el kernel es que el diseño del sistema de archivos depende completamente del espacio de usuario, por lo que no hay garantía de que foo.ko se encuentre en /lib/modules/3.0.1/drivers/somesubsys/foo.ko. Como tal, el kernel se basa en las utilidades del espacio de usuario (como depmod y modprobe) para pasarle los datos brutos para sus módulos, en el orden en que los necesita cargar; si el espacio de usuario falla en este trabajo, simplemente devuelve un error y deja que el espacio de usuario se ocupe del problema.

+1

pero luego, modprobe podría encargarse de resolver las dependencias de la información en el módulo y probar primero los módulos dependientes correspondientes, ¿no es así? – PypeBros

+3

depmod construye un caché de esta información de dependencia para el uso de modprobe. en realidad, escanear todos los módulos para obtener esta información puede llevar bastante tiempo, por lo que no querrás hacerlo cada vez que llames a modprobe – bdonlan

Cuestiones relacionadas