LXCコンテナで特権Ubuntu 16.04ゲストを実行するFedora 26ホストがあります。私の目標は、/dev/ttyACM0
LXCゲストからシリアルデバイス()に接続することです。
次のコマンドを使用してゲストOSを作成しました。
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
。