ชื่อ
modprobe - การจัดการระดับสูงของโมดูลที่สามารถโหลดได้
สรุป
โมดูล modprobe [-adnqv] [-C config ] [สัญลักษณ์ = มูลค่า ... ]
modprobe [-adnqv] [-C config ] [-t ชนิด ] รูปแบบ
modprobe -l [-C config ] [-t ชนิด ] รูปแบบ
modprobe -c [-C config ]
modprobe -r [-dnv] [-C config ] [โมดูล ... ]
modprobe -Vh
ตัวเลือก
-a , - all
โหลดโมดูลที่ตรงกัน ทั้งหมด แทนการหยุดหลังจากการโหลดสำเร็จครั้งแรก
-c , --showconfig
แสดงการกำหนดค่าปัจจุบันที่ใช้อยู่
-C , --config config
ใช้ไฟล์ config แทน (optional) /etc/modules.conf เพื่อระบุการตั้งค่า ตัวแปรสภาพแวดล้อม MODULECONF สามารถใช้เพื่อเลือก (และแทนที่) ไฟล์การกำหนดค่าที่แตกต่างจากไฟล์เริ่มต้น /etc/modules.conf (หรือ /etc/conf.modules (เลิกใช้งาน))
เมื่อตั้งค่าตัวแปร environment UNAME_MACHINE แล้ว modutils จะใช้ค่าแทนฟิลด์ machine จาก unysame () syscall นี่คือส่วนใหญ่ของการใช้เมื่อคุณกำลังรวบรวมโมดูล 64 บิตในพื้นที่ผู้ใช้ 32 บิตหรือในทางกลับกันตั้ง UNAME_MACHINE ให้เป็นประเภทของโมดูล modutils ปัจจุบันไม่สนับสนุนโหมดการสร้างข้ามเต็มสำหรับโมดูล แต่จะ จำกัด การเลือกใช้สถาปัตยกรรมโฮสต์ไว้ระหว่าง 32 และ 64 บิต
-d , --debug
แสดงข้อมูลเกี่ยวกับการแสดงภายในของสแต็คโมดูล
-h , --help
แสดงสรุปตัวเลือกและออกจากระบบทันที
-k , --autoclean
ตั้ง 'autoclean' ในโมดูลที่โหลด ใช้โดยเคอร์เนลเมื่อเรียกใช้ modprobe เพื่อตอบสนองคุณลักษณะที่ขาดหาย (จัดให้เป็นโมดูล) ตัวเลือก -q โดยนัยคือ -k ตัวเลือกเหล่านี้จะถูกส่งไปที่ insmod โดยอัตโนมัติ
-l , --list
แสดงโมดูลที่ตรงกัน
-n , --show
ไม่ได้ดำเนินการจริงเพียงแค่แสดงสิ่งที่จะทำได้
-q , - เงียบสงบ
อย่าบ่นเกี่ยวกับ insmod ล้มเหลวในการติดตั้งโมดูล ดำเนินการต่อตามปกติ แต่เงียบด้วยความเป็นไปได้อื่น ๆ สำหรับ modprobe เพื่อทดสอบ ตัวเลือกนี้จะถูกส่งไปที่ insmod โดยอัตโนมัติ
-r , --remove
เอาโมดูล (stacks) หรือ autoclean ขึ้นอยู่กับว่ามีโมดูลใด ๆ ที่กล่าวถึงในบรรทัดคำสั่ง
-s , --syslog
รายงานผ่านทาง syslog แทน stderr ตัวเลือกนี้จะถูกส่งไปที่ insmod โดยอัตโนมัติ
-t moduletype ; - typetype type
พิจารณาเฉพาะโมดูลประเภทนี้เท่านั้น modprobe จะมองเฉพาะโมดูลที่มีเส้นทางไดเรกทอรีว่า " / moduletype / " moduletype สามารถรวมชื่อไดเรกทอรีได้มากกว่าหนึ่งชื่อเช่น " -t drivers / net " จะแสดงรายการโมดูลใน xxx / drivers / net / และไดเร็กทอรีย่อย
-v , --verbose
พิมพ์คำสั่งทั้งหมดตามที่ดำเนินการ
-V, --version
แสดงเวอร์ชันของ modprobe
บันทึก:
ชื่อโมดูลต้องไม่มีพา ธ (ไม่มี '/') และจะต้องไม่มีเครื่องหมาย '.o' ตัวอย่างเช่น slip เป็นชื่อโมดูลที่ถูกต้องสำหรับ modprobe , /lib/modules/2.2.19/net/slip และ slip.o ไม่ถูกต้อง นี้ใช้กับบรรทัดคำสั่งและรายการใน config
รายละเอียด
modprobe และโปรแกรมอรรถประโยชน์ depmod มีวัตถุประสงค์เพื่อทำให้ Linux modular kernel สามารถจัดการได้ดียิ่งขึ้นสำหรับผู้ใช้ผู้ดูแลระบบและผู้ดูแลระบบการจัดจำหน่ายทั้งหมด
Modprobe ใช้ไฟล์พึ่งพา "Makefile" เหมือนไฟล์ที่สร้างโดย depmod เพื่อโหลดโมดูลที่เกี่ยวข้องโดยอัตโนมัติจากชุดของโมดูลที่มีอยู่ในโครงสร้างไดเรกทอรีที่กำหนดไว้ล่วงหน้า
Modprobe ใช้เพื่อโหลดโมดูลเดียวสแต็คโมดูลที่อ้างอิงหรือโมดูลทั้งหมดที่มีแท็กที่ระบุไว้
Modprobe จะโหลดโมดูลพื้นฐานทั้งหมดที่ต้องการในกองโมดูลโดยอัตโนมัติตามที่อธิบายไว้ในไฟล์ modules.dep หากการโหลดโมดูลใดโมดูลหนึ่งล้มเหลวสแต็คปัจจุบันของโมดูลที่โหลดในเซสชันปัจจุบันจะถูกยกเลิกการโหลดโดยอัตโนมัติ
Modprobe มีสองวิธีในการโหลดโมดูล วิธีหนึ่ง (โหมด probe) จะพยายามโหลดโมดูลออกจากรายการ (กำหนดโดย รูปแบบ ) Modprobe จะหยุดโหลดทันทีที่โมดูลโหลดสำเร็จ นี้สามารถใช้ในการ autoload ไดรเวอร์ Ethernet หนึ่งออกจากรายการ
modprobe วิธีอื่นสามารถใช้คือการโหลดโมดูล ทั้งหมด จากรายการ ดู ตัวอย่าง ด้านล่าง
ด้วยตัวเลือก -r , modprobe จะยกเลิกการโหลดกองโมดูลโดยอัตโนมัติคล้ายกับวิธี " rmmod-r " ที่ทำ โปรดทราบว่าการใช้เพียง " modprobe -r " จะทำความสะอาดโมดูลที่ไม่ได้ใช้ autoloaded และยังดำเนินการคำสั่งก่อนและหลังการลบในไฟล์การกำหนดค่า /etc/modules.conf
การรวมตัวเลือก -l และ -t แสดงรายการโมดูลทั้งหมดที่ใช้ได้ในบางประเภท
ตัวเลือก -c จะพิมพ์การกำหนดค่าที่ใช้อยู่ (ค่าดีฟอลต์ + ไฟล์กำหนดค่า)
การกำหนดค่า
ลักษณะการทำงานของ modprobe (และ depmod ) สามารถแก้ไขได้โดยการกำหนดค่าไฟล์ (optional) /etc/modules.conf
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับสิ่งที่ไฟล์นี้สามารถมีได้เช่นเดียวกับการกำหนดค่าเริ่มต้นที่ใช้โดย depmod และ modprobe ดู modules.conf (5)
โปรดทราบว่าคำสั่งก่อนและหลังการถอดถอนจะ ไม่ ทำงานถ้าโมดูลเป็น "autocleaned" โดย kerneld! ค้นหาการสนับสนุนโมดูลสำหรับเก็บข้อมูลแบบถาวรต่อไปแทน
ถ้าคุณต้องการใช้คุณลักษณะก่อนและหลังการติดตั้งคุณจะต้องปิด autoclean สำหรับ kerneld แทนที่จะใส่ข้อมูลบางอย่างเช่นบรรทัดต่อไปนี้ใน crontab ของคุณ (ซึ่งใช้สำหรับระบบ kmod ด้วย) เพื่อทำ autoclean ทุกๆ 2 นาที :
* / 2 * * * * ทดสอบ -f / proc / modules && / sbin / modprobe -r
กลยุทธ์
ความคิดคือว่า modprobe จะดูครั้งแรกในไดเร็กทอรีที่มีโมดูลที่คอมไพล์ไว้สำหรับเคอร์เนลในปัจจุบัน หากไม่พบโมดูลนี้ modprobe จะดูในไดเร็กทอรีที่พบในเวอร์ชันเคอร์เนล (เช่น 2.0, 2.2) ถ้าโมดูลยังคงพบ modprobe จะค้นหาในไดเร็กทอรีที่มีโมดูลสำหรับการเปิดใช้งานดีฟอลต์และอื่น ๆ
เมื่อคุณติดตั้งลินุกซ์ใหม่โมดูลควรถูกย้ายไปยังไดเร็กทอรีที่เกี่ยวข้องกับการเปิดตัว (และเวอร์ชัน) ของเคอร์เนลที่คุณกำลังติดตั้ง จากนั้นคุณควรทำ symlink จากไดเร็กทอรีนี้ไปยังไดเร็กทอรี "default"
ทุกครั้งที่คุณคอมไพล์เคอร์เนลใหม่คำสั่ง " make modules_install " จะสร้างไดเร็กทอรีใหม่ แต่จะไม่เปลี่ยนลิงก์ "ดีฟอลต์"
เมื่อคุณได้รับโมดูลที่ไม่เกี่ยวกับการแจกจ่ายของเคอร์เนลคุณควรวางไว้ในไดเร็กทอรีที่ไม่ขึ้นกับรุ่นภายใต้ / lib / modules
นี่เป็นกลยุทธ์เริ่มต้นซึ่งสามารถแทนที่ได้ใน /etc/modules.conf
ตัวอย่าง
modprobe -t สุทธิ
โหลดโมดูลใดโมดูลหนึ่งที่เก็บอยู่ในไดเร็กทอรีที่ถูกแท็ก "net" แต่ละโมดูลจะถูกทดลองใช้จนกว่าจะประสบความสำเร็จ
modprobe -a -t boot
โมดูลทั้งหมดที่เก็บอยู่ในไดเรกทอรีที่ติดแท็ก "boot" จะถูกโหลด
modprobe slip
การดำเนินการนี้จะพยายามโหลดโมดูล slhc.o หากไม่ได้โหลดมาก่อนเนื่องจากโมดูลสลิปต้องมีฟังก์ชันการทำงานในโมดูล slhc การพึ่งพานี้จะอธิบายไว้ในไฟล์ modules.dep ที่สร้างโดยอัตโนมัติโดย depmod
modprobe -r slip
การดำเนินการนี้จะยกเลิกการโหลดโมดูลสลิป นอกจากนี้ยังจะยกเลิกการโหลดโมดูล slhc โดยอัตโนมัติเว้นเสียแต่ว่าจะถูกใช้โดยโมดูลอื่น ๆ ด้วย (เช่น ppp)
ดูสิ่งนี้ด้วย
depmod (8), lsmod (8), kerneld (8), ksyms (8), rmmod (8)
โหมดปลอดภัย
ถ้า uid ที่มีประสิทธิภาพไม่เท่ากับ uid จริงแล้ว modprobe จะถือว่าข้อมูลเข้าด้วยความสงสัยอย่างมาก พารามิเตอร์สุดท้ายจะถือว่าเป็นชื่อโมดูลเสมอแม้ว่าจะเริ่มต้นด้วย '-' ก็ตาม สามารถเลือกได้เพียงหนึ่งชื่อโมดูลและตัวเลือกของฟอร์ม "variable = value" จะไม่ได้รับอนุญาต ชื่อโมดูลจะถือว่าเป็นสตริงเสมอและจะไม่มีการขยายเมตาในเซฟโหมด อย่างไรก็ตามการขยาย meta ยังคงใช้กับข้อมูลที่อ่านจากไฟล์ config
euid อาจไม่เท่ากับ uid เมื่อถูกเรียกใช้ modprobe จาก kernel ซึ่งเป็น true สำหรับ kernels> = 2.4.0-test11 ในโลกอุดมคติ modprobe สามารถไว้ใจเคอร์เนลเพื่อส่งเฉพาะพารามิเตอร์ที่ถูกต้องไปยัง modprobe เท่านั้น อย่างไรก็ตามมีการใช้ประโยชน์จากรากอย่างน้อยหนึ่งแห่งเนื่องจากรหัสเคอร์เนลระดับสูงได้ส่งผ่านพารามิเตอร์ที่ไม่ผ่านการยืนยันจากผู้ใช้ไปยัง modprobe โดยตรง ดังนั้น modprobe ไม่ไว้วางใจการป้อนข้อมูลของเคอร์เนล
modprobe จะตั้งค่าโหมดปลอดภัยโดยอัตโนมัติเมื่อสภาพแวดล้อมประกอบด้วยเฉพาะสายอักขระเหล่านี้
HOME = / TERM = linux PATH = / sbin: / usr / sbin: / bin: / usr / binนี้จะตรวจสอบการประมวลผล modprobe จากเคอร์เนลบน kernel 2.2 ถึงแม้ว่าจะเป็น 2.4.0-test11 แม้ว่า uid == euid ซึ่งเป็นข้อมูลใน kernel ก่อนหน้านี้
คำสั่ง LOGGING
ถ้ามีไดเร็กทอรี / var / log / ksymoops และ modprobe จะรันพร้อมตัวเลือกที่สามารถโหลดหรือลบโมดูลได้ modprobe จะบันทึกคำสั่งและสถานะการส่งคืนใน / var / log / ksymoops / `date +% Y% m% d .log` ไม่มีสวิตช์เพื่อปิดการใช้งานการเข้าสู่ระบบอัตโนมัตินี้โดยอัตโนมัติหากคุณไม่ต้องการให้มีการใช้งานนี้อย่าสร้าง / var / log / ksymoops หากไดเรกทอรีนั้นมีอยู่ควรเป็นของ root และเป็นโหมด 644 หรือ 600 และคุณควรใช้สคริปต์ insmod_ksymoops_clean ทุกวันหรือมากกว่า
โปรแกรมอรรถประโยชน์ที่จำเป็น
depmod (8), insmod (8)
สำคัญ: ใช้คำสั่ง man ( % man ) เพื่อดูว่าคำสั่งถูกใช้อย่างไรในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณ