แทนที่โมดูลส่วนขยายเคอร์เนล (ไดรเวอร์) ใน mac os โดยใช้กฎ udev


2

ฉันกำลังพัฒนาอุปกรณ์ฝังตัวโดยใช้ชิป FTDI Single RS232 สำหรับการสื่อสาร usb ฉันสามารถสื่อสารกับอุปกรณ์ได้ดีโดยใช้ไลบรารี pylibftdi และ libftdi บน libusb บน Linux แม้แต่บน Windows; ฉันได้ติดตั้งไดรเวอร์ libusb บน Window ด้วย

แต่ใน Apple Mac OS X ซึ่งฉันไม่คุ้นเคยอุปกรณ์ดังกล่าวถูกอ้างสิทธิ์โดยไดรเวอร์ FTDI ของ Apple (ตาม kextstat ) และ (py) libftdi บอกฉันว่าอุปกรณ์ได้รับการอ้างสิทธิ์แล้ว (ข้อผิดพลาด -5) ถ้าฉันยกเลิกการโหลดแอปเปิ้ลไดรเวอร์ (อยู่ในรายการเป็น com.apple.FTDI... โดย kextstat ) กำลังใช้ kextunload -bundle-id com.apple.driver.AppleUDBFTDI หลังจากเสียบอุปกรณ์แล้ว (py) libftdi สามารถสื่อสารกับมันได้

อย่างไรก็ตามทุกครั้งที่ฉันเสียบอุปกรณ์ฉันต้องยกเลิกการโหลดแอปเปิ้ลไดรเวอร์

ฉันต้องการเขียนกฎ udev เพื่อทำสิ่งนี้และฉันรู้ว่าฉันสามารถจับคู่ผู้ขาย USB และ ID คลาสและเรียกใช้สคริปต์ภายนอกได้ แต่มันทำให้ฉันเห็นว่านี่คือสิ่งที่ udev ถูกออกแบบมาให้ทำ udev builtin เพื่อยกเลิกการโหลดเคอร์เนลไดรเวอร์?

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