Ketika kernel mendeteksi perangkat baru, itu menjalankan program modprobe
dan memberikannya nama yang mengidentifikasi perangkat. Sebagian besar perangkat diidentifikasi melalui nomor terdaftar untuk vendor dan model, misalnya PCI atau pengidentifikasi USB . The modprobe
Program berkonsultasi tabel modul alias untuk mencari nama file yang berisi driver perangkat tertentu. Prinsip serupa berlaku untuk driver untuk hal-hal yang bukan perangkat perangkat keras, seperti sistem file dan algoritma kriptografi. Untuk detail lebih lanjut, lihat Debian tidak mendeteksi kartu PCI seri setelah reboot/lib/modules/VERSION/modules.alias
Setelah modprobe mengidentifikasi file modul mana ( .ko
) berisi driver yang diminta, ia memuat file modul ke dalam kernel: kode modul dimuat secara dinamis ke dalam kernel. Jika modul berhasil dimuat, maka akan muncul di daftar dari lsmod
.
Pemuatan otomatis modul terjadi ketika kernel mendeteksi perangkat keras hotpluggable baru, misalnya ketika Anda menghubungkan perangkat USB. Sistem operasi juga melakukan enumerasi semua perangkat keras yang ada pada sistem lebih awal selama startup, untuk memuat driver untuk periferal yang hadir pada saat boot.
Dimungkinkan juga untuk secara manual meminta pemuatan modul dengan perintah modprobe
atau insmod
. Sebagian besar distribusi menyertakan skrip startup yang memuat modul yang terdaftar di /etc/modules
. Cara lain untuk memuat modul adalah jika mereka merupakan ketergantungan modul: jika modul A tergantung pada modul B, maka modprobe A
muat B sebelum memuat A.
Setelah modul dimuat, modul itu tetap dimuat hingga dibongkar secara eksplisit, bahkan jika semua perangkat yang menggunakan driver itu telah diputus. Dahulu kala, ada mekanisme untuk secara otomatis membongkar modul yang tidak digunakan, tetapi sudah dihapus, jika saya ingat dengan benar, ketika udev datang ke tempat kejadian. Saya menduga bahwa pembongkaran modul otomatis bukanlah fitur yang umum karena sistem yang cenderung membutuhkannya kebanyakan adalah PC desktop yang memiliki banyak memori (pada skala kode driver).
/etc/modules
.rt2800usb
dalam output darilsmod
, dan apakah itu berarti bahwa saya menghubungkan perangkatnya ke komputer saya sebelum mem-boot?