无法在 ubuntu 20.04 上的 chromium 118.0.5993.88 (snap) 中列出具有 Web 串行 API 的串行端口

Could not list serial ports with web serial API in chromium 118.0.5993.88 (snap) on ubuntu 20.04

提问人:micr0tech 提问时间:10/26/2023 最后编辑:micr0tech 更新时间:10/31/2023 访问量:75

问:

我想在 chromium(版本 118.0.5993.88,Ubuntu 20.04)上与 esp32(通过 USB 连接到我的 PC)和测试网站建立串行连接,但 chromium 上的串行连接列表是空的(在谷歌浏览器上,列表显示每个串行端口)

这是我使用的测试html脚本:

<!DOCTYPE html>
<html>
<head>
  <title>Serial Ports List</title>
</head>
<body>

<h1>Serial Ports Test</h1>

<!-- Button to list available serial ports -->
<button id="listPortsButton">List Serial Ports</button>

<script>
  // Function to list available serial ports
  async function listSerialPorts() {
    try {
      // Request access to serial ports
      const availablePorts = await navigator.serial.getPorts();

      // Log each port
      availablePorts.forEach(port => {
        console.log('Port:', port);
      });
    } catch (error) {
      console.error('There was an error listing serial ports:', error);
    }
  }

  // Add click event listener to button
  document.querySelector("#listPortsButton").addEventListener("click", 
async () => {
    try {
      // Request a port from the user
      const port = await navigator.serial.requestPort();
      console.log('User-selected port:', port);

      // Now list all available ports (including the selected one)
      listSerialPorts();
    } catch (err) {
      console.error('There was an error selecting a port:', err);
    }
  });
</script>

</body>
</html>

[使用 Google Chrome 执行脚本]https://i.stack.imgur.com/NerEz.png)

[使用 Chromium 执行脚本] (https://i.stack.imgur.com/XehdH.png)

[使用 Chromium 在调试控制台中打开的脚本]https://i.stack.imgur.com/F3w3N.png)

系统信息:

1. 2.

我已经用谷歌浏览器尝试了该脚本(如上所示),它在那里工作,我还重新安装了 chromium 以检查我的 chromium 安装是否存在问题。 我想让脚本像在谷歌浏览器中一样工作,需要帮助。

我还检查了arduino中的串行连接,串行端口显示在列表中,我可以毫无问题地连接到它并打开串行监视器。用户也位于有权访问串行端口的正确组中。

编辑:

  • 我尝试使用以下命令:sudo snap connect chromium:raw-usb - 仍然不起作用

  • 用户也在组拨出中,以获得正确的权限

google-chrome ubuntu arduino 串口 chromium

评论


答:

0赞 ChipChop Gizmo 10/29/2023 #1

我记得几年前遇到过这样的情况,我只是看了一些旧笔记,这与启用与 Chromium 的 USB 连接有关吗?

sudo snap connect chromium:raw-usb

我不知道这是否有任何帮助,或者当时是否特定于我的系统?

最近,我现在倾向于坚持使用 Node.js 与我的 ESP 进行串行通信,但这是一个更复杂的过程,如果您可以通过浏览器做到这一点,这是一个很好的快捷方式。

祝你好运

评论

0赞 micr0tech 10/30/2023
我忘了说我已经试过了。但感谢您的回答
0赞 micr0tech 10/31/2023 #2

我解决了这个问题。问题来自snap。我安装了带有 snap 的 chromium,但 snap 应用程序似乎受到限制,所以我不得不将这两行添加到 chromium snap 配置文件中 位于:/var/lib/snapd/apparmor/profile/snap.chromium.chromium

@{PROC}/tty/drivers r,

/run/udev/data/** r,