我一直在尝试在运行 debian wheezy 的 lxc 容器中使用 libnfc。在尝试了几件事和库之后,从而证明了 lxc 方式的合理性,我终于到了我不知道该去哪里寻找的地步。
问题是主机看到的是我的 USB 设备,但没有看到容器。
我在容器的 lxc 配置文件中添加了以下内容:
lxc.cgroup.devices.allow = c 189:* rwm
当我在容器上尝试 lsusb 时,我得到:
root@nfc:~/libnfc# lsusb
unable to initialize libusb: -99
而主机给出:
Bus 006 Device 003: ID 072f:2200 Advanced Card Systems, Ltd
这是我正在寻找的设备。
令人惊讶的是,容器可以看到设备:
root@nfc:~/libnfc# usb-devices
[...]
T: Bus=06 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=072f ProdID=2200 Rev=02.14
S: Manufacturer=ACS
S: Product=ACR122U PICC Interface
C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=0b(scard) Sub=00 Prot=00 Driver=(none)
我已经检查了libusb版本,内核模块,依赖项,但是在那里非常无知,我有点迷茫。
有什么想法吗?
添加:
lxc.mount.entry = /dev/bus/usb dev/bus/usb none bind,optional,create=dir
到容器配置文件除了lxc.cgroup.devices.allow = c 189:* rwm
为我工作。