Odpowiedzi:
Uwaga: czarna lista nie będzie działać dla modułów wbudowanych w obraz jądra (tzn. Nie załadowanych przez osobny
.ko
plik. Jedynym sposobem na wyłączenie takich modułów jest parametr jądra (jeśli jest dostępny) lub rekompilacja jądra.
Wystarczy otworzyć /etc/modprobe.d/blacklist
plik i dodać nazwę sterownika, używając następującej składni:
blacklist driver-name
EDYCJA: W późniejszych wersjach od 12.10 (12.04?) Plik jest /etc/modprobe.d/blacklist.conf
Uruchom ponownie urządzenie i użyj polecenia lsmod, aby wyświetlić status modułów w jądrze Linux
Uwaga : oto driver-name
nazwa żądanego sterownika czarnej listy. Na przykład, jeśli chcesz wyłączyć sterownik karty NIC, możesz znaleźć nazwę sterownika jądra dla swojej karty LAN za pomocą polecenia lspci -v
command w terminalu.
Na przykład mój wynik to:
........ ........ 6: 00.0 Kontroler Ethernet: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02) Podsystem: urządzenie Lenovo 3861 Flagi: magistrala, szybki devsel, opóźnienie 0, IRQ 46 Pamięć na b8000000 (64-bit, bez możliwości pobrania) [size = 64K] Rozszerzenie ROM w [wyłączone] Możliwości: Używany sterownik jądra: tg3 Moduły jądra: tg3 ........ ........
Widzę, że kierowca jest tg3
. więc musisz napisać tg3
(lub sterownik) zamiast driver-name
.
Wiele informacji można znaleźć tutaj .
Lubuntu 12.10
) nie ma /etc/modprobe.d/blacklist
pliku. Jest to /etc/modprobe.d/blacklist.conf
plik
blacklist.conf
Plik nie musi istnieć. Możesz umieścić tam plik my-mom-is-awesome
i zadziała. Wymyśl dowolną nazwę, jeśli chcesz utworzyć konkretny plik, aby po prostu umieścić na czarnej liście określoną rzecz, na przykład blacklist-nouveau
dowolną.
Możesz także tymczasowo umieścić je na czarnej liście w linii poleceń grub (linia linux) podczas uruchamiania ze składnią
module_to_blacklist.blacklist=yes
i915: unknown parameter 'blacklist' ignored
.
modprobe.blacklist=module_to_blacklist
?
modprobe.blacklist=module_to_blacklist
(zobacz man modprobe
szczegóły)
Innym sposobem na czarną listę modułów w przynajmniej Ubuntu 16.04 LTS jest dodanie następującego wiersza do wiersza poleceń jądra:
modprobe.blacklist=MODULE_NAME
Najlepszym sposobem jest użycie systemu / etc / modprobe, ale jest to alternatywa, której można użyć w mgnieniu oka, edytując wiersz poleceń GRUB podczas rozruchu.
Można to również zrobić na stałe, edytując / etc / default / grub i dodając do GRUB_CMDLINE_LINUX_DEFAULT
zmiennej. Na przykład w moim / etc / default / grub mam:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"
Potem biegnę update-grub2
, a następnie update-initramfs -u
. Po ponownym uruchomieniu będziesz wolny od modułu, o ile nic nie załaduje go po uruchomieniu.
Ta metoda działa również w wariantach EL (RHEL, CentOS, SciLinux), ale będziesz musiał użyć metod tej dystrybucji do aktualizacji gruba i initrd.
(Uwaga dla tych, którzy próbują umieścić na czarnej liście nouveau: Upewnij się, że nie ładujesz X, uruchamiając systemctl set-default multi-user.target
, w przeciwnym razie, gdy X się uruchomi , załaduje nouveau ponownie!)
W nowszych wersjach należy użyć dyrektywy instalacyjnej w pliku czarnej listy
install modulename /bin/false
Zamień „modulename” powyżej na nazwę modułu. Zapobiegnie to ładowaniu.
Więcej informacji na temat dyrektywy instalacyjnej można znaleźć w instrukcji do pliku modprobe.conf
man modprobe.conf
/etc/modprobe/blacklist.conf
, moduł można nadal załadować ręcznie modprobe <module_name>
. Zastosowanie tej install <module_name> /bin/false
metody powoduje, że nie powiedzie się to zgodnie z oczekiwaniami.
Żadne z tych rozwiązań nie działało na 16.04 LTS dla i915.ko.
(Brudnym) rozwiązaniem, które znalazłem, była zmiana nazwy
/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
Niestety zewnętrzny ekran VGA nie jest już rozpoznawany: {
sudo update-initramfs -u
zmodyfikować pliki /etc/modeprobe.d/