我有一台 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
但没有成功。