¿Cómo puedo averiguar por qué falla el servicio systemctl "systemd-modules-load"?

27

Durante algún tiempo he visto un texto rojo parpadeando durante el arranque. Hoy decidí investigarlo. El servicio systemctl systemd-modules-load.servicefalla con este texto:

tomas @ bonus-debian: ~ $ sudo systemctl status systemd-modules-load
● systemd-modules-load.service - Cargar módulos de kernel
   Cargado: cargado (/lib/systemd/system/systemd-modules-load.service; static; proveedor preestablecido: habilitado)
   Activo: fallido (Resultado: código de salida) desde ma. 2015-11-09 02:58:48 CET; Hace 5min
     Documentos: man: systemd-modules-load.service (8)
           man: modules-load.d (5)
  Proceso: 644 ExecStart = / lib / systemd / systemd-modules-load (código = salido, estado = 1 / FALLA)
 PID principal: 644 (código = salido, estado = 1 / FALLA)

nov. 09 02:58:48 bonus-debian systemd [1]: Inicio de carga de módulos de kernel ...
nov. 09 02:58:48 bonus-debian systemd-modules-load [644]: Error al encontrar el módulo '-r usbhid'
nov. 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: proceso principal salido, código = salido, estado = 1 / FALLO
nov. 09 02:58:48 bonus-debian systemd [1]: no se pudo iniciar la carga de los módulos del kernel.
nov. 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: la unidad entró en estado fallido.
nov. 09 02:58:48 bonus-debian systemd [1]: systemd-modules-load.service: Error con el resultado 'código de salida'.

Pensé que comenzaría buscando en Google el problema:

Captura de pantalla

Ay.

A mi sistema no parece importarle que el controlador no se haya cargado, ya que no he notado una experiencia degradada, pero todavía me gustaría solucionarlo.

Como Google no me llevó a ninguna parte, ya estoy atascado. No tengo idea por dónde empezar a buscar.

¿Cómo puedo averiguar por qué falla el servicio systemctl "systemd-modules-load"?

Hubro
fuente
¿Cambiaste una udevregla, por casualidad?
MariusMatutiae
¿Puedes consultar en journalctl los registros? ¿Intenta cargar un módulo llamado "-r usbhid"?
cristi

Respuestas:

40

Yo también tuve este problema. Pude resolverlo siguiendo las instrucciones en la página wiki de Arch Linux systemd . Aquí hay un resumen de lo que hice:

  1. Vamos a encontrar los servicios systemd que no se inician

    $ systemctl --failed  
    ------------------------------------------------------------------------
    systemd-modules-load.service   loaded failed failed  Load Kernel Modules
    
  2. Ok, encontramos un problema con el servicio systemd-modules-load. Queremos saber más.

    $ systemctl status systemd-modules-load  
    ------------------------------------------------------------------------
    systemd-modules-load.service - Load Kernel Modules      
       Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)     
       Active: failed (Result: exit-code) since So 2013-08-25 11:48:13 CEST; 32s ago  
         Docs: man:systemd-modules-load.service(8).  
               man:modules-load.d(5)
      Process: 15630 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)
    

    Si la ID del proceso no aparece en la lista, simplemente reinicie el servicio fallido con

    $ systemctl restart systemd-modules-load
    
  3. Ahora tenemos la identificación del proceso (PID) para investigar este error en profundidad. Ingrese el siguiente comando con la ID de proceso actual (aquí: 15630):

    $ journalctl _PID=15630
    ----------------------------------------------------------------------
    -- Logs begin at Sa 2013-05-25 10:31:12 CEST, end at So 2013-08-25 11:51:17 CEST. --
    Aug 25 11:48:13 mypc systemd-modules-load[15630]: Failed to find module 'blacklist usblp'
    Aug 25 11:48:13 mypc systemd-modules-load[15630]: Failed to find module 'install usblp /bin/false'
    
  4. Vemos que algunas de las configuraciones del módulo del kernel tienen configuraciones incorrectas. Por lo tanto, echamos un vistazo a estas configuraciones en /etc/modules-load.d/

    $ ls -Al /etc/modules-load.d/
    ----------------------------------------------------------------------
    ...  
    -rw-r--r--   1 root root    79  1. Dez 2012  blacklist.conf  
    -rw-r--r--   1 root root     1  2. Mär 14:30 encrypt.conf  
    -rw-r--r--   1 root root     3  5. Dez 2012  printing.conf  
    -rw-r--r--   1 root root     6 14. Jul 11:01 realtek.conf  
    -rw-r--r--   1 root root    65  2. Jun 23:01 virtualbox.conf  
    ...  
    
  5. El mensaje de error Error al encontrar el módulo 'blacklist usblp' puede estar relacionado con una configuración incorrecta dentro de blacklist.conf. Vamos a desactivarlo insertando un # final antes de cada opción que encontramos a través del paso 3:

    /etc/modules-load.d/blacklist.conf  
    ----------------------------------------------------------------------
    # blacklist usblp  
    # install usblp /bin/false  
    
  6. Ahora, intente iniciar systemd-modules-load:

    $ systemctl restart systemd-modules-load  
    

    Si tuvo éxito, esto no debería provocar nada. Si ve algún error, regrese al paso 3 y use el nuevo PID para resolver los errores restantes.

    Si todo está bien, puede verificar que el servicio se inició correctamente con:

    $ systemctl status systemd-modules-load
    ----------------------------------------------------------------------
    systemd-modules-load.service - Load Kernel Modules
       Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
       Active: active (exited) since So 2013-08-25 12:22:31 CEST; 34s ago
         Docs: man:systemd-modules-load.service(8)
               man:modules-load.d(5)
     Process: 19005 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)
    Aug 25 12:22:31 mypc systemd[1]: Started Load Kernel Modules.
    
Rahul Khimasia
fuente
55
Gran respuesta: _PID=ahora estará siempre en mi caja de herramientas. ¡Gracias!
Adrian Günter
1
Desafortunadamente, mi /etc/modules-load.d/está vacío, y aún dice No se pudo encontrar el módulo bla . ¿Ahora que?
Adrian
2
Es posible que también desee verificar journalctl _SYSTEMD_UNIT=systemd-modules-load.service. Guarda buscando el PID.
TwoD
2
Desde bobafetthotmail del usuario : busque también los /usr/lib/modules-load.d/módulos de carga de archivos, ya que allí es donde las aplicaciones colocan los módulos que necesitan. Se /etc/modules-load.d/supone que es para los archivos de configuración del usuario.
Fixer1234