Uwaga: czarna lista nie będzie działać dla modułów wbudowanych w obraz jądra (tzn. Nie załadowanych przez osobny .koplik. 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/blacklistplik 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-namenazwa żą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 -vcommand 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.
w moim przypadku ( Lubuntu 12.10) nie ma /etc/modprobe.d/blacklistpliku. Jest to /etc/modprobe.d/blacklist.confplik
Abdull
1
Lepiej jest trzymać moduły na czarnej liście przez użytkownika w osobnym pliku, aby uniknąć konfliktów podczas aktualizacji (patrz ten komentarz przy błędzie serwera ).
Alexander Pozdneev,
1
blacklist.confPlik nie musi istnieć. Możesz umieścić tam plik my-mom-is-awesomei 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-nouveaudowolną.
doug65536
@ doug65536 to pytanie zostało wysłane 7 lat temu, oczywiście wszystko się zmieni. Po prostu stwórz nowe pytanie z posiadaną wersją Ubuntu, aby ludzie mogli Ci pomóc
LnxSlck
@LnxSlck Odniosłem się do zamieszania wyrażonego w poprzednich komentarzach. Nie chciałem pomocy. Na czym polega obsesja na punkcie nie publikowania starszych treści? Po prostu zostaw to do zgnilizny? Ludzie nadal to widzą, a inni będą mieli te same pytania, które zadałem.
doug65536
28
Możesz także tymczasowo umieścić je na czarnej liście w linii poleceń grub (linia linux) podczas uruchamiania ze składnią
Jak długo jest to „tymczasowe”? Do następnego rozruchu?
Seth
1
Seth, jest tymczasowy tylko dla pojedynczego rozruchu, jeśli edytowałeś go podczas rozruchu. Jeśli edytujesz za pomocą skryptów /etc/grub.d/ lub / etc / default / grub, jest to stałe.
Peter
1
Najwyraźniej to nie działa na i915: i915: unknown parameter 'blacklist' ignored.
Rafał Cieślak
5
Jaka jest różnica między tym a modprobe.blacklist=module_to_blacklist?
Zaz
4
lub użyj parametru jądra modprobe.blacklist=module_to_blacklist(zobacz man modprobeszczegóły)
Karl Richter
11
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_DEFAULTzmiennej. Na przykład w moim / etc / default / grub mam:
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!)
To jest bardzo pomocne. Okazuje się, że nawet przy wpisie z czarnej listy /etc/modprobe/blacklist.conf, moduł można nadal załadować ręcznie modprobe <module_name>. Zastosowanie tej install <module_name> /bin/falsemetody powoduje, że nie powiedzie się to zgodnie z oczekiwaniami.
RawwrBag
3
Ż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
Odpowiedzi:
Wystarczy otworzyć
/etc/modprobe.d/blacklist
plik i dodać nazwę sterownika, używając następującej składni: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ą polecenialspci -v
command w terminalu.Na przykład mój wynik to:
Widzę, że kierowca jest
tg3
. więc musisz napisaćtg3
(lub sterownik) zamiastdriver-name
.Wiele informacji można znaleźć tutaj .
źródło
Lubuntu 12.10
) nie ma/etc/modprobe.d/blacklist
pliku. Jest to/etc/modprobe.d/blacklist.conf
plikblacklist.conf
Plik nie musi istnieć. Możesz umieścić tam plikmy-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ładblacklist-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ą
źródło
i915: unknown parameter 'blacklist' ignored
.modprobe.blacklist=module_to_blacklist
?modprobe.blacklist=module_to_blacklist
(zobaczman 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:
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:Potem biegnę
update-grub2
, a następnieupdate-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!)źródło
W nowszych wersjach należy użyć dyrektywy instalacyjnej w pliku czarnej listy
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
źródło
/etc/modprobe/blacklist.conf
, moduł można nadal załadować ręczniemodprobe <module_name>
. Zastosowanie tejinstall <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
Niestety zewnętrzny ekran VGA nie jest już rozpoznawany: {
źródło
sudo update-initramfs -u
zmodyfikować pliki /etc/modeprobe.d/