একটি ওদেব নিয়মে বিভিন্ন পিতা-মাতার ডিভাইসের বৈশিষ্ট্য


11

কোনও নিয়মে বিভিন্ন পিতা-মাতার ডিভাইসগুলির থেকে udev ডিভাইস বৈশিষ্ট্যগুলি কীভাবে মূল্যায়ন করা হয় তা বুঝতে আমার কিছুটা সমস্যা হয়। আমি একটি নির্দিষ্ট সিরিয়াল ইউএসবি ডিভাইস (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"থেকে বৈশিষ্ট্য এবং দৈহিক ডিভাইস থেকে বৈশিষ্ট্যগুলি একসাথে ব্যবহার করতে পারি না । তাদের উভয়ই ব্যবহার করা ভাল কাজ করে, তবে তাদের একসাথে ব্যবহার করার সময় নিয়মটি আর কাজ করে না।

আমি কি এক নিয়মে একসাথে বিভিন্ন পিতা-মাতার ডিভাইসগুলির গুণাবলী ব্যবহার সম্পর্কিত কিছু মিস করছি? বিভিন্ন বাবা-মায়ের গুণাবলী ব্যবহার করা কোনও সমস্যা হতে পারে তার অন্য কোনও কারণ আছে কি?

যাইহোক, ডিস্ট্রোটি হ'ল আর্চ লিনাক্স এআরএম।



ধন্যবাদ, যা সবকিছু ব্যাখ্যা করে। যদিও আমি কোনও নির্দিষ্ট ইউএসবি ডিভাইস থেকে একটি নির্দিষ্ট ইন্টারফেস সনাক্ত করতে চাই তবে কি কোনও কাজের জায়গা আছে?
ক্যাসিওপিয়া

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}== ...
এনভিতে

উত্তর:


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সঠিক মানগুলিতে সেট করে এবং দ্বিতীয় নিয়মটি মেলাতে সক্ষম। আমি এমন কোনও বৈশিষ্ট্য সম্পর্কে অবগত নই যা ইউএসবি পাতার নোডগুলি যদিও সাধারণভাবে মেলাতে সক্ষম হয়। : /

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.