एक udv नियम में विभिन्न मूल उपकरणों से विशेषताएँ


11

मुझे यह समझने में थोड़ी परेशानी होती है कि एक नियम में विभिन्न माता-पिता के उपकरणों का मूल्यांकन कैसे किया जाता है। मैं एक विशिष्ट धारावाहिक USB युक्ति (HUAWEI मॉडेम) के लिए एक नियम लिखना चाहता हूं, इस प्रकार एक विशेषता चलना है:

$ udevadm info --attribute-walk --name=/dev/ttyUSB0

  looking at device '/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB0/tty/ttyUSB0':
    KERNEL=="ttyUSB0"
    SUBSYSTEM=="tty"
    DRIVER==""

  looking at parent device '/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB0':
    KERNELS=="ttyUSB0"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="generic"
    ATTRS{port_number}=="0"

  looking at parent device '/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0':
    KERNELS=="1-1.3:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="usbserial_generic"
    ATTRS{bInterfaceClass}=="ff"
    ATTRS{bInterfaceSubClass}=="02"
    ATTRS{bInterfaceProtocol}=="01"
    ATTRS{bNumEndpoints}=="03"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bInterfaceNumber}=="00"

  looking at parent device '/devices/platform/bcm2708_usb/usb1/1-1/1-1.3':
    KERNELS=="1-1.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{devpath}=="1.3"
    ATTRS{idVendor}=="12d1"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 4"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{busnum}=="1"
    ATTRS{devnum}=="5"
    ATTRS{configuration}==""
    ATTRS{bMaxPower}=="500mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{maxchild}=="0"
    ATTRS{bcdDevice}=="0001"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="4561"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="HUAWEI"
    ATTRS{removable}=="removable"
    ATTRS{idProduct}=="1506"
    ATTRS{bDeviceClass}=="00"
    ATTRS{product}=="HUAWEI MOBILE"

इस उपकरण की पहचान करने के लिए मैंने udev नियम का उपयोग करने की कोशिश की:

ACTION=="add", KERNEL=="ttyUSB[0-9]*", SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}=="00", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1506", RUN+="/usr/bin/systemctl start modem_dialer"

लेकिन दुर्भाग्य से मैं ATTRS{bInterfaceNumber}=="00"इंटरफ़ेस डिवाइस से विशेषता ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1506"और भौतिक डिवाइस से विशेषताओं का एक साथ उपयोग नहीं कर सकता । दोनों में से किसी एक का उपयोग करना ठीक रहता है, लेकिन एक साथ उपयोग करने पर नियम काम नहीं करता है।

क्या मैं एक नियम में एक साथ विभिन्न मूल उपकरणों से विशेषताओं के उपयोग के बारे में कुछ भी याद नहीं कर रहा हूं? क्या कोई अन्य कारण है कि विभिन्न माता-पिता से विशेषताओं का उपयोग करने में समस्या हो सकती है?

वैसे, डिस्ट्रो आर्क लिनक्स एआरएम है।



धन्यवाद, जो सब कुछ समझाता है। क्या कोई काम है, हालांकि अगर मैं एक विशिष्ट USB डिवाइस से एक विशिष्ट इंटरफ़ेस की पहचान करना चाहता हूं?
कसोपिया

2
क्या होगा अगर आप को बदलने ATTRS{bInterfaceNumber}=="00"के लिए ENV{ID_USB_INTERFACE_NUM}=="00"? वह काम करना चाहिए। यदि इन सभी को बदलने के लिए प्रयास न करें:ENV{ID_USB_INTERFACE_NUM}=="00", ENV{ID_VENDOR_ID}=="12d1", ENV{ID_MODEL_ID}== ...
don_crissti

जवाबों:


6

कई माता-पिता से विशेषताओं का उपयोग करने के लिए, आपको कई नियमों और GOTO का उपयोग करने की आवश्यकता है। कुछ इस तरह।

SUBSYSTEMS=="usb", ATTRS{bInterfaceNumber}!="00", GOTO="huawei_end"
ACTION=="add", KERNEL=="ttyUSB[0-9]*", SUBSYSTEMS=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1506", RUN+="/usr/bin/systemctl start modem_dialer"
LABEL="huawei_end"

1

आप यहाँ वर्णित के रूप में दो नियमों का उपयोग कर सकते हैं (संभवतः इस ब्लॉग पोस्ट में मिली एक और साफ-सुथरी चाल के साथ इसे और अधिक सामान्य / आसानी से व्यय करने योग्य बनाने के लिए):

ACTION=="add", SUBSYSTEM=="usb", ENV{USB_IDS}="%s{idVendor}:%s{idProduct}"
ACTION=="add", ENV{USB_IDS}=="12d1:1506", ATTRS{bInterfaceNumber}=="00", RUN+="/usr/bin/systemctl start modem_dialer"

हालाँकि, पहले नियम को सही तरीके से नोड के साथ मेल खाना है idVendorऔर idProductकोई गारंटी नहीं है कि यह USB_IDSसही मानों पर सेट है और दूसरा नियम मिलान करने में सक्षम है। मैं किसी भी विशेषता के बारे में नहीं जानता, जो हालांकि USB लीफ नोड्स से उदारतापूर्वक मेल कर सकेगी। : /

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.