Как отключить загрузку ненужных модулей ядра. Ядро 3.2.4
Как отключить загрузку ненужных модулей ядра. Ядро 3.2.4
Ответы:
Примечание: занесение в черный список не будет работать для модулей, которые встроены в образ ядра (то есть не загружаются через отдельный
.ko
файл. Единственный способ отключить такие модули - через параметр ядра (если имеется) или перекомпиляцию ядра.
Просто откройте ваш /etc/modprobe.d/blacklist
файл и добавьте drivername, используя следующий синтаксис:
blacklist driver-name
РЕДАКТИРОВАТЬ: В более поздних версиях с 12.10 (12.04?) Файл /etc/modprobe.d/blacklist.conf
Перезагрузите ваш компьютер и используйте команду lsmod, чтобы показать состояние модулей в ядре Linux.
Примечание : здесь driver-name
указано название желаемого драйвера черного списка. Например, если вы хотите отключить драйвер платы NIC, вы можете найти имя драйвера ядра для вашей платы LAN, используя команду lspci -v
command в терминале.
Например, мой вывод был:
........ ........ 6: 00.0 Контроллер Ethernet: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (версия 02) Подсистема: Lenovo Device 3861 Флаги: мастер шины, быстрая девсель, латентность 0, IRQ 46 Память на b8000000 (64-битная, без предварительной выборки) [размер = 64 КБ] ПЗУ расширения в [отключено] Возможности: Используемый драйвер ядра: tg3 Модули ядра: tg3 ........ ........
Здесь я вижу, что водитель tg3
. так что вам нужно написать tg3
(или ваш драйвер) вместо driver-name
.
Много информации можно найти здесь .
Lubuntu 12.10
) нет /etc/modprobe.d/blacklist
файла. Есть /etc/modprobe.d/blacklist.conf
файл
blacklist.conf
Файл не должен существовать. Вы можете поместить туда файл, my-mom-is-awesome
и он будет работать. Создайте любое имя, которое вам нравится, если вы хотите создать определенный файл, просто чтобы занести в черный список конкретную вещь, например, blacklist-nouveau
или что-то еще.
Вы также можете временно поместить их в черный список в командной строке grub (linux line) при загрузке с синтаксисом
module_to_blacklist.blacklist=yes
i915: unknown parameter 'blacklist' ignored
.
modprobe.blacklist=module_to_blacklist
?
modprobe.blacklist=module_to_blacklist
(см. man modprobe
подробности)
Другой способ занести в черный список модули как минимум в 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" выше на имя модуля. Это принудительно предотвратит его загрузку.
Вы можете найти больше информации о директиве install в руководстве для modprobe.conf
man modprobe.conf
/etc/modprobe/blacklist.conf
модуль все еще можно загрузить вручную modprobe <module_name>
. Использование install <module_name> /bin/false
метода делает этот сбой по желанию.
Ни одно из этих решений не работало на 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 экран больше не распознается: {
sudo update-initramfs -u
после изменения файлов /etc/modeprobe.d/