systemd: automatizar el comando modprobe en el momento del arranque


20

Mi distribución es Fedora 17 Gnome. Cada vez que reinicio / reinicio mi computadora, necesito ejecutar este comando como root:

modprobe rt2800usb

¿Cómo puedo hacer que sea permanente?


1
Hola, gracias por tu primera pregunta. Sería bueno si pudieras mencionar a qué distribución de Linux te refieres :)
— Bonsi Scott

1
@BonsiScott La distribución probablemente también debería agregarse al texto de la pregunta, pero la etiqueta dice Fedora.
— depquid

(Además, eliminé mi propia respuesta porque no es específica de fedora)
— Bonsi Scott

@BonsiScott, su respuesta podría ser útil para otros ...
— vonbrand

Respuestas:


34

En cualquier distribución que use systemd, puede cargar automáticamente el módulo a través de modules-load.d:

  • crea el archivo de configuración:

    /etc/modules-load.d/rt2800usb.conf

  • ábralo y edítelo así (agregue el nombre del módulo):

    rt2800usb

  • la próxima vez que reinicie el módulo debería cargarse automáticamente


Solución de problemas:

Compruebe si el systemdservicio cargó el módulo:

systemctl status systemd-modules-load.service

La salida debería verse así:

systemd-modules-load.service - Load Kernel Modules
  Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
  Active: active (exited) since Wed, 03 Apr 2013 22:50:57 +0000; 46s ago
        Docs: man:systemd-modules-load.service(8)
              man:modules-load.d(5)
 Process: 260 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=0/SUCCESS)

La última línea contiene la PID(identificación del proceso) y el código de salida. status=0/SUCCESSsignifica que el módulo se insertó correctamente, confirmado por:

journalctl -b _PID=260

salida siendo:

Apr 03 22:50:57 mxhst systemd-modules-load[260]: Inserted module 'rt2800usb'

En caso de falla, la systemctlsalida se ve así:

systemd-modules-load.service - Load Kernel Modules
  Loaded: loaded (/usr/lib/systemd/system/systemd-modules-load.service; static)
  Active: failed (Result: exit-code) since Wed, 03 Apr 2013 22:50:59 +0000; 43s ago
        Docs: man:systemd-modules-load.service(8)
              man:modules-load.d(5)
 Process: 260 ExecStart=/usr/lib/systemd/systemd-modules-load (code=exited, status=1/FAILURE)

con journalctl -binformes:

Apr 03 22:50:59 mxhst systemd-modules-load[260]: Failed to find module 'fakert2800usb'

Cuando el código de salida es 0/SUCCESS, significa que su módulo se ha insertado con éxito; corriendo

lsmod | grep rt2800

debería confirmar que:

rt2800usb              26854  0 
rt2x00usb              19757  1 rt2800usb
rt2800lib              64762  1 rt2800usb
rt2x00lib              66520  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              578735  3 rt2x00lib,rt2x00usb,rt2800lib

Si la lsmodsalida no confirma (a pesar de que el código de salida del servicio sea 0/SUCCESS) significa que algo eliminó el módulo después de ser cargado por modules-load.service. Una posible causa es otro *.confarchivo que puso en la lista negra el módulo. Busque una línea como:

blacklist rt2800usb

en /etc/modprobe.d/*.conf, /usr/lib/modprobe.d/*.confo /run/modprobe.d/*.confy comentario fuera / eliminarlo.


He hecho esto, pero el módulo no se cargó al reiniciar.
— somethingSomething

¿Es porque root es el propietario del archivo?
— algo Algo

Cuando reinicio, todavía tengo que hacer el comando modprbe. ¿No aparece en la lista porque la lista es después de que ejecuté el comando modprobe?
— algo Algo

5

Para cargar un módulo en el arranque, crea un archivo en /etc/modules-load.d/; Este archivo puede tener cualquier nombre, pero debe terminar en .conf. En el caso de su controlador wifi, podría, por ejemplo, crear el archivo /etc/modules-load.d/rt2800.conf.

En el archivo, agregue una sola línea con el nombre del módulo que desea cargar de la siguiente manera:

rt2800usb

La página Arch Wiki en los módulos Kernel tiene más información.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.