搜索

[单片机芯片] WCH-LINK 在Linux 环境下发现不了

[复制链接]
5195|9
手机看帖
扫描二维码
随时随地手机跟帖
zsm123|  楼主 | 2021-9-30 21:41 | 显示全部楼层 |阅读模式
环境: Linux ( ubuntu, debian 都试验过)
硬件: WCH-Link, 现工作在 arm 模式下(蓝灯亮)

问题:"pyocd list" 可以在 windows 下正常发现 wch link, 但是在 Linux 下, 却无法正常适用。报告如下问题,
$ pyocd list -v
0000252:DEBUG:session:Project directory: /home/myhome
0000282:DEBUG:pyusb_backend:Error accessing USB device (VID=1a86 PID=8011): The device has no langid (permission issue, no string descriptors supported or device error)
0000282:DEBUG:pyusb_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=80ee PID=0021). This can probably be remedied with a udev rule. See <https://github.com/pyocd/pyOCD/tree/master/udev> for help.
0000303:DEBUG:pyusb_v2_backend:[Errno 13] Access denied (insufficient permissions) while trying to interrogate a USB device (VID=80ee PID=0021). This can probably be remedied with a udev rule. See <https://github.com/pyocd/pyOCD/tree/master/udev> for help.
0000309:DEBUG:pemicro:Opened PEMicro library: /usr/local/lib/python3.7/dist-packages/pypemicro/libs/Linux/unitacmp-64.so
No available debug probes are connected


我已经执行过 MRS 目录下的“beforeinstall/start.sh”, 也就意味着设备应该可以被系统发现。

这个大概是什么问题呢?

使用特权

评论回复
zsm123|  楼主 | 2021-10-3 19:16 | 显示全部楼层
沁恒的人在不?

我在如下页面中找到类似的问题,
https://github.com/pyocd/pyOCD/issues/1121

但是我的问题好像还不是这样,我机器上的输出如下,
$ python3 -c "import pprint, hid ; pprint.pprint(hid.enumerate())"
[{'interface_number': 0,
  'manufacturer_string': 'VirtualBox',
  'path': b'/dev/hidraw0',
  'product_id': 33,
  'product_string': 'USB Tablet',
  'release_number': 256,
  'serial_number': '',
  'usage': 0,
  'usage_page': 0,
  'vendor_id': 33006},
{'interface_number': 2,
  'manufacturer_string': 'wch.cn',
  'path': b'/dev/hidraw1',
  'product_id': 32785,
  'product_string': 'WCH-Link',
  'release_number': 513,
  'serial_number': '0001A0000001',
  'usage': 0,
  'usage_page': 0,
  'vendor_id': 6790}]


好像这个 path 中也不包含 cmsis-dap 字样。 而且,  usage, usage_page 都是0.

沁恒, 能够不能够及时修复这个问题?

或者, 把源码开放一下?

使用特权

评论回复
zsm123|  楼主 | 2021-10-3 19:31 | 显示全部楼层
另外, Windows 下打印的信息如下,

 {'interface_number': 2,
  'manufacturer_string': 'wch.cn',
  'path': b'\\\\?\\hid#vid_1a86&pid_8011&mi_02#7&36b529fd&0&0000#{4d1e55b2-f16f'
          b'-11cf-88cb-001111000030}',
  'product_id': 32785,
  'product_string': 'WCH CMSIS-DAP',
  'release_number': 513,
  'serial_number': '0001A0000001',
  'usage': 1,
  'usage_page': 65280,
  'vendor_id': 6790},



疑问: Windows 环境下报的信息和 Linux 下报的信息怎么不同?

使用特权

评论回复
wonderfullook| | 2021-10-4 16:18 | 显示全部楼层
zsm123 发表于 2021-10-3 19:31
另外, Windows 下打印的信息如下,

现在是假期时间。等到收假后再等等回复

使用特权

评论回复
zsm123|  楼主 | 2021-10-8 12:44 | 显示全部楼层
wonderfullook 发表于 2021-10-4 16:18
现在是假期时间。等到收假后再等等回复

多谢!

更新下, 上面的Linux 的输出是在 virtualbox VM上的。 下面给出一个真实 Linux 物理机的输出,Ubuntu 20.04.3 LTS,
$ python3 -c "import pprint, hid ; pprint.pprint(hid.enumerate())"
[{'interface_number': 2,
  'manufacturer_string': 'wch.cn',
  'path': b'/dev/hidraw0',
  'product_id': 32785,
  'product_string': 'WCH-Link',
  'release_number': 513,
  'serial_number': '0001A0000001',
  'usage': 57919,
  'usage_page': 560,
  'vendor_id': 6790}]

