Custom kernel: ไม่สามารถโหลดเฟิร์มแวร์เมื่อโมดูลในตัว


9

ฉันต้องการที่จะมีโมดูลทั้งหมดของฉันในตัว แต่สิ่งนี้ล้มเหลวด้วยiwlagn:

iwlagn 0000:03:00.0: request for firmware file 'iwlwifi-6000-4.ucode' failed.
iwlagn 0000:03:00.0: no suitable firmware found!

มีไฟล์ไมโครโค้ดอยู่/lib/firmwareและทั้งหมดก็ใช้ได้ดีถ้าฉันคอมไพล์iwlagnเป็นโมดูล ฉันไม่มีความคิดว่าไฟล์กำลังค้นหาอยู่หรือมีอะไรผิดปกติ - มีแนวคิดใดบ้าง


สร้างคำตอบใหม่แทนความคิดเห็น EXTRA_FIRMWARE_DIR สอดคล้องกับตำแหน่ง blob เฟิร์มแวร์ในสภาพแวดล้อมการสร้าง; ไม่ใช่เป้าหมาย ดู ( cateee.net/lkddb/web-lkddb/EXTRA_FIRMWARE_DIR.html )
orpheuswasrebornhere

คำตอบ:


10

มีลักษณะที่เป็นCONFIG_FIRMWARE_IN_KERNEL, CONFIG_EXTRA_FIRMWAREและCONFIG_EXTRA_FIRMWARE_DIRตัวเลือกการกำหนดค่า (พบได้ที่ไดรเวอร์ของอุปกรณ์ -> ทั่วไปไดร์เวอร์ตัวเลือก )

ตัวเลือกแรกจะเปิดใช้งานเฟิร์มแวร์ที่สร้างไว้ในเคอร์เนลตัวที่สองควรมีชื่อไฟล์เฟิร์มแวร์ (หรือรายการชื่อที่คั่นด้วยช่องว่าง) และตัวที่สามที่จะค้นหาเฟิร์มแวร์

ดังนั้นในตัวอย่างของคุณคุณจะตั้งค่าตัวเลือกเหล่านี้เป็น:

CONFIG_FIRMWARE_IN_KERNEL=y
CONFIG_EXTRA_FIRMWARE='iwlwifi-6000-4.ucode'
CONFIG_EXTRA_FIRMWARE_DIR='/lib/firmware'

คำของคำแนะนำ: รวบรวมโมดูลทั้งหมดใน kernel ไม่ได้เป็นความคิดที่ดี ฉันคิดว่าฉันเข้าใจความทะเยอทะยานของคุณเพราะในบางครั้งฉันก็อยากทำเช่นนั้น ปัญหาด้วยวิธีการดังกล่าวคือคุณไม่สามารถยกเลิกการโหลดโมดูลเมื่อมีการติดตั้งในตัวและน่าเสียดายที่โดยเฉพาะอย่างยิ่งไดรเวอร์ไร้สายมีแนวโน้มที่จะบั๊กกี้ซึ่งนำไปสู่ความจำเป็นในการโหลดโมดูลอีกครั้ง นอกจากนี้ในบางกรณีเวอร์ชันโมดูลของไดรเวอร์ล่าสุดจะไม่ทำงาน


นั่นไม่เป็นความจริงอีกต่อไป ไดรเวอร์ Intel มีความเสถียรและทำงานได้ดีโดยไม่ต้องใช้การแทรกแซง
LtWorf

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