无法发现 USB 设备端口?

无法发现 USB 设备端口?

我正在尝试找到一个通过 USB 插入电脑的微控制器设备,理想情况下我想打开它所连接的端口。问题是我无法在 /dev/tty* 下找到该设备的名称

当我跑步时lsusb我得到了这个

Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 0557:2419 ATEN International Co., Ltd Virtual mouse/keyboard device
Bus 001 Device 006: ID 0557:7000 ATEN International Co., Ltd Hub
Bus 001 Device 005: ID 1366:0101 SEGGER J-Link PLUS
Bus 001 Device 004: ID 0a5c:21e8 Broadcom Corp. BCM20702A0 Bluetooth 4.0
Bus 001 Device 003: ID 046d:c08b Logitech, Inc. G502 SE HERO Gaming Mouse
Bus 001 Device 002: ID 046d:c335 Logitech, Inc. G910 Orion Spectrum Mechanical Keyboard
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

我正在寻找的设备是 Bus 001 Device 005: ID 1366:0101 SEGGER J-Link PLUS

另外,在启动时,我可以看到用于创建并运行 udev 规则的设备的信息sudo dmesg | grep usb

[    3.569824] usb 1-4: new full-speed USB device number 5 using xhci_hcd
[    3.723556] usb 1-4: New USB device found, idVendor=1366, idProduct=0101, bcdDevice= 1.00
[    3.723569] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[    3.723576] usb 1-4: Product: J-Link
[    3.723581] usb 1-4: Manufacturer: SEGGER
[    3.723586] usb 1-4: SerialNumber: 000660015877

这是我的 udev 规则

SUBSYSTEM=="tty", ATTRS{idVendor}=="1366", ATTRS{idProduct}=="0101", ATTRS{serial}=="000660015877", SYMLINK+="segger"

但是它不起作用,我仍然找不到它作为 tty 设备。此外,在运行udevadm monitor并插入设备时,我得到了这个

KERNEL[896.791227] add      /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb)
KERNEL[896.792767] add      /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0 (usb)
KERNEL[896.792897] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb)
UDEV  [896.800175] add      /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb)
UDEV  [896.803020] add      /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0 (usb)
UDEV  [896.811772] bind     /devices/pci0000:00/0000:00:14.0/usb1/1-4 (usb)

然后我知道设备的位置,当我运行时,udevadm info /dev/bus/usb/001/008这就是我得到的信息

P: /devices/pci0000:00/0000:00:14.0/usb1/1-4
N: bus/usb/001/008
L: 0
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-4
E: DEVNAME=/dev/bus/usb/001/008
E: DEVTYPE=usb_device
E: DRIVER=usb
E: PRODUCT=1366/101/100
E: TYPE=0/0/0
E: BUSNUM=001
E: DEVNUM=008
E: MAJOR=189
E: MINOR=7
E: SUBSYSTEM=usb
E: USEC_INITIALIZED=896799819
E: ID_VENDOR=SEGGER
E: ID_VENDOR_ENC=SEGGER
E: ID_VENDOR_ID=1366
E: ID_MODEL=J-Link
E: ID_MODEL_ENC=J-Link
E: ID_MODEL_ID=0101
E: ID_REVISION=0100
E: ID_SERIAL=SEGGER_J-Link_000660015877
E: ID_SERIAL_SHORT=000660015877
E: ID_BUS=usb
E: ID_USB_INTERFACES=:ffffff:
E: ID_VENDOR_FROM_DATABASE=SEGGER
E: ID_MODEL_FROM_DATABASE=J-Link PLUS
E: ID_PATH=pci-0000:00:14.0-usb-0:4
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_4
E: ID_FOR_SEAT=usb-pci-0000_00_14_0-usb-0_4
E: TAGS=:seat:
E: CURRENT_TAGS=:seat:

目前显示的是 tty,理想情况下我应该寻找 ttyUSB0,但它没有显示,也没有任何东西指向它可能是哪个 tty

tty tty10 tty13 tty16 tty19 tty21 tty24 tty27 tty3 tty32 tty35 tty38 tty40 tty43 tty46 tty49 tty51 tty54 tty57 tty6 tty62 tty8 ttyS0 ttyS11 ttyS14 ttyS17 ttyS2 ttyS22 ttyS25 ttyS28 ttyS30 ttyS5 ttyS8 tty0 tty11 tty14 tty17 tty2 tty22 tty25 tty28 tty30 tty33 tty36 tty39 tty41 tty44 tty47 tty5 tty52 tty55 tty58 tty60 tty63 tty9 ttyS1 ttyS12 ttyS15 ttyS18 ttyS20 ttyS23 ttyS26 ttyS29 ttyS31 ttyS6 ttyS9 tty1 tty12 tty15 tty18 tty20 tty23 tty26 tty29 tty31 tty34 tty37 tty4 tty42 tty45 tty48 tty50 tty53 tty56 tty59 tty61 tty7 ttyprintk ttyS10 ttyS13 ttyS16 ttyS19 ttyS21 ttyS24 ttyS27 ttyS3 ttyS4 ttyS7

任何指导都会非常有帮助,谢谢!

答案1

sudo journalctl --follow您可以在连接设备时通过观察来找到设备名称。或者ls -1 /dev >dev.before,连接设备,等待 10 秒,ls -1 /dev >dev.after;diff dev.{before,after}

找到设备名称后,sudo journalctl /dev/devicename将显示更多信息。

相关内容