使用特权

评论回复
zsm123|  楼主 | 2021-10-8 13:15 | 显示全部楼层
本帖最后由 zsm123 于 2021-10-8 13:28 编辑

之前实验的固件版本是 2.1, 现在切换到了1.2, 现象一样, kernel log 如下
[693466.244338] usb 1-1.1.1: new full-speed USB device number 25 using ehci-pci
[693466.475020] usb 1-1.1.1: New USB device found, idVendor=1a86, idProduct=8011, bcdDevice= 1.02
[693466.475028] usb 1-1.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[693466.475031] usb 1-1.1.1: Product: WCH-Link
[693466.475034] usb 1-1.1.1: Manufacturer: wch.cn
[693466.475036] usb 1-1.1.1: SerialNumber: 0001A0000001
[693466.475877] cdc_acm 1-1.1.1:1.0: ttyACM0: USB ACM device
[693466.480197] hid-generic 0003:1A86:8011.000B: hiddev0,hidraw0: USB HID v1.00 Device [wch.cn WCH-Link] on usb-0000:00:1a.0-1.1.1/input2

更多 log,
$ lsusb -d 0x1a86:0x8011 -vv

Bus 001 Device 026: ID 1a86:8011 QinHeng Electronics
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          239 Miscellaneous Device
  bDeviceSubClass         2
  bDeviceProtocol         1 Interface Association
  bMaxPacketSize0         8
  idVendor           0x1a86 QinHeng Electronics
  idProduct          0x8011
  bcdDevice            1.02
  iManufacturer           1 wch.cn
  iProduct                2 WCH-Link
  iSerial                 3 0001A0000001
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x006b
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         2
      bFunctionClass          2 Communications
      bFunctionSubClass       2 Abstract (modem)
      bFunctionProtocol       1 AT-commands (v.25ter)
      iFunction               4 WCH CMSIS-DAP
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol      0
      iInterface              4 WCH CMSIS-DAP
      CDC Header:
        bcdCDC               1.10
      CDC Call Management:
        bmCapabilities       0x01
          call management
        bDataInterface          1
      CDC ACM:
        bmCapabilities       0x02
          line coding and serial state
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      0
      bInterfaceProtocol      0
      iInterface              6 (error)
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.00
          bCountryCode            0 Not supported
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      33
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
can't get debug descriptor: Resource temporarily unavailable
cannot read device status, Resource temporarily unavailable (11)


BTW, 这个帖子的标题应该要改一下, 应该说 pyocd 发现不了 wch link.


使用特权

评论回复
qq172179| | 2021-10-8 15:04 | 显示全部楼层
UDEV规则问题吧   可以看看pyocd对UDEV规则的要求

使用特权

评论回复

评论

zsm123 2021-10-8 16:17 回复TA
已经添加了规则了。应该已经 work了。 [code] /etc/udev/rules.d$ cat 50-wchlink.rules # wch link ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="8011", MODE:="0666", GROUP="plugdev", TAG+="uaccess" [/code] 
zsm123|  楼主 | 2021-10-8 16:18 | 显示全部楼层
本帖最后由 zsm123 于 2021-10-8 17:11 编辑
qq172179 发表于 2021-10-8 15:04
UDEV规则问题吧   可以看看pyocd对UDEV规则的要求

已经添加了规则了, 规则应该已经 work, 但是问题一直存在。 如果 不加规则, 用 sudo 应该也可以的。 sudo 现在打印出的错误信息一样。
/etc/udev/rules.d$ cat 50-wchlink.rules
# wch link

ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="8011", MODE:="0666", GROUP="plugdev", TAG+="uaccess"

使用特权

评论回复
weifeng90| | 2021-10-9 08:16 | 显示全部楼层
对Linux不熟悉

使用特权

评论回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

本版热帖

本版活跃用户

优质原创写原创,赢大奖

编辑推荐

  • 1 呐咯密密 得到打赏 ¥310.00
  • 2 qbwww 得到打赏 ¥265.00
  • 3 yanzhengxin1 得到打赏 ¥200.00
  • 4 full_stack 得到打赏 ¥100.00
  • 5 laocuo1142 得到打赏 ¥55.00
  • 6 zhangjiantao 得到打赏 ¥50.00
  • 7 小叶三千 得到打赏 ¥50.00
  • 8 cjseng 得到打赏 ¥50.00
  • 9 改名了 得到打赏 ¥30.00
  • 10 HXM1593 得到打赏 ¥15.00
在线客服 快速回复 返回顶部 返回列表