Discussion:
[PVE-User] Share an usb device with a forced dev entry between proxmox and lxc
Guillaume
2017-01-12 12:01:43 UTC
Permalink
Hello,
I'm trying to share an usb 4g key between a proxmox 4.server and a lxc
container.

Device is as follow on the server :
Bus 001 Device 037: ID 12d1:1003 Huawei Technologies Co., Ltd. E220
HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem

I created this udev rule on the server to have a fixed endpoint in /dev :
/etc/udev/rules.d/10-usbsms.rules
ACTION=="add", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="12d1",
ATTRS{idProduct}=="1003", GROUP="dialout", MODE="0666", SYMLINK+="usbsms%n"

Result in /dev :
crw-rw-rw- 1 root dialout 188, 0 Jan 12 12:40 ttyUSB0
crw-rw-rw- 1 root dialout 188, 1 Jan 12 12:40 ttyUSB1
crw-rw-rw- 1 root dialout 188, 2 Jan 12 11:17 ttyUSB2
...
drwxr-xr-x 2 root root 60 Dec 20 10:47 usb
lrwxrwxrwx 1 root dialout 7 Jan 12 12:40 usbsms0 -> ttyUSB0
lrwxrwxrwx 1 root dialout 7 Jan 12 12:40 usbsms1 -> ttyUSB1

On my container configuration file, i mount the device :
lxc.aa_profile: unconfined
lxc.cgroup.devices.allow: c 188:* rwm
lxc.cgroup.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/bus/usb/001 dev/bus/usb/001 none
bind,optional,create=dir
lxc.mount.entry: /dev/ttyUSB0 dev/ttyUSB0 none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB1 dev/ttyUSB1 none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB2 dev/ttyUSB2 none bind,optional,create=file
lxc.mount.entry: /dev/usbsms0 /dev/usbsms0 none bind,optional,create=file
lxc.mount.entry: /dev/usbsms1 /dev/usbsms1 none bind,optional,create=file

Here's the result on my container :
~# lsusb
Bus 006 Device 002: ID 03f0:1027 Hewlett-Packard Virtual keyboard and mouse
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 037: ID 12d1:1003 Huawei Technologies Co., Ltd. E220
HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 006: ID 0c45:7401 Microdia TEMPer Temperature Sensor
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

~# ll /dev
total 4
drwxr-xr-x 8 root root 560 Jan 12 12:54 ./
drwxr-xr-x 22 root root 4096 Jan 12 12:54 ../
...
crw-rw-rw- 1 root dialout 188, 0 Jan 12 12:40 ttyUSB0
crw-rw-rw- 1 root dialout 188, 1 Jan 12 12:40 ttyUSB1
crw-rw-rw- 1 root dialout 188, 2 Jan 12 11:17 ttyUSB2
...

No /dev/usbsms* entries.

And if i try to create a udev rules on the container side instead :
SUBSYSTEM=="tty", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1003",
GROUP="dialout", MODE="0666", SYMLINK+="usbsms%n"

I got nothing either in /dev

Any hint ?
Thanks,
--
Guillaume Hilt
Guillaume
2017-01-16 14:40:58 UTC
Permalink
Starting the container in debug mode gives me this :

lxc-start 20170116153758.481 WARN lxc_conf -
conf.c:mount_entry_on_absolute_rootfs:1864 - ignoring mount point
'/dev/ttyUSB0'
lxc-start 20170116153758.481 WARN lxc_conf -
conf.c:mount_entry_on_absolute_rootfs:1864 - ignoring mount point
'/dev/ttyUSB1'
lxc-start 20170116153758.481 WARN lxc_conf -
conf.c:mount_entry_on_absolute_rootfs:1864 - ignoring mount point
'/dev/ttyUSB2'
lxc-start 20170116153758.482 WARN lxc_conf -
conf.c:mount_entry_on_absolute_rootfs:1864 - ignoring mount point
'/dev/usbsms0'
lxc-start 20170116153758.482 WARN lxc_conf -
conf.c:mount_entry_on_absolute_rootfs:1864 - ignoring mount point
'/dev/usbsms1'

What does this mean ?
Post by Guillaume
Hello,
I'm trying to share an usb 4g key between a proxmox 4.server and a lxc
container.
Bus 001 Device 037: ID 12d1:1003 Huawei Technologies Co., Ltd. E220
HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem
/etc/udev/rules.d/10-usbsms.rules
ACTION=="add", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="12d1",
ATTRS{idProduct}=="1003", GROUP="dialout", MODE="0666",
SYMLINK+="usbsms%n"
crw-rw-rw- 1 root dialout 188, 0 Jan 12 12:40 ttyUSB0
crw-rw-rw- 1 root dialout 188, 1 Jan 12 12:40 ttyUSB1
crw-rw-rw- 1 root dialout 188, 2 Jan 12 11:17 ttyUSB2
...
drwxr-xr-x 2 root root 60 Dec 20 10:47 usb
lrwxrwxrwx 1 root dialout 7 Jan 12 12:40 usbsms0 -> ttyUSB0
lrwxrwxrwx 1 root dialout 7 Jan 12 12:40 usbsms1 -> ttyUSB1
lxc.aa_profile: unconfined
lxc.cgroup.devices.allow: c 188:* rwm
lxc.cgroup.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/bus/usb/001 dev/bus/usb/001 none
bind,optional,create=dir
lxc.mount.entry: /dev/ttyUSB0 dev/ttyUSB0 none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB1 dev/ttyUSB1 none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB2 dev/ttyUSB2 none bind,optional,create=file
lxc.mount.entry: /dev/usbsms0 /dev/usbsms0 none bind,optional,create=file
lxc.mount.entry: /dev/usbsms1 /dev/usbsms1 none bind,optional,create=file
~# lsusb
Bus 006 Device 002: ID 03f0:1027 Hewlett-Packard Virtual keyboard and mouse
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 037: ID 12d1:1003 Huawei Technologies Co., Ltd. E220
HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 006: ID 0c45:7401 Microdia TEMPer Temperature Sensor
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
~# ll /dev
total 4
drwxr-xr-x 8 root root 560 Jan 12 12:54 ./
drwxr-xr-x 22 root root 4096 Jan 12 12:54 ../
...
crw-rw-rw- 1 root dialout 188, 0 Jan 12 12:40 ttyUSB0
crw-rw-rw- 1 root dialout 188, 1 Jan 12 12:40 ttyUSB1
crw-rw-rw- 1 root dialout 188, 2 Jan 12 11:17 ttyUSB2
...
No /dev/usbsms* entries.
SUBSYSTEM=="tty", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1003",
GROUP="dialout", MODE="0666", SYMLINK+="usbsms%n"
I got nothing either in /dev
Any hint ?
Thanks,
Guillaume
2017-01-16 14:58:44 UTC
Permalink
I found the issue.

