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

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

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

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

blacklist driver-name

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

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

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

................ 6:00.0 Контроллер Ethernet: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02) Подсистема: Lenovo Device 3861 Флаги: bus master, fast devsel, задержка 0, IRQ 46 Память на уровне b8000000 (64-разрядная, без предварительной выборки) [размер=64 Кб] ПЗУ расширения на [отключено] Возможности: Используемый драйвер ядра: tg3 Модули ядра: tg3................

Здесь, я вижу, водитель tg3. итак, вам нужно написать tg3(или ваш водитель) в месте driver-name.

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

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

module_to_blacklist.blacklist=yes

Другой способ внести модули в черный список, по крайней мере, в 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 запустится, он снова загрузит nouveau!)

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

install modulename /bin/false

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

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

man modprobe.conf

Ни одно из этих решений не работало на 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-экран больше не распознается:{

связанные: linux - Skip kernel module at boot - Super User | встроенное подмножество: How to block drivers built-into Kernel, i.e. drivers who are not a module - Unix & Linux Stack Exchange