vô hiệu hóa mô-đun kernel được biên dịch trong kernel (không được tải)


18

Máy chủ của tôi có hai card mạng 1-Gbit và hai card trên mạng.

Tôi cần phải vô hiệu hóa hoàn toàn các card mạng 1 Gbit để ifconfig -akhông hiển thị chúng.

Các card mạng sử dụng các mô-đun hạt nhân khác nhau. Việc sử dụng 10 Gbit và sử dụng ixgbe1 Gbit igb.

01:00.1 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
Subsystem: Dell Ethernet 10G 4P X520/I350 rNDC
Kernel driver in use: ixgbe

05:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01)
Subsystem: Dell I350 Gigabit Network Connection
Kernel driver in use: igb 

Cả hai ixgbeigbđược biên dịch tĩnh trong kernel (không phải là một mô-đun có thể tải). Tôi cần phải vô hiệu hóa mô-đun bằng các tham số khởi động kernel.

Tôi đã thử nối các phần sau vào kernel của mình, nhưng nó không có tác dụng:

igb.blacklist=yes
igb.enable=0
igb.disable=yes

các card mạng igb vẫn đang hiển thị

Làm thế nào tôi có thể vô hiệu hóa hoàn toàn igb?

Câu trả lời:


30

Bạn có thể liệt kê danh sách đen igbmô-đun, ngay cả khi được tích hợp sẵn, bằng cách liệt kê danh sách đen chức năng khởi tạo của nó: thêm

initcall_blacklist=igb_init_module

đến các tham số khởi động của kernel của bạn.

Xem Làm cách nào để tắt hỗ trợ I2C Designware khi nó không được xây dựng dưới dạng mô-đun? để biết thông tin cơ bản. Công thức chung ở đây là tìm kiếm mô-đun trong mã nguồn kernel và tìm các hàm có __initthuộc tính - chỉ nên có một nhận dạng dễ dàng là hàm khởi tạo chính (thường được đề cập trong module_initkhai báo). Danh sách đen đó, và trình điều khiển sẽ không được khởi tạo.


4
Đối với những người quan trọng, initcall_blacklisttham số xuất hiện trong Linux 3.16 .
Ruslan

1
<modulename>_init_moduletên kinh điển cho mỗi và tất cả những gì có thể được xây dựng như một mô-đun?
Bananguin

1
@Bananguin rất tiếc là không, có khá nhiều người được gọi ..._init_modulehoặc ..._module_initnhưng tất cả họ đều không tuân theo những mô hình đó.
Stephen Kitt
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.