ชื่อ
modprobe - การจัดการระดับสูงของโมดูลที่สามารถโหลดได้
สรุป
modprobe -adnqv -C การตั้งค่า โมดูล สัญลักษณ์ = มูลค่า … modprobe -adnqv -C การตั้งค่า -t ชนิด รูปแบบmodprobe -l - การตั้งค่า -t ชนิด รูปแบบmodprobe -c -C การตั้งค่า modprobe -r -dnv -C การตั้งค่า โมดูล …modprobe -Vh
ตัวเลือก
-a, --all
ภาระทั้งหมด จับคู่โมดูลแทนการหยุดหลังจากการโหลดสำเร็จครั้งแรก
-c, --showconfig
แสดงการกำหนดค่าปัจจุบันที่ใช้อยู่
-C, --config การตั้งค่า
ใช้ไฟล์ การตั้งค่า แทน (ตัวเลือก) /etc/modules.conf เพื่อระบุการตั้งค่า ตัวแปรสภาพแวดล้อมMODULECONF นอกจากนี้ยังสามารถใช้เพื่อเลือก (และแทนที่) ไฟล์การกำหนดค่าที่แตกต่างจากไฟล์เริ่มต้น /etc/modules.conf (หรือ /etc/conf.modules (เลิก))
เมื่อตัวแปรสภาพแวดล้อมUNAME_MACHINE ตั้งค่า modutils จะใช้ค่าแทนฟิลด์ machine จาก unysame () syscall นี่คือส่วนใหญ่ของการใช้งานเมื่อคุณกำลังรวบรวมโมดูล 64 บิตในพื้นที่ผู้ใช้ 32 บิตหรือในทางกลับกันตั้งค่าUNAME_MACHINE ประเภทของโมดูล modutils ปัจจุบันไม่สนับสนุนโหมดการสร้างข้ามเต็มสำหรับโมดูลจะ จำกัด เฉพาะการเลือกสถาปัตยกรรมโฮสต์ระหว่าง 32 และ 64 บิต
-d, --debug
แสดงข้อมูลเกี่ยวกับการแสดงภายในของสแต็คโมดูล
-h, --ช่วยด้วย
แสดงสรุปตัวเลือกและออกจากระบบทันที
-k, --autoclean
ตั้ง 'autoclean' ในโมดูลที่โหลด ใช้โดย kernel เมื่อเรียกใช้modprobe เพื่อตอบสนองคุณลักษณะที่ขาดหาย (จัดให้เป็นโมดูล)-q โดยนัยคือโดยนัย-k. ตัวเลือกเหล่านี้จะถูกส่งไปให้โดยอัตโนมัติinsmod.
-l, --รายการ
แสดงโมดูลที่ตรงกัน
-n, --แสดง
ไม่ได้ดำเนินการจริงเพียงแค่แสดงสิ่งที่จะทำได้
-q, --เงียบ
อย่าบ่นเกี่ยวกับinsmod ไม่สามารถติดตั้งโมดูลได้ ดำเนินการต่อตามปกติ แต่เงียบด้วยความเป็นไปได้อื่น ๆ สำหรับ modprobe เพื่อทดสอบ ตัวเลือกนี้จะถูกส่งไปให้โดยอัตโนมัติinsmod.
-r, --remove
เอาโมดูล (stacks) หรือ autoclean ขึ้นอยู่กับว่ามีโมดูลใด ๆ ที่กล่าวถึงในบรรทัดคำสั่ง
-s, --syslog
รายงานผ่านทาง syslog แทน stderr ตัวเลือกนี้จะถูกส่งโดยอัตโนมัติไปที่insmod.
t- moduletype ; --type moduletype
พิจารณาเฉพาะโมดูลประเภทนี้เท่านั้น modprobe จะมองเฉพาะโมดูลที่มีเส้นทางไดเรกทอรีว่า " / moduletype / '. moduletype อาจมีชื่อไดเรกทอรีมากกว่าหนึ่งชื่อเช่น "t- ไดรเวอร์ / สุทธิ "จะแสดงโมดูลเข้า xxx / ไดรเวอร์ / net / และไดเร็กทอรีย่อย
-v, --verbose
พิมพ์คำสั่งทั้งหมดตามที่ดำเนินการ
-V, --version
แสดงเวอร์ชันของmodprobe.
บันทึก:
ชื่อโมดูลต้องไม่มีพา ธ (ไม่มี '/') และจะต้องไม่มีเครื่องหมาย '.o' ตัวอย่างเช่นสลิปเป็นชื่อโมดูลที่ถูกต้องสำหรับ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 / โมดูล .
นี่เป็นกลยุทธ์เริ่มต้นซึ่งสามารถแทนที่ได้ /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 Commands
ถ้าไดเรกทอรี / 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).
สำคัญ: ใช้ ชาย คำสั่ง ( % ชาย ) เพื่อดูว่ามีการใช้คำสั่งใดในคอมพิวเตอร์เครื่องใดเครื่องหนึ่งของคุณ




