Essa pergunta é bem antiga, mas eu deparei com o mesmo caso de uso hoje e achei uma solução tão fácil que provavelmente ela não estava disponível sete meses atrás.
Neste link pode-se encontrar mais informações, mas essencialmente é assim:
digamos que temos um dispositivo de modem (comandos AT) em / dev / ttyUSB2 e um container "xenial1", pode-se adicionar ttyUSB2 ao container com o seguinte comando:
$ lxc config device add xenial1 ttyUSB2 unix-char path=/dev/ttyUSB2
não importa se o contêiner está sendo executado ou não
Essa configuração é salva permanentemente no perfil padrão do contêiner:
$ 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
Para excluir um dispositivo, use o comando "remover" no lugar de "adicionar".
NOTA: meu contêiner é "privilegiado", portanto, essa solução pode não funcionar em contêineres não privilegiados