यह प्रश्न दोतरफा है:
सबसे पहले, आप 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 डिवाइस और अपने होस्ट लिनक्स सिस्टम पर चलने वाले एप्लिकेशन से डेटा भेज सकता हूं।
आप किसी एप्लिकेशन के बाहर मैन्युअल रूप से ड्राइवर को कैसे अलग कर सकते हैं?
दूसरा, मैं डिवाइस प्लगइन पर अटैच करने के लिए ड्राइवर को स्वचालित रूप से कैसे असाइन करूं? वर्तमान में मेरे पास डिवाइस अनुमतियों को स्वचालित रूप से सेट करने के लिए एक udv नियम सेटअप है:
SUBSYSTEM=="usb", ATTR{idVendor}=="xxxx", MODE="0666"
क्या मैं USB डिवाइस पर विशिष्ट इंटरफेस के लिए ड्राइवरों को असाइन करने के लिए udev नियमों का उपयोग कर सकता हूं? उदाहरण के लिए, अगर मैं चाहता था कि USB मॉड्यूल usb- स्टोरेज के बजाय इंटरफ़ेस 0 पर स्वचालित रूप से उपयोग किया जाए, तो क्या यह udv में संभव है?
usbnet
स्वचालित रूप से लोड नहीं होगा, क्योंकि इसमें हार्डवेयर के बारे में कोई जानकारी नहीं है, जो इसका उपयोग कर सकते हैं। उदाहरण के लिए, उचित ड्राइवर और उपयोग करने की कोशिश करें modinfo kalmia
। में alias
लाइनों आप के रूप में विक्रेता आईडी xxxx और उत्पाद आईडी yyyy देखेंगे usb:vxxxxpyyyy
। या आप फ़ाइल /lib/modules/kernel_version/modules.usbmap को संपादित कर सकते हैं और अपने HW के लिए आप लाइन को हटा सकते हैं, जहाँ आपके लिए HW मॉड्यूल usb-storage है या उचित नेट ड्राइवर के साथ usbstorage परिवर्तित करें। लेकिन इसके बाद depmod -a
यह बदलाव दूर हो जाएगा ...