ความแตกต่างระหว่าง insmod และ modprobe คืออะไร?


คำตอบ:


28

ต่อman insmod:

ผู้ใช้ส่วนใหญ่จะต้องการใช้ modprobe แทนซึ่งฉลาดกว่าและสามารถรองรับการพึ่งพาโมดูลได้


2
ขอโทษที่ไม่ได้รับสาย
NES

39

modprobeอ่านโมดูลจาก/lib/modules/$(uname -r)/modules.dep.bin(หรือไม่มี.binส่วนต่อท้ายหากไฟล์อื่นไม่พร้อมใช้งาน) จากไฟล์เดียวกันโหลดขึ้นต่อกัน

modprobeยอมรับชื่อ.koไฟล์ใน/lib/modules/$(uname -r)(เช่นnvidia-currentสำหรับไฟล์dkms/nvidia-current.ko) และชื่อแทน ( modules.alias.bin) Builtins ( modules.alias.bin) ได้รับการยอมรับเช่นกัน แต่เนื่องจากโมดูลเหล่านี้ถูกโหลดตามค่าเริ่มต้นจึงไม่มีประเด็นในการดัดแปลงโมดูลประเภทนี้

insmodในอีกทางหนึ่งยอมรับเส้นทางไปยังไฟล์ โมดูลไม่จำเป็นต้องอยู่ใน/lib/modules/$(uname -r)แต่การอ้างอิงจะไม่ถูกโหลดโดยอัตโนมัติ นี่เป็นโปรแกรมที่ต่ำกว่าที่ใช้modprobeเพื่อโหลดโมดูล

โปรแกรมอื่น ๆ ที่เกี่ยวข้องกับโมดูลและrmmodmodinfo

rmmod/proc/modulesเอาชื่อเคอร์เนลตามชื่อจาก ชื่อนี้ไม่จำเป็นต้องเหมือนกับชื่อที่ส่งไปยังmodprobe(สำหรับnvidia-currentไฟล์nvidiaตัวอย่างเช่นนี้)

modinfoยอมรับชื่อไฟล์หรือชื่อไฟล์โดยไม่ต้องต่อท้ายใน.ko/lib/modules/$(uname -r)


3

modprobeเป็นคำสั่งอัจฉริยะมันมองหาการอ้างอิงในขณะที่โหลดโมดูล สมมติว่าถ้าฉันโหลดโมดูลซึ่งมีสัญลักษณ์ที่กำหนดไว้ในโมดูลอื่น ๆ (เส้นทางโมดูลนี้จะได้รับภายในโมดูลหลัก) ดังนั้นmodprobeโหลดโมดูลหลักและโมดูลที่ต้องพึ่งพา

แต่ถ้าจะใช้ก็จะไม่สามารถโหลดพึ่งพาและด้วยเหตุนี้มันจะทำให้เกิดข้อผิดพลาดเช่นการรวบรวมinsmod Unresolved symbolsในกรณีนี้เราต้องค้นหาโมดูลที่ต้องพึ่งพาและต้องโหลดมันด้วยตนเองเพื่อแก้ไขข้อผิดพลาด


0

ยูทิลิตี้ modprobe มีค่าพูดถึงอย่างรวดเร็ว modprobe เช่น insmod โหลดโมเดอเรเตอร์ในเคอร์เนล มันแตกต่างกันในการที่จะดูโมดูลที่จะโหลดเพื่อดูว่ามันอ้างอิงสัญลักษณ์ใด ๆ ที่ไม่ได้กำหนดไว้ในเคอร์เนลในปัจจุบัน หากพบการอ้างอิงดังกล่าว modprobe จะค้นหาโมดูลอื่น ๆ ในเส้นทางการค้นหาโมดูลปัจจุบันที่กำหนดสัญลักษณ์ที่เกี่ยวข้อง เมื่อ modprobe พบโมดูลเหล่านั้น (ซึ่งจำเป็นสำหรับโมดูลที่กำลังโหลด) มันจะโหลดมันลงในเคอร์เนลเช่นกัน หากคุณใช้ insmod ในสถานการณ์นี้แทนคำสั่งจะล้มเหลวด้วยข้อความ“ สัญลักษณ์ที่ไม่ได้รับการแก้ไข” ที่ทิ้งไว้ในล็อกไฟล์ของระบบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.