คำถามนี้เป็นสองเท่า:
ขั้นแรกให้คุณถอดไดรฟ์เวอร์จากอุปกรณ์ USB ด้วยตนเองและต่อกับไดรฟเวอร์อื่นได้อย่างไร ตัวอย่างเช่นฉันมีอุปกรณ์ที่เมื่อเชื่อมต่อโดยอัตโนมัติจะใช้ไดรเวอร์เก็บข้อมูล usb
เอาท์พุท usbview
Vendor Id: xxxx
Product Id: xxxx
...
Number of Interfaces: 2
Interface Number: 0
Name: usb-storage
Number of Endpoints: 2
...
Interface Number: 1
Name: (none)
Number of Endpoints: 2
...
ฉันไม่ต้องการใช้ไดรเวอร์เก็บข้อมูล usb ดังนั้นในแอปพลิเคชันของฉันฉันใช้libusb
ห้องสมุดเพื่อถอดไดรเวอร์เก็บข้อมูล usb จากนั้นฉันอ้างสิทธิ์อินเทอร์เฟซ ฉันสามารถส่งข้อมูลไปยังและจากแอปพลิเคชันที่ทำงานบนอุปกรณ์ USB ของฉันและบนระบบโฮสต์ Linux ของฉัน
คุณถอดไดรเวอร์ออกด้วยตนเองนอกแอพพลิเคชั่นอย่างไร
ประการที่สองฉันจะกำหนดโปรแกรมควบคุมให้แนบกับปลั๊กอินอุปกรณ์โดยอัตโนมัติได้อย่างไร ขณะนี้ฉันมีการตั้งค่ากฎ udev เพื่อตั้งค่าการอนุญาตอุปกรณ์โดยอัตโนมัติ:
SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", MODE="0666"
ฉันสามารถใช้กฎ udev เพื่อกำหนดไดรเวอร์ให้กับอินเทอร์เฟซเฉพาะบนอุปกรณ์ USB ได้หรือไม่? ตัวอย่างเช่นถ้าฉันต้องการให้โมดูล usbnet ใช้งานโดยอัตโนมัติบนอินเตอร์เฟส 0 แทนที่จะเป็นที่เก็บข้อมูล usb เป็นไปได้ไหมที่ udev
usbnet
จะไม่โหลดอัตโนมัติเนื่องจากไม่มีข้อมูลเกี่ยวกับฮาร์ดแวร์ซึ่งสามารถใช้งานได้ modinfo kalmia
พยายามที่จะหาคนขับรถที่เหมาะสมและการใช้งานตัวอย่างเช่น ในalias
สายคุณจะเห็น xxxx ผู้ขาย ID usb:vxxxxpyyyy
และรหัสสินค้าเป็นปปปป หรือคุณสามารถแก้ไขไฟล์ /lib/modules/kernel_version/modules.usbmap และสำหรับ HW ของคุณคุณสามารถลบบรรทัดได้ซึ่งสำหรับโมดูล HW ที่เก็บข้อมูล USB ของคุณหรือเปลี่ยน usbstorage พร้อมไดรเวอร์สุทธิที่เหมาะสม แต่หลังจากdepmod -a
การเปลี่ยนแปลงนี้จะหายไป ...