Sự khác biệt giữa insmod và modprobe là gì?


Câu trả lời:


28

Mỗi man insmod:

Hầu hết người dùng sẽ muốn sử dụng modprobe thay vào đó, thông minh hơn và có thể xử lý các phụ thuộc mô-đun.


2
ah xin lỗi, bỏ lỡ dòng đó.
NES

39

modprobeđọc các mô-đun từ /lib/modules/$(uname -r)/modules.dep.bin(hoặc không có .binhậu tố nếu tệp khác không có sẵn). Từ cùng một tập tin, phụ thuộc được tải.

modprobechấp nhận tên của một .kotệp trong /lib/modules/$(uname -r)(ví dụ: nvidia-currentđối với tệp dkms/nvidia-current.ko) và bí danh ( modules.alias.bin). Nội dung ( modules.alias.bin) cũng được công nhận, nhưng vì các mô-đun này được tải theo mặc định, không có điểm nào trong việc sửa đổi loại mô-đun này.

insmodmặt khác chấp nhận đường dẫn đến tập tin. Mô-đun không phải cư trú /lib/modules/$(uname -r), nhưng phụ thuộc không được tải tự động. Đây là chương trình thấp hơn được sử dụng modprobeđể tải các mô-đun.

Các chương trình khác liên quan đến các mô-đun là rmmodmodinfo.

rmmodxóa tên kernel dựa trên tên từ /proc/modules. Tên này không nhất thiết phải giống với tên được truyền cho modprobe(đối với nvidia-currenttệp, đây là nvidiaví dụ).

modinfochấp nhận tên tệp hoặc tên tệp không có .kohậu tố /lib/modules/$(uname -r).


3

modprobelà một lệnh thông minh, nó tìm kiếm các phụ thuộc trong khi tải một mô-đun. Giả sử, nếu tôi tải một mô-đun, có các ký hiệu được xác định trong một số mô-đun khác (đường dẫn mô-đun này được đưa ra bên trong mô-đun chính). Vì vậy, modprobetải mô-đun chính và mô-đun phụ thuộc.

Nhưng nếu insmodđược sử dụng, nó sẽ không tải phụ thuộc và do đó nó sẽ đưa ra các lỗi biên dịch như thế nào Unresolved symbols. Trong trường hợp này, chúng tôi phải tìm thủ công mô-đun phụ thuộc và cần tải chúng để giải quyết các lỗi.


0

Tiện ích modprobe đáng được đề cập nhanh chóng. modprobe, như insmod, tải một mô-đun vào kernel. Nó khác ở chỗ nó sẽ xem xét mô-đun sẽ được tải để xem liệu nó có tham chiếu bất kỳ ký hiệu nào hiện không được xác định trong kernel hay không. Nếu tìm thấy bất kỳ tham chiếu nào như vậy, modprobe sẽ tìm các mô-đun khác trong đường dẫn tìm kiếm mô-đun hiện tại xác định các ký hiệu liên quan. Khi modprobe tìm thấy các mô-đun đó (cần thiết cho mô-đun đang được tải), nó cũng sẽ tải chúng vào kernel. Thay vào đó, nếu bạn sử dụng insmod trong tình huống này, lệnh sẽ thất bại với một biểu tượng chưa được giải quyết của Tin nhắn tin nhắn còn lại trong logfile hệ thống

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.