Điểm:0

udev không tạo liên kết tượng trưng

lá cờ nr

Tôi đang cố gắng đặt tên tĩnh cho thiết bị cảm biến của mình. Tôi đã mở một tệp có tên 99-usb-serial.rules Trong /etc/udev/rules.d và viết quy tắc sau:

KERNEL=="ttyACM0",KERNELS=="1-1",SUBSYSTEM=="tty",SUBSYSTEMS=="usb",ATTRS{idVendor}=="108c", ATTRS{idProduct}=="017b", SYMLINK+="/dev/mydevice"

Điều này không tạo ra bất kỳ liên kết tượng trưng nào trong / nhà phát triển. Để kiểm tra xem lệnh của tôi có đúng hay không,

Chỉ huy:

udevadm -info --name/dev/ttyACM0 --atribute-walk

đầu ra:

Thông tin Udevadm bắt đầu với thiết bị được chỉ định bởi devpath và sau đó
đi lên chuỗi thiết bị mẹ. Nó in cho mọi thiết bị
đã tìm thấy, tất cả các thuộc tính có thể có ở định dạng khóa quy tắc udev.
Một quy tắc để khớp, có thể được tạo bởi các thuộc tính của thiết bị
và các thuộc tính từ một thiết bị mẹ duy nhất.

  nhìn vào thiết bị '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/tty/ttyACM0':
    KERNEL=="ttyACM0"
    HỆ THỐNG PHỤ ==" tty"
    NGƯỜI ĐIỀU KHIỂN ==""

  nhìn vào thiết bị mẹ '/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0':
    KERNELS=="1-1:1.0"
    HỆ THỐNG PHỤ ==" usb"
    TRÌNH ĐIỀU KHIỂN=="cdc_acm"
    ATTRS{được ủy quyền}=="1"
    ATTRS{bInterfaceSubClass}=="02"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bmCapabilities}=="2"
    ATTRS{bInterfaceClass}=="02"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{bInterfaceProtocol}=="00"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bAlternateSetting}==" 0"

  nhìn vào thiết bị mẹ '/devices/pci0000:00/0000:00:14.0/usb1/1-1':
    NHÂN =="1-1"
    HỆ THỐNG PHỤ ==" usb"
    TRÌNH ĐIỀU KHIỂN ==" usb"
    ATTRS{version}==" 2.00"
    ATTRS{devpath}=="1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{product}=="Ứng dụng XDK"
    ATTRS{devnum}=="21"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{nhà sản xuất}=="Bosch Connected Devices and Solutions GmbH"
    ATTRS{busnum}=="1"
    ATTRS{rx_lanes}=="1"
    ATTRS{tx_lanes}=="1"
    ATTRS{ltm_capable}=="không"
    ATTRS{serial}=="2496B4065B328D1E"
    ATTRS{bDeviceClass}=="02"
    ATTRS{bNumConfigurations}=="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{được ủy quyền}=="1"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{cấu hình}==""
    ATTRS{removable}=="removable"
    ATTRS{idVendor}=="108c"
    ATTRS{maxchild}=="0"
    ATTRS{speed}=="12"
    ATTRS{quirks}=="0x0"

  nhìn vào thiết bị mẹ '/devices/pci0000:00/0000:00:14.0/usb1':
    KERNELS=="usb1"
    HỆ THỐNG PHỤ ==" usb"
    TRÌNH ĐIỀU KHIỂN ==" usb"
    ATTRS{serial}=="0000:00:14.0"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{urbnum}=="577"
    ATTRS{version}==" 2.00"
    ATTRS{quirks}=="0x0"
    ATTRS{bcdDevice}=="0513"
    ATTRS{authorized_default}=="1"
    ATTRS{product}=="Bộ điều khiển máy chủ xHCI"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{devnum}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{removable}=="unknown"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{tx_lanes}=="1"
    ATTRS{cấu hình}==""
    ATTRS{busnum}=="1"
    ATTRS{speed}=="480"
    ATTRS{rx_lanes}=="1"
    ATTRS{bNumConfigurations}=="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}=="không"
    ATTRS{được ủy quyền}=="1"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{nhà sản xuất}=="Linux 5.13.0-28-chung xhci-hcd"
    ATTRS{bDeviceClass}=="09"

  nhìn vào thiết bị mẹ '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    HỆ THỐNG PHỤ =="pci"
    TRÌNH ĐIỀU KHIỂN=="xhci_hcd"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{driver_override}=="(null)"
    ATTRS{broken_parity_status}=="0"
    ATTRS{dbc}=="đã tắt"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{class}=="0x0c0330"
    ATTRS{enable}=="1"
    ATTRS{vendor}=="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"

  nhìn vào thiết bị mẹ '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    HỆ THỐNG PHỤ ==""
    TRÌNH ĐIỀU KHIỂN ==""
    ATTRS{waiting_for_supplier}=="0"

