You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04下如何查找RFID阅读器的USB端口?

RFID阅读器端口定位及pyembedded适配问题

在Ubuntu 22.04系统中使用pyembedded开发Python程序,需要读取RFID阅读器返回的卡片ID。pyembedded要求通过rfid = RFID(port='{USB}', baud_rate=9600)指定设备端口,但始终无法找到正确的USB端口路径。

已尝试的操作与获取的信息

  1. udevadm info输出:
    执行sudo udevadm info --query=all --name=/dev/input/event16得到以下内容:
sudo udevadm info --query=all  --name=/dev/input/event16
P: /devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2518:6022.0003/input/input21/event16
N: input/event16
L: 0
S: input/by-id/usb-NSCCN_wCopy_Smart_Reader-event-if00
S: input/by-path/pci-0000:00:14.0-usb-0:2:1.0-event
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2:1.0/0003:2518:6022.0003/input/input21/event16
E: DEVNAME=/dev/input/event16
E: MAJOR=13
E: MINOR=80
E: SUBSYSTEM=input
E: USEC_INITIALIZED=1191291401
E: ID_INPUT=1
E: ID_VENDOR=NSCCN
E: ID_VENDOR_ENC=NSCCN
E: ID_VENDOR_ID=2518
E: ID_MODEL=wCopy_Smart_Reader
E: ID_MODEL_ENC=wCopy\x20Smart\x20Reader
E: ID_MODEL_ID=6022
E: ID_REVISION=0103
E: ID_SERIAL=NSCCN_wCopy_Smart_Reader
E: ID_TYPE=hid
E: ID_BUS=usb
E: ID_USB_INTERFACES=:030000:
E: ID_USB_INTERFACE_NUM=00
E: ID_USB_DRIVER=usbhid
E: ID_PATH=pci-0000:00:14.0-usb-0:2:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_2_1_0
E: LIBINPUT_DEVICE_GROUP=3/2518/6022:usb-0000:00:14.0-2
E: DEVLINKS=/dev/input/by-id/usb-NSCCN_wCopy_Smart_Reader-event-if00 /dev/input/by-path/pci-0000:00:14.0-usb-0:2:1.0-event
  1. 自定义udev规则:
    添加了针对该RFID设备的udev规则:
SUBSYSTEM=="USB", ATTRS{idVendor}=="2518", ATTRS{idProduct}=="6022", MODE="0660", GROUP="plugdev"
  1. usb.core获取的设备完整信息:
DEVICE ID 2518:6022 on Bus 001 Address 007 =================
 bLength                :   0x12 (18 bytes)
 bDescriptorType        :    0x1 Device
 bcdUSB                 :  0x110 USB 1.1
 bDeviceClass           :    0x0 Specified at interface
 bDeviceSubClass        :    0x0
 bDeviceProtocol        :    0x0
 bMaxPacketSize0        :   0x40 (64 bytes)
 idVendor               : 0x2518
 idProduct              : 0x6022
 bcdDevice              :  0x103 Device 1.03
 iManufacturer          :    0x1 NSCCN
 iProduct               :    0x2 wCopy Smart Reader
 iSerialNumber          :    0x3 
 bNumConfigurations     :    0x1
  CONFIGURATION 1: 400 mA ==================================
   bLength              :    0x9 (9 bytes)
   bDescriptorType      :    0x2 Configuration
   wTotalLength         :   0x29 (41 bytes)
   bNumInterfaces       :    0x1
   bConfigurationValue  :    0x1
   iConfiguration       :    0x0 
   bmAttributes         :   0xc0 Self Powered
   bMaxPower            :   0xc8 (400 mA)
    INTERFACE 0: Human Interface Device ====================
     bLength            :    0x9 (9 bytes)
     bDescriptorType    :    0x4 Interface
     bInterfaceNumber   :    0x0
     bAlternateSetting  :    0x0
     bNumEndpoints      :    0x2
     bInterfaceClass    :    0x3 Human Interface Device
     bInterfaceSubClass :    0x0
     bInterfaceProtocol :    0x0
     iInterface         :    0x0 
      ENDPOINT 0x81: Interrupt IN ==========================
       bLength          :    0x7 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :   0x81 IN
       bmAttributes     :    0x3 Interrupt
       wMaxPacketSize   :   0x40 (64 bytes)
       bInterval        :    0x1
      ENDPOINT 0x2: Interrupt OUT ==========================
       bLength          :    0x7 (7 bytes)
       bDescriptorType  :    0x5 Endpoint
       bEndpointAddress :    0x2 OUT
       bmAttributes     :    0x3 Interrupt
       wMaxPacketSize   :   0x40 (64 bytes)
       bInterval        :    0x1
  1. 尝试指定端口后的报错:
    运行rfid = RFID(port='/dev/bus/usb/001/009', baud_rate=9600)时,抛出错误:
serial.serialutil.SerialException: Could not configure port: (25, 'Inappropriate ioctl for device')

核心疑问

  • 上述udevadm info的输出中是否包含设备可用的USB端口路径?
  • 到底应该从何处获取该RFID设备的正确端口路径,以适配pyembedded的RFID初始化?

内容的提问来源于stack exchange,提问作者Razvan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 05:50:27