ฉันกำลังพยายามตั้งชื่อคงที่ให้กับอุปกรณ์เซนเซอร์ของฉัน ฉันเปิดไฟล์ชื่อ 99-usb-serial.กฎ
ใน /etc/udev/rules.d
และเขียนกฎไว้ดังนี้
KERNEL=="ttyACM0",KERNELS="1-1",SUBSYSTEM=="tty",SUBSYSTEMS=="usb",ATTRS{idVendor}=="108c", ATTRS{idProduct}=="017b", SYMLINK+="/dev/mydevice"
สิ่งนี้ไม่ได้สร้าง symlink ใน /พัฒนา
.
เพื่อตรวจสอบว่าคำสั่งของฉันถูกต้องหรือไม่
สั่งการ:
udevadm -info --name/dev/ttyACM0 --atribute-เดิน
เอาท์พุท:
ข้อมูล Udevadm เริ่มต้นด้วยอุปกรณ์ที่ระบุโดย devpath จากนั้น
เดินขึ้นห่วงโซ่ของอุปกรณ์หลัก มันพิมพ์สำหรับทุกอุปกรณ์
พบแอตทริบิวต์ที่เป็นไปได้ทั้งหมดในรูปแบบคีย์กฎ udev
กฎการจับคู่สามารถประกอบขึ้นจากคุณสมบัติของอุปกรณ์
และแอตทริบิวต์จากอุปกรณ์หลักเครื่องเดียว
กำลังดูอุปกรณ์ '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/tty/ttyACM0':
เคอร์เนล = "ttyACM0"
ระบบย่อย = "tty"
คนขับ==""
ดูที่อุปกรณ์หลัก '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0':
เมล็ด = "1-1:1.0"
ระบบย่อย = "usb"
ไดรเวอร์ = "cdc_acm"
ATTRS{authorized}=="1"
ATTRS{bInterfaceSubClass}=="02"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bmCapabilities}=="2"
ATTRS{bInterfaceClass}=="02"
ATTRS{bNumEndpoints}=="01"
ATTRS{bInterfaceProtocol}=="00"
ATTRS{supports_autosuspend}=="1"
ATTRS{bการตั้งค่าสำรอง}==" 0"
ดูที่อุปกรณ์หลัก '/devices/pci0000:00/0000:00:14.0/usb1/1-1':
เมล็ด = "1-1"
ระบบย่อย = "usb"
ไดรเวอร์ = "usb"
ATTRS{เวอร์ชัน}==" 2.00"
ATTRS{devpath}=="1"
ATTRS{bConfigurationValue}=="1"
ATTRS{product}=="แอปพลิเคชัน XDK"
ATTRS{devnum}=="21"
ATTRS{bDeviceProtocol}=="00"
ATTRS{manufacturer}=="Bosch Connected Devices and Solutions GmbH"
ATTRS{บัสนัม}=="1"
ATTRS{rx_lanes}=="1"
ATTRS{tx_lanes}=="1"
ATTRS{ltm_capable}=="ไม่"
ATTRS{serial}=="2496B4065B328D1E"
ATTRS{bDeviceClass}=="02"
ATTRS{bNumการกำหนดค่า}=="1"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{bMaxPower}=="500mA"
ATTRS{bmAttributes}=="c0"
ATTRS{urbnum}=="13"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bNumInterfaces}==" 2"
ATTRS{bcdDevice}=="0000"
ATTRS{idProduct}=="017b"
ATTRS{authorized}=="1"
ATTRS{bDeviceSubClass}=="00"
ATTRS{การกำหนดค่า}==""
ATTRS{removable}=="ถอดได้"
ATTRS{idVendor}=="108c"
ATTRS{maxchild}=="0"
ATTRS{speed}=="12"
ATTRS{quirks}=="0x0"
ดูที่อุปกรณ์หลัก '/devices/pci0000:00/0000:00:14.0/usb1':
เมล็ด = "usb1"
ระบบย่อย = "usb"
ไดรเวอร์ = "usb"
ATTRS{serial}=="0000:00:14.0"
ATTRS{bNumInterfaces}==" 1"
ATTRS{urbnum}=="577"
ATTRS{เวอร์ชัน}==" 2.00"
ATTRS{quirks}=="0x0"
ATTRS{bcdDevice}=="0513"
ATTRS{authorized_default}=="1"
ATTRS{product}=="xHCI โฮสต์คอนโทรลเลอร์"
ATTRS{bConfigurationValue}=="1"
ATTRS{devnum}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{removable}=="ไม่ทราบ"
ATTRS{interface_authorized_default}=="1"
ATTRS{tx_lanes}=="1"
ATTRS{การกำหนดค่า}==""
ATTRS{บัสนัม}=="1"
ATTRS{speed}=="480"
ATTRS{rx_lanes}=="1"
ATTRS{bNumการกำหนดค่า}=="1"
ATTRS{maxchild}=="12"
ATTRS{devpath}=="0"
ATTRS{bDeviceProtocol}=="01"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{idVendor}=="1d6b"
ATTRS{idProduct}=="0002"
ATTRS{bmAttributes}=="e0"
ATTRS{bMaxPower}=="0mA"
ATTRS{ltm_capable}=="ไม่"
ATTRS{authorized}=="1"
ATTRS{bDeviceSubClass}=="00"
ATTRS{ผู้ผลิต}=="Linux 5.13.0-28-generic xhci-hcd"
ATTRS{bDeviceClass}=="09"
ดูที่อุปกรณ์หลัก '/devices/pci0000:00/0000:00:14.0':
เมล็ด = "0000:00:14.0"
ระบบย่อย = "pci"
ไดรเวอร์ = "xhci_hcd"
ATTRS{local_cpulist}=="0-3"
ATTRS{driver_override}=="(null)"
ATTRS{broken_parity_status}=="0"
ATTRS{dbc}=="ปิดใช้งาน"
ATTRS{dma_mask_bits}=="64"
ATTRS{d3cold_allowed}=="1"
ATTRS{คลาส}=="0x0c0330"
ATTRS{enable}=="1"
ATTRS{ผู้ขาย}=="0x8086"
ATTRS{revision}=="0x21"
ATTRS{msi_bus}=="1"
ATTRS{irq}=="125"
ATTRS{subsystem_vendor}=="0x1043"
ATTRS{power_state}=="D0"
ATTRS{device}=="0x9d2f"
ATTRS{ari_enabled}=="0"
ATTRS{numa_node}=="-1"
ATTRS{subsystem_device}=="0x201f"
ATTRS{consistent_dma_mask_bits}=="64"
ATTRS{local_cpus}=="f"
ดูที่อุปกรณ์หลัก '/devices/pci0000:00':
เมล็ด = "pci0000:00"
ระบบย่อย==""
ไดรเวอร์ ==""
ATTRS{waiting_for_supplier}=="0"
เพื่อแก้ไขปัญหาฉันใช้ การทดสอบ udevadam
สั่งการ:
sudo control --reload-rules --log-priority=debug && ทริกเกอร์ udevadm
sudo udevadm ทดสอบ $(udevadm ข้อมูล -q เส้นทาง -n /dev/ttyACM0)
เอาท์พุท:
โปรแกรมนี้มีไว้สำหรับแก้จุดบกพร่องเท่านั้น ไม่ได้รันโปรแกรมใดๆ
ระบุโดยปุ่ม RUN อาจแสดงผลไม่ถูกต้องเนื่องจาก
ค่าบางอย่างอาจแตกต่างออกไป หรือไม่มีให้ใช้งานในการจำลองสถานการณ์
โหลดดัชนีโมดูล
ไฟล์คอนฟิกูเรชันแยกวิเคราะห์ /usr/lib/systemd/network/99-default.link
แยกวิเคราะห์ไฟล์การกำหนดค่า /usr/lib/systemd/network/73-usb-net-by-mac.link
สร้างบริบทการกำหนดค่าลิงก์
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/39-usbmuxd.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/40-usb-media-players.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/40-usb_modeswitch.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/40-vm-hotadd.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/50-apport.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/50-firmware.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/50-udev-default.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/55-dm.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/55-ippusbxd.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/56-hpmud.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-autosuspend-chromiumos.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-block.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-cdrom_id.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-crda.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-drm.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-evdev.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-fido-id.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-input-id.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-inputattach.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-libfprint-2.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-libgphoto2-6.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-libsane.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-pcmcia.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-persistent-alsa.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-persistent-input.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-persistent-storage-dm.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-persistent-storage.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-persistent-v4l.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-sensor.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-serial.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/60-tpm-udev.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/61-autosuspend-manual.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/61-gdm.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/61-gnome-settings-daemon-rfkill.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/61-persistent-storage-android.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/64-btrfs.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/64-xorg-xkb.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/65-libwacom.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/66-snapd-autoimport.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/69-cd-sensors.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/69-libmtp.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/69-wacom.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-joystick.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-mouse.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-power-switch.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-printers.rules
ไฟล์กฎการอ่าน: /etc/udev/rules.d/70-snap.snap-store.rules
ไฟล์กฎการอ่าน: /etc/udev/rules.d/70-snap.snapd.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-spice-vdagentd.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-touchpad.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-u2f.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/70-uaccess.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/71-nvidia.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/71-power-switch-proliant.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/71-seat.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/71-u-d-c-gpu-detection.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/73-seat-late.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/73-special-net-names.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/75-net-description.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/75-probe_mtd.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-cinterion-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-dell-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-dlink-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-ericsson-mbm.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-haier-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-huawei-net-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-longcheer-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-mtk-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-nokia-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-qdl-device-blacklist.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-quectel-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-sierra.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-simtech-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-telit-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-tplink-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-ublox-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-usb-device-blacklist.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-x22x-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/77-mm-zte-port-types.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/78-graphics-card.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/78-sound-card.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-debian-compat.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-drivers.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-iio-sensor-proxy.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-libinput-device-groups.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-mm-candidate.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-net-setup-link.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/80-udisks2.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/81-net-dhcp.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/84-nm-drivers.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/85-brltty.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/85-hdparm.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/85-hplj10xx.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/85-nm-unmanaged.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/85-regulatory.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-alsa-restore.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-bolt.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-console-setup.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-fwupd-devices.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-libgpod.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-libinput-fuzz-override.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-nm-thunderbolt.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/90-pulseaudio.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/95-cd-devices.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/95-dm-notify.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/95-upower-csr.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/95-upower-hid.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/95-upower-hidpp.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/95-upower-wup.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/96-e2scrub.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/97-hid2hci.rules
ไฟล์กฎการอ่าน: /usr/lib/udev/rules.d/99-systemd.rules
ไฟล์คอนฟิกูเรชัน /etc/udev/rules.d/99-usb-serial.rules ถูกทำเครื่องหมาย world-writeable โปรดลบบิตสิทธิ์การเขียนทั่วโลก ดำเนินการต่อไป
ไฟล์กฎการอ่าน: /etc/udev/rules.d/99-usb-serial.rules
คำอธิบาย inotify ไม่ถูกต้อง
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/tty/ttyACM0
DEVNAME=/dev/ttyACM0
MAJOR=166
ผู้เยาว์=0
ACTION=เพิ่ม
ระบบย่อย=tty
ID_BUS=ยูเอสบี
ID_VENDOR_ID=108ค
ID_MODEL_ID=017b
ID_PCI_CLASS_FROM_DATABASE=ตัวควบคุมบัสอนุกรม
ID_PCI_SUBCLASS_FROM_DATABASE=ตัวควบคุม USB
ID_PCI_INTERFACE_FROM_DATABASE=XHCI
ID_VENDOR_FROM_DATABASE=Robert Bosch GmbH
ID_MODEL_FROM_DATABASE=ตัวควบคุม Sunrise Point-LP USB 3.0 xHCI
ID_VENDOR=Bosch_Connected_Devices_and_Solutions_GmbH
ID_VENDOR_ENC=Bosch\x20Connected\x20Devices\x20and\x20Solutions\x20GmbH
ID_MODEL=XDK_Application
ID_MODEL_ENC=XDK\x20แอปพลิเคชัน
ID_REVISION=0000
ID_SERIAL=Bosch_Connected_Devices_and_Solutions_GmbH_XDK_Application_2496B4065B328D1E
ID_SERIAL_SHORT=2496B4065B328D1E
ID_TYPE=ทั่วไป
ID_USB_INTERFACES=:020200:0a0000:
ID_USB_INTERFACE_NUM=00
ID_USB_DRIVER=cdc_acm
ID_USB_CLASS_FROM_DATABASE=การสื่อสาร
ID_PATH=pci-0000:00:14.0-usb-0:1:1.0
ID_PATH_TAG=pci-0000_00_14_0-usb-0_1_1_0
DEVLINKS=/dev/serial/by-path/pci-0000:00:14.0-usb-0:1:1.0 /dev/serial/by-id/usb-Bosch_Connected_Devices_and_Solutions_GmbH_XDK_Application_2496B4065B328D1E-if00 /dev//dev/mydevice
ID_MM_CANDIDATE=1
TAGS=:systemd:
USEC_INITIALIZED=6250133716
ยกเลิกการโหลดดัชนีโมดูล
ยกเลิกการโหลดบริบทการกำหนดค่าลิงก์
ดูเหมือนว่าปัญหาจะอยู่ที่นี่ ฉันเดาว่า:
ไฟล์กฎการอ่าน: /etc/udev/rules.d/99-usb-serial.rules
คำอธิบาย inotify ไม่ถูกต้อง
แต่ฉันไม่รู้วิธีแก้ไขปัญหานี้ คำตอบอื่น ๆ ดูเหมือนจะไม่เป็นประโยชน์