WebUSB 无法工作,正在连接到 micro:bit

WebUSB 无法工作,正在连接到 micro:bit

几年前,我在 Ubuntu 16.04 上使用过 micro:bit。没问题。大约 6 个月前,我将机器和操作系统升级到了 Ubuntu Mate 20.04。现在我想再次使用我的 micro:bit。但我无法连接到它。

当我启动 Python 编辑器并想要连接到 micro:bit 时,我看到了DAPLink CMSIS-DAP-Paired

当我选择它(我认为它应该是别的)并单击“连接”时,我得到:

WebUSB Error 
Please reconnect your micro:bit and try again. 
Error: Access denied.

显然,该问题已在网站上公布:https://support.microbit.org/support/solutions/articles/19000105428-webusb-troubleshooting

  • 如果 Chromium 是从 snap store(Ubuntu 软件商店中的默认商店)安装的,它将无法访问 WebUSB 设备。

这让我想到了 Chromium 人员的一个错误报告:https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1780678 该错误报告和解决方案的日期是 2019 年,据说解决方案是:

snap refresh chromium --channel=candidate/raw-usb 
snap connect chromium:raw-usb

尽管我拥有较新的 Chromium 版本,我仍执行了上述几行,但并没有改变任何东西。

现在我不知道下一步该做什么。我对 snap pack 还算满意,但如果它们提供的功能较少,那还有什么用呢?

一些额外的信息:chrome://version

  • 88.0.4324.150(官方版本)snap(64 位)
  • 修订e6c2a846b660e61f059daee2c46217af42913240-refs/分支头/4324@{#2103}
  • 操作系统 Linux
  • JavaScript V8 8.8.278.15
  • 用户代理 Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML,如 Gecko) Chrome/88.0.4324.150 Safari/537.36
  • 命令行/snap/chromium/1479/usr/lib/chromium-browser/chrome --password-store=basic --flag-switches-begin --flag-switches-end --origin-trial-disabled-features=SecurePaymentConfirmation
  • 可执行文件路径 /snap/chromium/1479/usr/lib/chromium-浏览器/chrome
  • 轮廓路径/主页/jan/snap/chromium/common/chromium/默认

更新日期:2021/02/24:

  1. 将 micro:bit 连接到 Windows 10 机器后,m:b 也无法工作。但出现一条消息,提示我必须升级固件。我按照 micro:bit 网站提供的说明进行了操作。现在它可以在 Windows 上运行,但在 Chromium (snap) 和 Ubuntu Mate 上仍然无法运行。
  2. 来自 m:b 网站的另一件事:我必须 - 对于“某些发行版,例如 Ubuntu...
  • 在 /etc/udev/rules.d/ 中创建一个具有特定内容的文件 50-microbit.rules。(在网站上)
  • 然后我必须重新加载规则:udevadm control --reload-rules
  • 重新启动并重试。

但那没有用。

今天,我在 Windows 机器上试用了 m:b,配对成功,一切正常。我又在 Ubuntu Mate 上试用了一次,现在也成功了!

我不知道为什么,但事实确实如此,所以我的问题解决了。

答案1

这似乎也是最近google-chrome-stable安装了官方版本的 Ubuntu 20.04.4 LTS 上存在的一个持续性问题:

$ lsb_release -a
Description:    Ubuntu 20.04.4 LTS

$ dpkg -l google-chrome-stable
ii  google-chrome-stable 99.0.4844.51-1 amd64        The web browser from Google

说。chrome://device-log/[11:08:01] Failed to open /dev/bus/usb/003/002: Access denied (insufficient permissions)

根据https://support.microbit.org/support/solutions/articles/19000105428-webusb-troubleshooting你可以用新的 udev 规则解决这个问题:

# Create rule
sudo cat << EOF >> /etc/udev/rules.d/50-microbit.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="0d28", MODE="0664", GROUP="plugdev"
EOF

# Add current user to plugdev group
sudo usermod -a -G plugdev $USER

# Reload udev rules
sudo udevadm control --reload-rules

然后重新启动 Chrome 并重新连接您的 micro:bit。

答案2

根据https://bugs.launchpad.net/ubuntu/+source/chromium-browser/+bug/1780678就我的情况而言,我找到了我的 microbit 的设备地址/deb/bus/usb/001/004

我改变了权限:sudo chmod a+rwx -R /dev/bus/usb/001/004,然后我就可以连接了。

答案3

在 Ubuntu 22.04 LTS 中,Snap 的 Chromium 是默认设置,无需费力更改默认设置,只需安装 Google 的“常规”Chrome 即可apt 此外@timo.rieber 的回答使得 webusb 正常工作。

相关内容