WebSerial API 设备无法在 Ubuntu 上打开端口

Posted

技术标签:

【中文标题】WebSerial API 设备无法在 Ubuntu 上打开端口【英文标题】:WebSerial API Device cannot open port on Ubuntu 【发布时间】:2020-07-27 09:43:48 【问题描述】:

在 Windows 和 ChromeOS 上运行后,我尝试在 Ubuntu 上使用 WebSerial API。 当我尝试连接设备时,出现此错误:DOMException: Failed to open serial port. Error

我创建了一个 udev 规则,但它不起作用。

SUBSYSTEM=="tty", ATTRidVendor=="0eb8", ATTRidProduct=="f010", ATTRSserial=="0000:00:14.0", SYMLINK+="ttyMettler0"

设备信息:

looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-6':
    KERNEL=="1-6"
    SUBSYSTEM=="usb"
    DRIVER=="usb"
    ATTRidProduct=="f010"
    ATTRbNumConfigurations=="1"
    ATTRavoid_reset_quirk=="0"
    ATTRconfiguration==""
    ATTRbNumInterfaces==" 2"
    ATTRltm_capable=="no"
    ATTRquirks=="0x0"
    ATTRmanufacturer=="METTLER TOLEDO"
    ATTRserial=="67022056LW"
    ATTRspeed=="12"
    ATTRurbnum=="10"
    ATTRbusnum=="1"
    ATTRtx_lanes=="1"
    ATTRbConfigurationValue=="1"
    ATTRdevnum=="5"
    ATTRbDeviceSubClass=="00"
    ATTRbmAttributes=="c0"
    ATTRidVendor=="0eb8"
    ATTRversion==" 1.10"
    ATTRauthorized=="1"
    ATTRmaxchild=="0"
    ATTRproduct=="BCA-222-60U-1301-120 "
    ATTRbcdDevice=="100f"
    ATTRbDeviceClass=="02"
    ATTRrx_lanes=="1"
    ATTRbMaxPacketSize0=="8"
    ATTRbMaxPower=="500mA"
    ATTRdevpath=="6"
    ATTRremovable=="removable"
    ATTRbDeviceProtocol=="00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRSbMaxPower=="0mA"
    ATTRSversion==" 2.00"
    ATTRSdevpath=="0"
    ATTRSbusnum=="1"
    ATTRSbConfigurationValue=="1"
    ATTRSremovable=="unknown"
    ATTRSauthorized_default=="1"
    ATTRSserial=="0000:00:14.0"
   

我的 udev 正确吗?有没有人有类似的问题?

【问题讨论】:

请将 udev 规则放在问题本身而不是屏幕截图中 检查udev规则是否真正生效,运行Chrome的用户是否能够打开设备节点。 @Jon 我添加了更多细节 @ReillyGrant 我添加了更多细节。 runnig 用户是 admin 并且在所有组中 当您在 Chrome 中选择端口时,它应该会列出设备名称,例如“ttyUSB0”。如果您运行ls -l /dev/ttyUSB0,是否设置了文件的所有权和权限,以便运行 Chrome 的用户可以访问它? 【参考方案1】:

在我的例子中,这个问题是通过将我的用户添加到带有sudo adduser [username] dialout 的“拨出”组来解决的(考虑到机器应该在那之后重新启动)然后它就可以工作了!

【讨论】:

以上是关于WebSerial API 设备无法在 Ubuntu 上打开端口的主要内容,如果未能解决你的问题,请参考以下文章

ubunt 安装 yum出现 ubuntu 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)”的方法

无法在 Google 地图位置点按 Kitkat 设备的自动完成 API 问题

无法定期在 IOS 中进行后台 API 调用以推送应用程序中从 BLE 设备接收的数据

Flutter 物理 iOS 设备无法向我的本地 asp.net 服务器发出 api 请求

.NET 与 Windows RT 蓝牙 LE API - 重新启动 Windows 后无法读取或写入设备

android emulator sdk 10 api 29 重新挂载并重启后无法启动