Как занести в черный список модули ядра?

Как отключить загрузку ненужных модулей ядра. Ядро 3.2.4

50
задан 24 October 2013 в 01:50

5 ответов

Примечание: черный список не будет работать для модулей, которые встроены в образ ядра (то есть не загружаются через отдельный файл .ko . Единственный способ отключить такие модули - с помощью параметра ядра (если он доступен) или путем перекомпиляции ядра.

Просто откройте файл /etc/modprobe.d/blacklist и добавьте имя драйвера, используя следующий синтаксис:

blacklist driver-name

РЕДАКТИРОВАТЬ: В более поздних версиях, начиная с 12.10 (12.04?), Файл имеет вид / и т. Д. /modprobe.d/blacklist.conf

Перезагрузите компьютер и используйте команду lsmod, чтобы показать состояние модулей в ядре Linux

Примечание : здесь имя-драйвера имя желаемого драйвера из черного списка. Например, если вы хотите отключить драйвер сетевой карты, вы можете найти имя драйвера ядра для вашей сетевой карты с помощью команды lspci -v в терминале.
Например, мой вывод был:

........
........ 
6:00.0 Ethernet controller: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02)
    Subsystem: Lenovo Device 3861
    Flags: bus master, fast devsel, latency 0, IRQ 46
    Memory at b8000000 (64-bit, non-prefetchable) [size=64K]
    Expansion ROM at  [disabled]
    Capabilities: 
    Kernel driver in use: tg3
    Kernel modules: tg3
........
........

Здесь я вижу драйвер tg3 . поэтому вам нужно написать tg3 (или ваш драйвер) вместо имя-драйвера .

Здесь можно найти много информации .

48
ответ дан 24 October 2013 в 01:50

Вы также можете временно занести их в черный список в командной строке grub (строка Linux) при загрузке с синтаксисом

module_to_blacklist.blacklist=yes
29
ответ дан 24 October 2013 в 01:50

В более поздних выпусках вам необходимо использовать директиву установки в вашем файле черного списка

install modulename /bin/false

Замените "имя модуля" выше на имя модуля. Это принудительно предотвратит его загрузку.

Вы можете найти дополнительную информацию о директиве установки в руководстве для modprobe.conf

man modprobe.conf
4
ответ дан 24 October 2013 в 01:50

Другой способ занести модули в черный список как минимум в Ubuntu 16.04 LTS - это добавить следующую строку в командную строку ядра:

modprobe.blacklist=MODULE_NAME

Использование системы / etc / modprobe - лучший способ, но это - альтернатива, которую можно использовать в крайнем случае, отредактировав командную строку GRUB при загрузке.

Это также можно сделать постоянным, отредактировав / etc / default / grub и добавив в переменную GRUB_CMDLINE_LINUX_DEFAULT . Например, в моем / etc / default / grub у меня есть:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"

Затем я запускаю update-grub2 , затем update-initramfs -u . После перезагрузки вы будете свободны от модуля, если ничего не загрузит его после загрузки.

Этот метод также работает в вариантах EL (RHEL, CentOS, SciLinux), но вам придется использовать методы этого дистрибутива. для обновления grub и initrd.

(Примечание для тех, кто пытается занести в черный список nouveau: убедитесь, что X не загружен, запустив systemctl set-default multi-user.target , иначе при запуске X он будет загрузите нуво снова!)

14
ответ дан 24 October 2013 в 01:50

Ни одно из этих решений не работало на 16.04 LTS для i915.ko.

Я нашел (грязное) решение переименовать

/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

К сожалению, внешний экран VGA больше не распознается: {

3
ответ дан 24 October 2013 в 01:50

Другие вопросы по тегам:

Похожие вопросы: