Apa perbedaan antara insmod dan modprobe?

35

Apakah ada perbedaan antara insmod dan modprobe?

NES
sumber

Jawaban:

28

Per man insmod:

Sebagian besar pengguna ingin menggunakan modprobe, yang lebih pintar dan dapat menangani dependensi modul.

8128
sumber
2
ah maaf, melewatkan garis itu.
NES
39

modprobemembaca modul dari /lib/modules/$(uname -r)/modules.dep.bin(atau tanpa .binakhiran jika file lain tidak tersedia). Dari file yang sama, dependensi dimuat.

modprobemenerima nama .kofile dalam /lib/modules/$(uname -r)(mis. nvidia-currentuntuk file dkms/nvidia-current.ko) dan alias ( modules.alias.bin). Builtins ( modules.alias.bin) juga dikenali, tetapi karena modul ini dimuat secara default, tidak ada gunanya modprobing modul jenis ini.

insmoddi sisi lain menerima jalur ke file. Modul tidak harus berada /lib/modules/$(uname -r), tetapi dependensi tidak dimuat secara otomatis. Ini adalah program yang lebih rendah yang digunakan oleh modprobeuntuk memuat modul.

Program lain yang terkait dengan modul adalah rmmoddan modinfo.

rmmodmenghapus nama kernel berdasarkan nama dari /proc/modules. Nama ini tidak harus sama dengan yang diteruskan ke modprobe(untuk nvidia-currentfile, ini nvidiamisalnya).

modinfomenerima nama file, atau nama file tanpa .koakhiran dalam /lib/modules/$(uname -r).

Lekensteyn
sumber
3

modprobeadalah perintah yang cerdas, mencari dependensi saat memuat modul. Misalkan, jika saya memuat modul, yang memiliki simbol yang didefinisikan dalam beberapa modul lain (lintasan modul ini diberikan di dalam modul utama). Jadi, modprobemuat modul utama dan modul dependen.

Tetapi jika insmoddigunakan, itu tidak akan memuat ketergantungan, dan karenanya akan memberikan kesalahan kompilasi seperti Unresolved symbols. Dalam hal ini, kita harus mencari modul dependen secara manual dan perlu memuatnya untuk menyelesaikan kesalahan.

Shalini Guleria
sumber
0

Utilitas modprobe layak disebutkan secara cepat. modprobe, seperti insmod, memuat modul ke dalam kernel. Ini berbeda karena ia akan melihat modul yang akan dimuat untuk melihat apakah itu merujuk simbol apa pun yang saat ini tidak didefinisikan dalam kernel. Jika ada referensi seperti itu ditemukan, modprobe mencari modul lain di jalur pencarian modul saat ini yang menentukan simbol yang relevan. Ketika modprobe menemukan modul-modul tersebut (yang diperlukan oleh modul yang sedang dimuat), modprobe memuatnya ke dalam kernel juga. Jika Anda menggunakan insmod dalam situasi ini sebagai gantinya, perintah gagal dengan pesan "simbol yang tidak terselesaikan" yang tersisa di logfile sistem

pengguna487054
sumber