几年前,我在 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:
- 将 micro:bit 连接到 Windows 10 机器后,m:b 也无法工作。但出现一条消息,提示我必须升级固件。我按照 micro:bit 网站提供的说明进行了操作。现在它可以在 Windows 上运行,但在 Chromium (snap) 和 Ubuntu Mate 上仍然无法运行。
- 来自 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 正常工作。