วิธีการรับรายชื่อของไดรเวอร์ที่ใช้งานที่สร้างขึ้นแบบคงที่ในเคอร์เนลลินุกซ์?


28

ในขณะที่ฉันสามารถใช้lsmodเพื่อแสดงโมดูลเคอร์เนลที่ใช้งานอยู่ในปัจจุบันฉันจะดูได้อย่างไรว่าไดรเวอร์ใดที่ถูกสร้างขึ้นในเคอร์เนลและแอ็คทีฟในปัจจุบัน

คำตอบ:


28

คุณสามารถทำ cat /lib/modules/$(uname -r)/modules.builtin

จาก Kernel Documentaton

modules.builtin

ไฟล์นี้แสดงรายการโมดูลทั้งหมดที่สร้างไว้ในเคอร์เนล modprobe นี้ใช้เพื่อไม่ล้มเหลวเมื่อพยายามโหลดบางอย่างในตัว


modules.builtin ไม่มีอยู่ในระบบของฉันด้วย uname: Linux ecp 4.4.127-1.el6.elrepo.i686 # 1 SMP Sun 8 เม.ย. 09:44:43 EDT 2018 i686 i686 i386 GNU / Linux มีวิธีอื่นอีกไหมในการค้นหาว่ามีไดรเวอร์ในตัวหรือไม่
แดนนี่

@Danny ให้แน่ใจว่าคุณใช้uname -rและไม่ธรรมดาuname -a
Nairou

7

หาก linux ของคุณมี /proc/config.gz

ที่มีโมดูลทั้งหมดที่สร้างขึ้น คัดลอกไปที่อื่นแล้วคลายซิป เปิดไฟล์ทุกอย่างด้วย "= M" ถูกสร้างเป็นโมดูล ทุกอย่างที่มี "= Y" จะถูกสร้างขึ้นแบบคงที่

hwinfo จะแสดงรายการ "ไดรเวอร์:" ตรวจสอบไฟล์ด้านบนเพื่อดูว่ามีการสร้างแบบคงที่หรือไม่

FYI: ไดรเวอร์ที่สร้างขึ้นแบบสแตติกทั้งหมดจะถูกโหลดเข้าสู่หน่วยความจำเสมอและพร้อมสำหรับการทำงาน หากไม่มีฮาร์ดแวร์ที่สอดคล้องกันพวกเขาจะไม่ทำอะไรเลย แต่ใช้หน่วยความจำ


1
เกิดอะไรขึ้นถ้าไม่มี/proc/config.gz?
JohnnyFromBF

ตกลงฉันเพิ่งพบไฟล์. config ในไดเรกทอรีที่ฉันรวบรวมเคอร์เนลนั่นคือสิ่งที่คุณหมายถึงอย่างชัดเจน
JohnnyFromBF

1
/boot/config-$(uname -r)แฟ้มนี้ยังมีอยู่ที่นี่:
JohnnyFromBF

1
ls /sys/module

ดูเหมือนว่าจะมีโมดูลในตัวและภายนอกทั้งหมด

แต่มันก็ดูเหมือนจะมีบางรายการที่ไม่ได้เป็นโมดูลจริง: /unix/225706/are-modules-listed-under-sys-module-all-the-loaded-modules

สิ่งที่ต้องทำ: อ่านแหล่งที่มาและทำความเข้าใจกับสิ่งที่ได้รับมี

ข้อดีของวิธีนี้คือการที่คุณไม่ต้องพึ่งพาความสามารถในการค้นหาการตั้งค่าเคอร์เนลภายใต้หรือ/boot/proc/config.gz

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