Câu trả lời:
Lưu ý: danh sách đen sẽ không hoạt động đối với các mô-đun được tích hợp vào hình ảnh hạt nhân (nghĩa là không được tải qua một
.ko
tệp riêng biệt . Cách duy nhất để vô hiệu hóa các mô-đun đó là thông qua một tham số kernel (nếu có) hoặc bằng cách biên dịch lại kernel.
Chỉ cần mở /etc/modprobe.d/blacklist
tệp của bạn và thêm tên trình điều khiển bằng cú pháp sau:
blacklist driver-name
EDIT: Trong các phiên bản sau kể từ 12.10 (12.04?), Tệp là /etc/modprobe.d/blacklist.conf
Khởi động lại hộp của bạn và sử dụng lệnh lsmod để hiển thị trạng thái của các mô-đun trong Hạt nhân Linux
Lưu ý : đây driver-name
là tên của trình điều khiển danh sách đen mong muốn của bạn. Ví dụ: Nếu bạn muốn tắt trình điều khiển thẻ NIC, bạn có thể tìm tên trình điều khiển hạt nhân cho thẻ LAN của mình bằng cách sử dụng lệnh lspci -v
lệnh trong thiết bị đầu cuối.
Ví dụ: đầu ra của tôi là:
........ ........ Bộ điều khiển Ethernet 6: 00.0: Broadcom Corporation NetLink BCM5906M Fast Ethernet PCI Express (rev 02) Hệ thống con: Thiết bị Lenovo 3861 Cờ: chủ xe buýt, xe nhanh, độ trễ 0, IRQ 46 Bộ nhớ ở b8000000 (64 bit, không thể tìm nạp trước) [size = 64K] ROM mở rộng tại [bị vô hiệu hóa] Khả năng: Trình điều khiển hạt nhân đang sử dụng: tg3 Mô-đun hạt nhân: tg3 ........ ........
Ở đây, tôi thấy tài xế là tg3
. vì vậy bạn cần phải viết tg3
(hoặc trình điều khiển của bạn) ở nơi driver-name
.
Rất nhiều thông tin có thể được tìm thấy ở đây .
Lubuntu 12.10
), không có /etc/modprobe.d/blacklist
tệp nào. Có một /etc/modprobe.d/blacklist.conf
tập tin
blacklist.conf
tập tin không cần phải tồn tại. Bạn có thể đặt một tập tin được gọi my-mom-is-awesome
ở đó và nó sẽ hoạt động. Tạo bất cứ tên nào bạn thích nếu bạn muốn tạo một tệp cụ thể chỉ để đưa vào danh sách đen một điều cụ thể, như blacklist-nouveau
hoặc bất cứ điều gì.
Bạn cũng có thể tạm thời liệt kê chúng vào dòng lệnh grub (dòng linux) khi bạn khởi động với cú pháp
module_to_blacklist.blacklist=yes
i915: unknown parameter 'blacklist' ignored
.
modprobe.blacklist=module_to_blacklist
cái gì?
modprobe.blacklist=module_to_blacklist
(xem man modprobe
chi tiết)
Một cách khác để liệt kê các mô-đun trong ít nhất Ubuntu 16.04 LTS là thêm dòng sau vào dòng lệnh kernel:
modprobe.blacklist=MODULE_NAME
Sử dụng hệ thống / etc / modprobe là cách tốt nhất, nhưng đây là một cách thay thế có thể được sử dụng trong một nhúm bằng cách chỉnh sửa dòng lệnh GRUB của bạn khi khởi động.
Điều này cũng có thể được thực hiện vĩnh viễn bằng cách chỉnh sửa / etc / default / grub và thêm vào GRUB_CMDLINE_LINUX_DEFAULT
biến. Ví dụ: trong / etc / default / grub tôi có:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash modprobe.blacklist=nouveau"
Rồi tôi chạy update-grub2
, rồi update-initramfs -u
. Sau khi khởi động lại, bạn sẽ không có mô-đun, miễn là không có gì tải nó sau khi khởi động.
Phương pháp này cũng hoạt động trong các biến thể EL (RHEL, CentOS, SciLinux), nhưng bạn sẽ phải sử dụng các phương thức của distro đó để cập nhật grub và initrd.
(Lưu ý với những người đang cố gắng vào danh sách đen nouveau: Đảm bảo không tải X bằng cách chạy systemctl set-default multi-user.target
, nếu không, khi X bắt đầu, nó sẽ tải lại nouveau!)
Trong các bản phát hành gần đây, bạn cần sử dụng chỉ thị cài đặt trong tệp danh sách đen của mình
install modulename /bin/false
Thay thế "tên mô-đun" ở trên bằng tên của mô-đun. Điều này sẽ ngăn chặn tải của nó.
Bạn có thể tìm thêm thông tin về chỉ thị cài đặt trong hướng dẫn sử dụng cho modprobe.conf
man modprobe.conf
/etc/modprobe/blacklist.conf
, mô-đun vẫn có thể được tải bằng tay modprobe <module_name>
. Sử dụng install <module_name> /bin/false
phương pháp làm cho điều này thất bại như mong muốn.
Không có giải pháp nào trong số này hoạt động trên 16.04 LTS cho i915.ko.
Giải pháp (bẩn) mà tôi tìm thấy là đổi tên
/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
Thật không may, màn hình VGA ngoài không được nhận diện nữa: {
sudo update-initramfs -u
sau khi sửa đổi các tập tin /etc/modepcoat.d/