¿Cómo deshabilito la carga de módulos innecesarios del kernel? Kernel 3.2.4
¿Cómo deshabilito la carga de módulos innecesarios del kernel? Kernel 3.2.4
Respuestas:
Nota: las listas negras no funcionarán para los módulos que están integrados en la imagen del núcleo (es decir, no se cargan a través de un
.ko
archivo separado . La única forma de desactivar dichos módulos es a través de un parámetro del núcleo (si está disponible) o volviendo a compilar el núcleo.
Simplemente abra su /etc/modprobe.d/blacklist
archivo y agregue el nombre del controlador con la siguiente sintaxis:
blacklist driver-name
EDITAR: en versiones posteriores desde 12.10 (12.04?) El archivo es /etc/modprobe.d/blacklist.conf
Reinicie su caja y use el comando lsmod para mostrar el estado de los módulos en el kernel de Linux
Nota : aquí driver-name
está el nombre de su controlador de lista negra deseado. Por ejemplo, si desea deshabilitar el controlador de la tarjeta NIC, puede encontrar el nombre del controlador del kernel para su tarjeta LAN mediante el comando de lspci -v
comando en una terminal.
Por ejemplo, mi salida fue:
........ ........ 6: 00.0 Controlador Ethernet: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02) Subsistema: Dispositivo Lenovo 3861 Banderas: maestro de bus, desarrollo rápido, latencia 0, IRQ 46 Memoria en b8000000 (64 bits, no precargable) [tamaño = 64K] ROM de expansión en [deshabilitado] Capacidades: Controlador de kernel en uso: tg3 Módulos del kernel: tg3 ........ ........
Aquí, veo que el conductor está tg3
. por lo que debe escribir tg3
(o su controlador) en lugar de driver-name
.
Se puede encontrar mucha información aquí .
Lubuntu 12.10
), no hay un /etc/modprobe.d/blacklist
archivo. Hay un /etc/modprobe.d/blacklist.conf
archivo
blacklist.conf
archivo no necesita existir. Podría poner un archivo llamado my-mom-is-awesome
allí y funcionaría. Crea el nombre que quieras si quieres hacer un archivo específico solo para poner en una lista negra una cosa específica, como blacklist-nouveau
o lo que sea.
También puede incluirlos temporalmente en la lista negra en la línea de comandos de grub (línea de Linux) cuando inicia con la sintaxis
module_to_blacklist.blacklist=yes
i915: unknown parameter 'blacklist' ignored
.
modprobe.blacklist=module_to_blacklist
?
modprobe.blacklist=module_to_blacklist
(ver man modprobe
para más detalles)
Otra forma de incluir en la lista negra los módulos en al menos Ubuntu 16.04 LTS es agregar la siguiente línea a la línea de comando del kernel:
modprobe.blacklist=MODULE_NAME
Usar el sistema / etc / modprobe es la mejor manera, pero esta es una alternativa que se puede utilizar en caso de necesidad editando la línea de comandos de GRUB en el arranque.
Esto también puede hacerse permanente editando / etc / default / grub y agregando a la GRUB_CMDLINE_LINUX_DEFAULT
variable. Por ejemplo, en mi / etc / default / grub tengo:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"
Entonces corro update-grub2
, entonces update-initramfs -u
. Después de reiniciar, estará libre del módulo, siempre y cuando nada lo cargue después del inicio.
Este método también funciona en variantes EL (RHEL, CentOS, SciLinux), pero tendrá que usar los métodos de esa distribución para actualizar grub y el initrd.
(Nota para aquellos que intentan incluir en la lista negra a nouveau: asegúrese de no cargar X ejecutando systemctl set-default multi-user.target
, de lo contrario, cuando X comience, ¡cargará nouveau nuevamente!)
En versiones más recientes, debe usar la directiva de instalación en su archivo de lista negra
install modulename /bin/false
Reemplace "modulename" arriba con el nombre del módulo. Esto impedirá su carga por la fuerza.
Puede encontrar más información sobre la directiva de instalación en el manual de modprobe.conf
man modprobe.conf
/etc/modprobe/blacklist.conf
, el módulo aún se puede cargar manualmente modprobe <module_name>
. El uso del install <module_name> /bin/false
método hace que esto falle como se desea.
Ninguna de estas soluciones funcionó en 16.04 LTS para i915.ko.
La solución (sucia) que encontré fue cambiar el nombre
/lib/modules/4.4.0-22-generic/kernel/drivers/gpu/drm/i915/i915.ko
/usr/lib/xorg/modules/drivers/modesetting_drv.so
/usr/lib/xorg/modules/drivers/intel_drv.so
Desafortunadamente, la pantalla VGA externa ya no se reconoce: {
sudo update-initramfs -u
después de modificar los archivos /etc/modeprobe.d/