从 LXC guest 访问串行设备

从 LXC guest 访问串行设备

我有一台 Fedora 26 主机,在 LXC 容器中运行特权 Ubuntu 16.04 来宾。我的目标是/dev/ttyACM0从 LXC guest连接到串行设备 ( )。

我使用以下命令创建了来宾操作系统: sudo lxc-create -t download -n ubuntu-c -- -d ubuntu -r xenial -a amd64

在主机操作系统中,设备显示为: ls -la /dev/ttyACM0 crw-rw----. 1 root dialout 166, 0 Aug 18 14:52 /dev/ttyACM0

启动容器后,我没有看到/dev/ttyACM0列出的内容,因此我在主机上运行以下命令: $sudo lxc-device -n ubuntu-c add /dev/ttyACM0

然后该设备就会出现/dev在容器下方。

我尝试打开设备,minicom但出现权限错误。因此,我尝试cgroups通过在主机上运行命令 将设备添加到容器的设置中: $ sudo lxc-cgroup -n ubuntu-c devices.allow "c 166:* rwm"

仍然存在权限错误,因此我还尝试更具体地说明: $ sudo lxc-cgroup -n ubuntu-c devices.allow "c 166:0 rwm"

并验证该命令是否适用于: $ sudo lxc-cgroup -n ubuntu-c devices.list c *:* m b *:* m c 1:3 rwm c 1:5 rwm c 1:7 rwm c 5:0 rwm c 5:1 rwm c 5:2 rwm c 1:8 rwm c 1:9 rwm c 136:* rwm c 10:229 rwm c 254:0 rm c 10:200 rwm c 10:228 rwm c 10:232 rwm c 166:* rwm c 166:0 rwm

但我仍然无法访问该设备。我应该说我以 root 身份启动了容器,并且在尝试访问设备时我是容器内的 root 用户。我也尝试添加lxc.cgroup.devices.allow = c 166:* rwm到文件/var/lib/lxc/ubuntu-c/config但没有成功。

相关内容