使用在 Flatpak 中运行的应用程序访问串行端口

Accessing Serial Ports with an Application Runs in Flatpak

我最近在 Ubuntu 16.04 LTS 上使用 Flatpak 将我的 IDE 从旧版本 5.

更新为 Monodevelop 6

我有一个与串行端口交互的应用程序,它基本上是一个 USB/RS232 适配器,将设备连接到我的计算机。

当我在 Monodevelop5 中调试应用程序时,访问 USB 端口 (/dev/ttyUSB0) 没有问题。但是,我使用 Monodevelop6 访问的设备目录 (/dev/) 与我在 Linux 中访问的完全不同,并且该文件夹中没有 ttyUSB0。

我相信这是因为 Flatpak 在沙盒中运行应用程序。那么,如果是这个原因,我该如何访问串口呢?

谢谢。

很可能是因为 Flatpak 阻止了对串行设备的访问。

不幸的是,目前我认为没有办法专门为串行设备提供访问权限,因此您需要为所有设备提供访问权限:

$ flatpak run --device=all com.xamarin.MonoDevelop

这实际上是将主机的 /dev 安装在沙箱中,因此应用程序可以完全访问它。

这是沙盒中的一个相当大的漏洞,但有时在所有权限处理内容实现之前都需要它。