Linux snap confinement - 访问 USB 设备

Linux snap confinement - 访问 USB 设备

目前,我正在努力从受限的 snap 环境连接到 USB 设备,不知道如何解决这个问题,但仍然在学习 snap 限制/udev 规则等。

简而言之,这是我已经尝试并验证过的:

  • raw-usb slot-plug 连接 snapd 和开发的 snap (使用 snap 接口验证)
  • USB 设备通过库进行连接,可以通过 readelf 查看库的依赖关系:

库依赖项

  • 满足这些依赖关系,并且二进制文件在经典 snap 环境中成功运行,并有来自二进制文件的控制台输出:

控制台回复

  • 从 snap 环境运行此二进制文件时,它也会执行(因此没有依赖问题),但不会拾取 USB 设备。

  • 但是,插入后设备确实注册为 /dev:

注册设备

  • 调用 lsusb 时使用 ID:

设备ID

  • 为设备指定了一个 udev 规则文件。通过在经典 snap 环境中实现设备的接口二进制文件,包含这些 udev 规则并不重要。但是,将以下行粘贴到创建的 snap 规则文件 (/etc/udev/rules.d/.rules) 中并重新启动系统,但没有任何效果。:

ENV{hotplugscript}="/etc/.mplab_ide/mchplinusbdevice"

动作!=“添加”,GOTO=“check_remove”子系统=“usb_device”,GOTO=“check_add”子系统!=“usb”,GOTO=“rules_end”

标签="check_add"

ATTR{idVendor}=="04d8", MODE="666", RUN+="%E{hotplugscript} 添加" GOTO="rules_end"

标签="check_remove"

ACTION=="删除", RUN+="%E{hotplugscript} 删除 %E{PRODUCT}"

标签="规则结束"

但是例如,也找不到目录/etc/.mplab_ide/mchplinusbdevice并且不确定一切意味着什么以及是否正确实施。

希望我的解释有意义。任何建议或额外的调试技巧都将不胜感激。不知道如何进一步解决这个问题

相关内容