ในขณะที่ฉันสามารถใช้lsmod
เพื่อแสดงโมดูลเคอร์เนลที่ใช้งานอยู่ในปัจจุบันฉันจะดูได้อย่างไรว่าไดรเวอร์ใดที่ถูกสร้างขึ้นในเคอร์เนลและแอ็คทีฟในปัจจุบัน
ในขณะที่ฉันสามารถใช้lsmod
เพื่อแสดงโมดูลเคอร์เนลที่ใช้งานอยู่ในปัจจุบันฉันจะดูได้อย่างไรว่าไดรเวอร์ใดที่ถูกสร้างขึ้นในเคอร์เนลและแอ็คทีฟในปัจจุบัน
คำตอบ:
คุณสามารถทำ cat /lib/modules/$(uname -r)/modules.builtin
จาก Kernel Documentaton
ไฟล์นี้แสดงรายการโมดูลทั้งหมดที่สร้างไว้ในเคอร์เนล modprobe นี้ใช้เพื่อไม่ล้มเหลวเมื่อพยายามโหลดบางอย่างในตัว
uname -r
และไม่ธรรมดาuname -a
หาก linux ของคุณมี /proc/config.gz
ที่มีโมดูลทั้งหมดที่สร้างขึ้น คัดลอกไปที่อื่นแล้วคลายซิป เปิดไฟล์ทุกอย่างด้วย "= M" ถูกสร้างเป็นโมดูล ทุกอย่างที่มี "= Y" จะถูกสร้างขึ้นแบบคงที่
hwinfo จะแสดงรายการ "ไดรเวอร์:" ตรวจสอบไฟล์ด้านบนเพื่อดูว่ามีการสร้างแบบคงที่หรือไม่
FYI: ไดรเวอร์ที่สร้างขึ้นแบบสแตติกทั้งหมดจะถูกโหลดเข้าสู่หน่วยความจำเสมอและพร้อมสำหรับการทำงาน หากไม่มีฮาร์ดแวร์ที่สอดคล้องกันพวกเขาจะไม่ทำอะไรเลย แต่ใช้หน่วยความจำ
/proc/config.gz
?
/boot/config-$(uname -r)
แฟ้มนี้ยังมีอยู่ที่นี่:
ls /sys/module
ดูเหมือนว่าจะมีโมดูลในตัวและภายนอกทั้งหมด
แต่มันก็ดูเหมือนจะมีบางรายการที่ไม่ได้เป็นโมดูลจริง: /unix/225706/are-modules-listed-under-sys-module-all-the-loaded-modules
สิ่งที่ต้องทำ: อ่านแหล่งที่มาและทำความเข้าใจกับสิ่งที่ได้รับมี
ข้อดีของวิธีนี้คือการที่คุณไม่ต้องพึ่งพาความสามารถในการค้นหาการตั้งค่าเคอร์เนลภายใต้หรือ/boot
/proc/config.gz