[SOLVED] LXC USB Passthrough (ZWave Stick)

Discussion in 'Proxmox VE: Installation and configuration' started by tschanness, Oct 30, 2016.

  1. tschanness

    tschanness Member

    Joined:
    Oct 30, 2016
    Messages:
    291
    Likes Received:
    21
    Hi,
    sadly there is no wiki entry for LXC USB Passthrough, so if someone has the same problem as me he will at least find it in the forum. Nice work with VE 4.3 btw.

    1st.
    Plug in you USB ZWave stick and find the Major:Minor Numbers:
    Code:
    root@proxmox01:~# lsusb
    [...]
    Bus 004 Device 005: ID 0658:0200 Sigma Designs, Inc.
    [...]
    Major Number is 4, Minor is 5 for me (Bus and Device). Yours will vary.

    2nd.
    Take a look at the /dev Filetree:
    Code:
    root@proxmox01:~# ls -l /dev/bus/usb/004/005
    crw-rw-r-- 1 root root 189, 388 Oct 25 16:19 /dev/bus/usb/004/005
    Take note of the 189,388. Yours may differ. I'm not even sure what those numbers mean :/

    3rd.
    Edit the LXC Config file:
    Code:
    root@proxmox01:~# nano /etc/pve/nodes/proxmox01/lxc/101.conf
    lxc.cgroup.devices.allow: c 189:388 rwm
    lxc.mount.entry: /dev/bus/usb/004/005 dev/bus/usb/004/005 none bind,optional,create=file
    You File will be in another Location.

    4th.
    Wonder why it does not work

    5th.
    The ZWave Stick creates a ttyACM device:
    Code:
    root@proxmox01:~# ls -l /dev/ttyACM0
    crwxrwxrwx 1 root dialout 166, 0 Oct 30 13:38 /dev/ttyACM0
    Note the 166 here. Add it to your Container:
    Code:
    lxc.cgroup.devices.allow: c 166:* rwm
    lxc.mount.entry: /dev/ttyACM0 dev/ttyACM0 none bind,optional,create=file
    This was it for me. I hope it helps someone.
     
    lastb0isct likes this.
  2. scurrier

    scurrier New Member

    Joined:
    Sep 9, 2017
    Messages:
    9
    Likes Received:
    1
    Thanks for posting, this helped me get openhab running in a container.

    One note. If the container is unprivileged, you will need to give permissions to /dev/ttyACM0 from the host. chmod o+rw /dev/ttyACM0 did the trick. If you don't want to give permissions to everyone, I suspect (but not sure) that you can fiddle with adding the required uid's inside the container to the /dev/ttyACM0 device's group (dialout) outside the container, Restart the container to take effect.
     
    tschanness likes this.
  3. Jaime Hablutzel

    Jaime Hablutzel New Member

    Joined:
    Jun 21, 2018
    Messages:
    6
    Likes Received:
    4
    Here you have another step by step guide, https ://gist.github.com/Yub0/518097e1a9d179dba19a787b462f7dd2#gistcomment-2625690.

    Note that it is important to use Proxmox's pct to stop and start containers instead of lxc's tools.
     
    tschanness likes this.
  4. Dayve

    Dayve New Member

    Joined:
    Apr 19, 2019
    Messages:
    7
    Likes Received:
    0
    Sorry to open up an old post.
    I followed the mods directions and my z wave stick works great unless I restart or shutdown the host. Then I need to give permissions to /dev/ttyACM0 using chmod o+rw /dev/ttyACM0 for it to work again.

    Is there a way to get around this?
     
  5. tschanness

    tschanness Member

    Joined:
    Oct 30, 2016
    Messages:
    291
    Likes Received:
    21
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice