เมื่อเคอร์เนลตรวจพบอุปกรณ์ใหม่มันจะเรียกใช้โปรแกรมmodprobeและส่งผ่านชื่อที่ระบุอุปกรณ์นั้น อุปกรณ์ส่วนใหญ่จะถูกระบุผ่านหมายเลขที่ลงทะเบียนสำหรับผู้ขายและรุ่นเช่นตัวระบุPCIหรือUSB modprobeโปรแกรมให้คำปรึกษาตารางโมดูลนามแฝงเพื่อหาชื่อของไฟล์ที่มีโปรแกรมควบคุมสำหรับอุปกรณ์นั้น ๆ หลักการที่คล้ายกันนี้ใช้กับไดร์เวอร์สำหรับสิ่งที่ไม่ใช่อุปกรณ์ฮาร์ดแวร์เช่นระบบไฟล์และอัลกอริธึมการเข้ารหัส สำหรับรายละเอียดเพิ่มเติมดูDebian ไม่พบการ์ด PCI แบบอนุกรมหลังจากรีบูต/lib/modules/VERSION/modules.alias
เมื่อ modprobe ระบุว่าโมดูลไฟล์ใด ( .ko) มีไดรเวอร์ที่ร้องขอมันจะโหลดไฟล์โมดูลลงในเคอร์เนล: โค้ดโมดูลจะถูกโหลดแบบไดนามิกในเคอร์เนล lsmodถ้าโมดูลจะโหลดเสร็จเรียบร้อยแล้วก็จะปรากฏในรายชื่อจาก
การโหลดโมดูลโดยอัตโนมัติเกิดขึ้นเมื่อเคอร์เนลตรวจพบฮาร์ดแวร์ hotpluggable ใหม่เช่นเมื่อคุณเชื่อมต่ออุปกรณ์ต่อพ่วง USB ระบบปฏิบัติการยังผ่านการระบุฮาร์ดแวร์ทั้งหมดที่มีอยู่ในระบบก่อนระหว่างการเริ่มต้นเพื่อโหลดไดรเวอร์สำหรับอุปกรณ์ต่อพ่วงที่มีอยู่ในเวลาบูต
นอกจากนี้ยังสามารถร้องขอการโหลดโมดูลด้วยตนเองด้วยคำสั่งmodprobeหรือ insmodการกระจายมากที่สุด ได้แก่ /etc/modulesสคริปต์เริ่มต้นที่โหลดโมดูลที่ระบุไว้ใน อีกวิธีหนึ่งสำหรับโมดูลที่จะโหลดคือหากพวกเขาพึ่งพาโมดูล: หากโมดูล A ขึ้นอยู่กับโมดูล B แล้วmodprobe Aโหลด B ก่อนที่จะโหลด A
เมื่อโมดูลถูกโหลดมันจะยังคงโหลดจนกว่าจะยกเลิกการโหลดอย่างชัดเจนแม้ว่าอุปกรณ์ทั้งหมดที่ใช้ไดรเวอร์นั้นจะถูกตัดการเชื่อมต่อ นานมาแล้วมีกลไกที่จะยกเลิกการโหลดโมดูลที่ไม่ได้ใช้โดยอัตโนมัติ แต่มันถูกลบออกถ้าฉันจำได้อย่างถูกต้องเมื่อ udev เข้ามาในที่เกิดเหตุ ฉันสงสัยว่าการยกเลิกการโหลดโมดูลอัตโนมัติไม่ใช่คุณสมบัติทั่วไปเนื่องจากระบบที่มักต้องการเป็นเดสก์ท็อปพีซีส่วนใหญ่ที่มีหน่วยความจำจำนวนมากอยู่ดี (ตามมาตราส่วนรหัสไดรเวอร์)
/etc/modulesฉันยังไม่ได้มีการปรับเปลี่ยนrt2800usbอยู่ในผลลัพธ์ของlsmodและนั่นหมายความว่าฉันเชื่อมต่ออุปกรณ์กับคอมพิวเตอร์ของฉันก่อนนับตั้งแต่การบูท?