Để gỡ lỗi vấn đề, tôi đã sử dụng bài kiểm tra udevadam Chỉ huy:

sudo control --reload-rules --log-priority=debug && udevadm trigger
Sudo udevadm test $(udevadm info -q path -n /dev/ttyACM0)

đầu ra:

Chương trình này chỉ để gỡ lỗi, nó không chạy bất kỳ chương trình nào
được chỉ định bởi phím RUN. Nó có thể hiển thị kết quả không chính xác, bởi vì
một số giá trị có thể khác hoặc không có sẵn khi chạy mô phỏng.

Tải chỉ mục mô-đun
Tệp cấu hình được phân tích cú pháp /usr/lib/systemd/network/99-default.link
Tệp cấu hình được phân tích cú pháp /usr/lib/systemd/network/73-usb-net-by-mac.link
Đã tạo ngữ cảnh cấu hình liên kết.
Đọc tệp quy tắc: /usr/lib/udev/rules.d/39-usbmuxd.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/40-usb-media-players.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/40-usb_modeswitch.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/40-vm-hotadd.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/50-apport.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/50-firmware.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/50-udev-default.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/55-dm.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/55-ippusbxd.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/56-hpmud.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-autosuspend-chromiumos.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-block.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-cdrom_id.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-crda.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-drm.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-evdev.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-fido-id.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-input-id.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-inputattach.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-libfprint-2.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-libgphoto2-6.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-libsane.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-pcmcia.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-persistent-alsa.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-persistent-input.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-persistent-storage-dm.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-persistent-storage-tape.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-persistent-storage.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-persistent-v4l.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-sensor.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-serial.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/60-tpm-udev.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/61-autosuspend-manual.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/61-gdm.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/61-gnome-settings-daemon-rfkill.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/61-persistent-storage-android.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/64-btrfs.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/64-xorg-xkb.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/65-libwacom.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/66-snapd-autoimport.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/69-cd-sensors.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/69-libmtp.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/69-wacom.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/70-joystick.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/70-mouse.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/70-power-switch.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/70-printers.rules
Đọc tệp quy tắc: /etc/udev/rules.d/70-snap.snap-store.rules
Đọc tệp quy tắc: /etc/udev/rules.d/70-snap.snapd.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/70-spice-vdagentd.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/70-touchpad.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/70-u2f.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/70-uaccess.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/71-nvidia.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/71-power-switch-proliant.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/71-seat.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/71-u-d-c-gpu-detection.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/73-seat-late.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/73-special-net-names.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/75-net-description.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/75-probe_mtd.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-cinterion-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-dell-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-dlink-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-ericsson-mbm.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-fibocom-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-haier-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-huawei-net-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-longcheer-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-mtk-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-nokia-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-pcmcia-device-blacklist.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-qdl-device-blacklist.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-quectel-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-sierra.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-simtech-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-telit-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-tplink-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-ublox-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-usb-device-blacklist.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-usb-serial-adapters-greylist.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-x22x-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/77-mm-zte-port-types.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/78-graphics-card.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/78-sound-card.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/80-debian-compat.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/80-drivers.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/80-iio-sensor-proxy.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/80-libinput-device-groups.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/80-mm-candidate.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/80-net-setup-link.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/80-udisks2.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/81-net-dhcp.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/84-nm-drivers.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/85-brltty.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/85-hdparm.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/85-hplj10xx.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/85-nm-unmanaged.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/85-regulatory.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/90-alsa-restore.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/90-bolt.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/90-console-setup.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/90-fwupd-devices.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/90-libgpod.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/90-libinput-fuzz-override.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/90-nm-thunderbolt.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/90-pulseaudio.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/95-cd-devices.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/95-dm-notify.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/95-upower-csr.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/95-upower-hid.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/95-upower-hidpp.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/95-upower-wup.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/96-e2scrub.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/97-hid2hci.rules
Đọc tệp quy tắc: /usr/lib/udev/rules.d/99-systemd.rules
Tệp cấu hình /etc/udev/rules.d/99-usb-serial.rules được đánh dấu là có thể ghi trên toàn thế giới. Vui lòng xóa các bit cho phép ghi trên thế giới. Vẫn tiếp tục.
Đọc tệp quy tắc: /etc/udev/rules.d/99-usb-serial.rules
Bộ mô tả inotify không hợp lệ.
DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/tty/ttyACM0
DEVNAME=/dev/ttyACM0
CHÍNH=166
NHỎ = 0
HÀNH ĐỘNG=thêm
HỆ THỐNG CON=tty
ID_BUS=usb
ID_VENDOR_ID=108c
ID_MODEL_ID=017b
ID_PCI_CLASS_FROM_DATABASE=Bộ điều khiển bus nối tiếp
ID_PCI_SUBCLASS_FROM_DATABASE=Bộ điều khiển USB
ID_PCI_INTERFACE_FROM_DATABASE=XHCI
ID_VENDOR_FROM_DATABASE=Robert Bosch GmbH
ID_MODEL_FROM_DATABASE=Bộ điều khiển 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_Ứng dụng
ID_MODEL_ENC=XDK\x20Ứng dụng
ID_REVISION=0000
ID_SERIAL=Bosch_Connected_Devices_and_Solutions_GmbH_XDK_Application_2496B4065B328D1E
ID_SERIAL_SHORT=2496B4065B328D1E
ID_TYPE=chung
ID_USB_INTERFACES=:020200:0a0000:
ID_USB_INTERFACE_NUM=00
ID_USB_DRIVER=cdc_acm
ID_USB_CLASS_FROM_DATABASE=Thông tin liên lạc
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
THẺ=:systemd:
USEC_INITIALIZED=6250133716
Tải xuống chỉ mục mô-đun
Bối cảnh cấu hình liên kết chưa tải.

Vấn đề dường như là ở đây tôi đoán:

Đọc tệp quy tắc: /etc/udev/rules.d/99-usb-serial.rules
Bộ mô tả inotify không hợp lệ

Nhưng tôi không biết làm thế nào để khắc phục điều này. Các câu trả lời khác dường như không hữu ích.

Điểm:0
lá cờ in

Các quy tắc nên là:

KERNEL=="ttyACM*", ... , SYMLINK+="ttyUSB%n", MODE:="0666"

Hi vọng điêu nay co ich.

Điểm:0
lá cờ nr

Liên kết sim đã được tạo nhưng nó đang tạo một liên kết khác nhà phát triển thư mục trong nhà phát triển vì điều này:SYMLINK+="/dev/mydevice"

vì vậy chỉ cần loại bỏ / nhà phát triển từ BIỂU TƯỢNG tạo liên kết tượng trưng trong nhà phát triển SYMLINK+="thiết bị của tôi"

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.