Trong khi tôi có thể sử dụng lsmod
để hiển thị các mô-đun hạt nhân hiện đang hoạt động, làm thế nào tôi có thể thấy trình điều khiển nào được tích hợp tĩnh trong hạt nhân VÀ hiện đang hoạt động?
Trong khi tôi có thể sử dụng lsmod
để hiển thị các mô-đun hạt nhân hiện đang hoạt động, làm thế nào tôi có thể thấy trình điều khiển nào được tích hợp tĩnh trong hạt nhân VÀ hiện đang hoạt động?
Câu trả lời:
Bạn có thể làm một cat /lib/modules/$(uname -r)/modules.builtin
Từ Kernel Documentaton
Tập tin này liệt kê tất cả các mô-đun được tích hợp vào kernel. Điều này được modprobe sử dụng để không thất bại khi cố gắng tải một cái gì đó dựng sẵn.
uname -r
và không phổ biến hơnuname -a
Nếu linux của bạn có /proc/config.gz
Điều đó có tất cả các mô-đun được xây dựng. Sao chép nó ở nơi khác và giải nén nó. Mở tệp mọi thứ với "= M" được xây dựng dưới dạng mô-đun. Mọi thứ có "= Y" đều được xây dựng tĩnh.
hwinfo sẽ liệt kê "Trình điều khiển:" kiểm tra tệp trên để xem nó có được xây dựng tĩnh không.
FYI: Tất cả các trình điều khiển được xây dựng tĩnh luôn được tải vào bộ nhớ và sẵn sàng hành động. Không có phần cứng tương ứng, họ sẽ không làm gì cả, nhưng sử dụng bộ nhớ.
/proc/config.gz
sao?
/boot/config-$(uname -r)
.
ls /sys/module
dường như chứa tất cả các mô-đun tích hợp và bên ngoài.
Nhưng nó cũng có vẻ chứa một số mục không thực sự là mô-đun: https://unix.stackexchange.com/questions/225706/are-modules-listed-under-sys-module-all-the-loaded-modules
TODO: đọc nguồn và hiểu chính xác hơn những gì được đặt ở đó.
Ưu điểm của phương pháp này là bạn không dựa vào việc có thể tìm thấy cấu hình kernel bên dưới /boot
hoặc /proc/config.gz
.