On the container, dev elements aren't created by lxc and if you create
them by hand, they will disappear after a reboot.

So, i create them at each boot using /etc/rc.local (in the container) :

mknod -m 666 /dev/ttyUSB0 c 188 0
mknod -m 666 /dev/ttyUSB1 c 188 1
mknod -m 666 /dev/ttyUSB2 c 188 2
mknod -m 666 /dev/usbsms0 c 188 0
mknod -m 666 /dev/usbsms1 c 188 1
chown root:dialout /dev/ttyUSB* /dev/usbsms*

And i keep the lxc.cgroup.devices.allow and lxc.mount.entry lines in my
container configuration file.
Post by Guillaume
lxc-start 20170116153758.481 WARN lxc_conf -
conf.c:mount_entry_on_absolute_rootfs:1864 - ignoring mount point
'/dev/ttyUSB0'
lxc-start 20170116153758.481 WARN lxc_conf -
conf.c:mount_entry_on_absolute_rootfs:1864 - ignoring mount point
'/dev/ttyUSB1'
lxc-start 20170116153758.481 WARN lxc_conf -
conf.c:mount_entry_on_absolute_rootfs:1864 - ignoring mount point
'/dev/ttyUSB2'
lxc-start 20170116153758.482 WARN lxc_conf -
conf.c:mount_entry_on_absolute_rootfs:1864 - ignoring mount point
'/dev/usbsms0'
lxc-start 20170116153758.482 WARN lxc_conf -
conf.c:mount_entry_on_absolute_rootfs:1864 - ignoring mount point
'/dev/usbsms1'
What does this mean ?
Post by Guillaume
Hello,
I'm trying to share an usb 4g key between a proxmox 4.server and a
lxc container.
Bus 001 Device 037: ID 12d1:1003 Huawei Technologies Co., Ltd. E220
HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem
/etc/udev/rules.d/10-usbsms.rules
ACTION=="add", KERNEL=="ttyUSB[0-9]*", ATTRS{idVendor}=="12d1",
ATTRS{idProduct}=="1003", GROUP="dialout", MODE="0666",
SYMLINK+="usbsms%n"
crw-rw-rw- 1 root dialout 188, 0 Jan 12 12:40 ttyUSB0
crw-rw-rw- 1 root dialout 188, 1 Jan 12 12:40 ttyUSB1
crw-rw-rw- 1 root dialout 188, 2 Jan 12 11:17 ttyUSB2
...
drwxr-xr-x 2 root root 60 Dec 20 10:47 usb
lrwxrwxrwx 1 root dialout 7 Jan 12 12:40 usbsms0 -> ttyUSB0
lrwxrwxrwx 1 root dialout 7 Jan 12 12:40 usbsms1 -> ttyUSB1
lxc.aa_profile: unconfined
lxc.cgroup.devices.allow: c 188:* rwm
lxc.cgroup.devices.allow: c 189:* rwm
lxc.mount.entry: /dev/bus/usb/001 dev/bus/usb/001 none
bind,optional,create=dir
lxc.mount.entry: /dev/ttyUSB0 dev/ttyUSB0 none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB1 dev/ttyUSB1 none bind,optional,create=file
lxc.mount.entry: /dev/ttyUSB2 dev/ttyUSB2 none bind,optional,create=file
lxc.mount.entry: /dev/usbsms0 /dev/usbsms0 none
bind,optional,create=file
lxc.mount.entry: /dev/usbsms1 /dev/usbsms1 none
bind,optional,create=file
~# lsusb
Bus 006 Device 002: ID 03f0:1027 Hewlett-Packard Virtual keyboard and mouse
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 037: ID 12d1:1003 Huawei Technologies Co., Ltd. E220
HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 006: ID 0c45:7401 Microdia TEMPer Temperature Sensor
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
~# ll /dev
total 4
drwxr-xr-x 8 root root 560 Jan 12 12:54 ./
drwxr-xr-x 22 root root 4096 Jan 12 12:54 ../
...
crw-rw-rw- 1 root dialout 188, 0 Jan 12 12:40 ttyUSB0
crw-rw-rw- 1 root dialout 188, 1 Jan 12 12:40 ttyUSB1
crw-rw-rw- 1 root dialout 188, 2 Jan 12 11:17 ttyUSB2
...
No /dev/usbsms* entries.
SUBSYSTEM=="tty", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1003",
GROUP="dialout", MODE="0666", SYMLINK+="usbsms%n"
I got nothing either in /dev
Any hint ?
Thanks,
_______________________________________________
pve-user mailing list
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-user
Loading...