ฉันกำลังดิ้นรนในการสร้างกฎ udev สำหรับอุปกรณ์ที่คล้ายกัน (พอร์ต USB อนุกรม)
นี่คือผลลัพธ์ของรายละเอียดจากหนึ่งในนั้น:
ข้อมูล $ udevadm --name=/dev/ttyACM0 --attribute-walk
ข้อมูล Udevadm เริ่มต้นด้วยอุปกรณ์ที่ระบุโดย devpath จากนั้น
เดินขึ้นห่วงโซ่ของอุปกรณ์หลัก มันพิมพ์สำหรับทุกอุปกรณ์
พบแอตทริบิวต์ที่เป็นไปได้ทั้งหมดในรูปแบบคีย์กฎ udev
กฎการจับคู่สามารถประกอบขึ้นจากคุณสมบัติของอุปกรณ์
และแอตทริบิวต์จากอุปกรณ์หลักเครื่องเดียว
กำลังดูอุปกรณ์ '/devices/pci0000:00/0000:00:15.0/usb1/1-3/1-3:1.0/tty/ttyACM0':
เคอร์เนล = "ttyACM0"
ระบบย่อย = "tty"
คนขับ==""
ดูที่อุปกรณ์หลัก '/devices/pci0000:00/0000:00:15.0/usb1/1-3/1-3:1.0':
เมล็ด = "1-3:1.0"
ระบบย่อย = "usb"
ไดรเวอร์ = "cdc_acm"
ATTRS{iad_bFunctionClass}=="02"
ATTRS{iad_bInterfaceCount}=="02"
ATTRS{bการตั้งค่าสำรอง}==" 0"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bInterfaceProtocol}=="01"
ATTRS{iad_bFunctionSubClass}=="02"
ATTRS{iad_bFirstInterface}=="00"
ATTRS{bInterfaceSubClass}=="02"
ATTRS{authorized}=="1"
ATTRS{iad_bFunctionProtocol}=="00"
ATTRS{bmCapabilities}=="6"
ATTRS{supports_autosuspend}=="1"
ATTRS{bInterfaceClass}=="02"
ATTRS{bNumEndpoints}=="01"
ดูที่อุปกรณ์หลัก '/devices/pci0000:00/0000:00:15.0/usb1/1-3':
เมล็ด = "1-3"
ระบบย่อย = "usb"
ไดรเวอร์ = "usb"
ATTRS{maxchild}=="0"
ATTRS{บัสนัม}=="1"
ATTRS{speed}=="12"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{rx_lanes}=="1"
ATTRS{bDeviceSubClass}=="02"
ATTRS{idVendor}=="2341"
ATTRS{devnum}=="6"
ATTRS{bNumInterfaces}==" 2"
ATTRS{bDeviceProtocol}=="01"
ATTRS{quirks}=="0x0"
ATTRS{devpath}=="3"
ATTRS{bMaxPower}=="100mA"
ATTRS{bDeviceClass}=="เอฟ"
ATTRS{tx_lanes}=="1"
ATTRS{เวอร์ชัน}==" 2.00"
ATTRS{ผู้ผลิต}=="Arduino"
ATTRS{ltm_capable}=="ไม่"
ATTRS{removable}=="ไม่ทราบ"
ATTRS{product}=="นาโน 33 BLE"
ATTRS{bConfigurationValue}=="1"
ATTRS{idProduct}=="805a"
ATTRS{bNumการกำหนดค่า}=="1"
ATTRS{authorized}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{ซีเรียล}=="F594686789F67DE5"
ATTRS{bcdDevice}=="0101"
ATTRS{การกำหนดค่า}==""
ATTRS{urbnum}=="13"
ATTRS{bmAttributes}=="c0"
ดูที่อุปกรณ์หลัก '/devices/pci0000:00/0000:00:15.0/usb1':
เมล็ด = "usb1"
ระบบย่อย = "usb"
ไดรเวอร์ = "usb"
ATTRS{bDeviceClass}=="09"
ATTRS{maxchild}=="8"
ATTRS{ltm_capable}=="ไม่"
ATTRS{urbnum}=="85"
ATTRS{ผู้ผลิต}=="Linux 5.11.0-38-generic xhci-hcd"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{quirks}=="0x0"
ATTRS{product}=="xHCI โฮสต์คอนโทรลเลอร์"
ATTRS{bDeviceProtocol}=="01"
ATTRS{devpath}=="0"
ATTRS{devnum}=="1"
ATTRS{rx_lanes}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{authorized_default}=="1"
ATTRS{speed}=="480"
ATTRS{บัสนัม}=="1"
ATTRS{เวอร์ชัน}==" 2.00"
ATTRS{bConfigurationValue}=="1"
ATTRS{bNumInterfaces}==" 1"
ATTRS{idProduct}=="0002"
ATTRS{authorized}=="1"
ATTRS{bMaxPower}=="0mA"
ATTRS{serial}=="0000:00:15.0"
ATTRS{การกำหนดค่า}==""
ATTRS{removable}=="ไม่ทราบ"
ATTRS{bNumการกำหนดค่า}=="1"
ATTRS{idVendor}=="1d6b"
ATTRS{bmAttributes}=="e0"
ATTRS{bcdDevice}=="0511"
ATTRS{tx_lanes}=="1"
ATTRS{bDeviceSubClass}=="00"
ATTRS{interface_authorized_default}=="1"
ดูที่อุปกรณ์หลัก '/devices/pci0000:00/0000:00:15.0':
เมล็ด = "0000:00:15.0"
ระบบย่อย = "pci"
ไดรเวอร์ = "xhci_hcd"
ATTRS{revision}=="0x0d"
ATTRS{irq}=="126"
ATTRS{driver_override}=="(null)"
ATTRS{dma_mask_bits}=="64"
ATTRS{device}=="0x5aa8"
ATTRS{subsystem_vendor}=="0x8086"
ATTRS{enable}=="1"
ATTRS{consistent_dma_mask_bits}=="64"
ATTRS{ผู้ขาย}=="0x8086"
ATTRS{subsystem_device}=="0x5aa8"
ATTRS{power_state}=="D0"
ATTRS{local_cpulist}=="0-3"
ATTRS{dbc}=="ปิดใช้งาน"
ATTRS{คลาส}=="0x0c0330"
ATTRS{ari_enabled}=="0"
ATTRS{local_cpus}=="f"
ATTRS{broken_parity_status}=="0"
ATTRS{numa_node}=="-1"
ATTRS{msi_bus}=="1"
ATTRS{d3cold_allowed}=="1"
ดูที่อุปกรณ์หลัก '/devices/pci0000:00':
เมล็ด = "pci0000:00"
ระบบย่อย==""
ไดรเวอร์ ==""
ในตอนแรกฉันต้องการสร้างกฎสำหรับอุปกรณ์นี้โดยไม่ต้องใช้ อนุกรม
คุณลักษณะ (ดูด้านล่าง)
ใน /etc/udev/rules.d
ฉันสร้าง 10-gesture.rules
ด้วยเนื้อหานี้:
SUBSYSTEM=="tty",SUBSYSTEMS="usb",DRIVERS=="cdc_acm",ATTRS{idVendor}=="2341",ATTRS{idProduct}=="805a",SYMLINK+="ท่าทาง"
แล้ว:
$ sudo chmod 0644 10-gesture.rules
$ การควบคุม udevadm --reload-กฎ && ทริกเกอร์ udevadm
แต่ไม่ได้สร้าง symlink ฉันยังพยายาม:
$ sudo udevadm ควบคุม --log-priority=debug
$journalctl -ฉ
แต่ฉันพบว่าไม่มีอะไรที่เกี่ยวข้อง
คำถามแรก: ฉันทำผิดกฎอย่างแน่นอนคุณช่วยฉันค้นหาอะไรได้บ้าง
ฉันไม่ต้องการใช้ อนุกรม
เนื่องจากฉันต้องเชื่อมต่ออุปกรณ์เหล่านี้หลายตัว ฉันจะไม่ทราบชื่อซีเรียลของพวกเขา (อุปกรณ์จริงสามารถเปลี่ยนแปลงได้) ดังนั้นฉันจะใช้ประเภทของอุปกรณ์ (ระบบย่อย
, ระบบย่อย
, ไดรเวอร์
และ ไอดีเวนเดอร์
/รหัสผลิตภัณฑ์
คุณลักษณะ).
คำถามที่สอง: วิธีสร้าง symlink ด้วยหมายเลขโปรเกรสซีฟ (เช่น "gesture1", "gesture2") สำหรับอุปกรณ์ทั้งหมดที่ตรงกับกฎ ลำดับไม่สำคัญ
อูบุนตู 20.04