LXDコンテナにUSBを表示する方法

LXDコンテナにUSBを表示する方法

私は初めてLXD Conatinersに触れました。ホストUbuntu 16.04マシンが実行中でコンテナがあります。

root@ubuntu-blade1:/etc/udev/rules.d# lxc list
+-------------+---------+----------------------+------+------------+-----------+
|    NAME     |  STATE  |         IPV4         | IPV6 |    TYPE    | SNAPSHOTS |
+-------------+---------+----------------------+------+------------+-----------+
| nish-ubuntu | RUNNING | 10.20.186.185 (eth0) |      | PERSISTENT | 0         |
+-------------+---------+----------------------+------+------------+-----------+
root@ubuntu-blade1:/etc/udev/rules.d# 

プライマリホストシステムにUSBデバイスが接続されています。

Disk /dev/sde: 14.7 GiB, 15795748864 bytes, 30851072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0527cd14

lsusbの出力は次のとおりです。

root@ubuntu-blade1:/etc/udev/rules.d# lsusb
Bus 002 Device 005: ID 8564:1000 Transcend Information, Inc. JetFlash
Bus 002 Device 004: ID 0424:2512 Standard Microsystems Corp. USB 2.0 Hub
Bus 002 Device 003: ID 0424:2512 Standard Microsystems Corp. USB 2.0 Hub
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 0624:0251 Avocent Corp. Virtual Mass Storage
Bus 001 Device 004: ID 0624:0249 Avocent Corp. Virtual Keyboard/Mouse
Bus 001 Device 003: ID 0624:0248 Avocent Corp. Virtual Hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

これで、コンテナ(/dev/sde)内のUSBを検出/接続する必要があります。私はudevについてある程度の知識があり、同じ問題に関する複数のスタック質問を見ましたが、これを行う明確な手順はありません。誰でも私に指示を与えることができますか?

ベストアンサー1

この質問はかなり古いですが、今日同じユースケースを偶然発見し、おそらく7ヶ月前には存在しなかった非常に簡単な解決策を見つけました。

これに協会より多くの情報を見つけることができますが、本質的には次のようになります。

モデムデバイス(ATコマンド)と/ dev / ttyUSB2に「xenial1」コンテナがあると仮定すると、次のコマンドを使用してttyUSB2をコンテナに追加できます。

$ lxc config device add xenial1 ttyUSB2 unix-char path=/dev/ttyUSB2

コンテナが実行されているかどうかは重要ではありません。

この構成は、コンテナーのデフォルト構成ファイルに保持されます。

$ lxc config show xenial1
architecture: x86_64
config:
  security.privileged: "true"
  volatile.base_image: <numbers>
  volatile.eth0.hwaddr: xx:xx:xx:xx:xx:xx
  volatile.idmap.base: "0"
  volatile.idmap.next: '[]'
  volatile.last_state.idmap: '[]'
  volatile.last_state.power: RUNNING
devices:
  root:
    path: /
    type: disk
  ttyUSB1:
    path: /dev/ttyUSB1
    type: unix-char
  ttyUSB2:
    path: /dev/ttyUSB2
    type: unix-char
ephemeral: false
profiles:
- default

デバイスを削除するには、「追加」コマンドの代わりに「削除」コマンドを使用します。

注:私のコンテナには「権限」があるため、このソリューションは権限のないコンテナでは機能しない可能性があります。

おすすめ記事