Skip to content

Instantly share code, notes, and snippets.

@murilogteixeira
Created July 22, 2025 02:02
Show Gist options
  • Save murilogteixeira/c720bc9c399751fd36c1a7da08703cd7 to your computer and use it in GitHub Desktop.
Save murilogteixeira/c720bc9c399751fd36c1a7da08703cd7 to your computer and use it in GitHub Desktop.

Revisions

  1. murilogteixeira created this gist Jul 22, 2025.
    114 changes: 114 additions & 0 deletions proxmox-USB.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,114 @@
    # ✅ Tutorial: Habilitar USB no Proxmox LXC + Docker (ESPHome)

    Este guia mostra como passar um dispositivo USB (ex: CH340/ESP) do host Proxmox para:

    - Um container **LXC** (ex: CasaOS)
    - E depois para o **Docker** (ex: ESPHome)

    ---

    ## 🔍 1. Identifique o dispositivo USB no host Proxmox

    ```bash
    lsusb
    dmesg | grep tty
    ls -l /dev/ttyUSB*
    ```

    Você deve ver algo como:

    ```
    ch341-uart converter now attached to ttyUSB0
    ```

    ---

    ## 🛠️ 2. Edite o container LXC no Proxmox

    Substitua `101` pelo ID do seu container LXC:

    ```bash
    nano /etc/pve/lxc/101.conf
    ```

    Adicione as seguintes linhas no final:

    ```ini
    lxc.cgroup2.devices.allow: c 188:* rwm
    lxc.mount.entry: /dev/ttyUSB0 dev/ttyUSB0 none bind,optional,create=file
    ```

    Salve e saia (`Ctrl + X`, `Y`, `Enter`).

    Reinicie o container:

    ```bash
    pct restart 101
    ```

    ---

    ## ✅ 3. Verifique o dispositivo USB no LXC

    Dentro do container:

    ```bash
    ls -l /dev/ttyUSB*
    ```

    Se `/dev/ttyUSB0` aparecer, está tudo certo.

    ---

    ## 🐳 4. Passar USB para o Docker (ex: ESPHome)

    ### 🧩 Com `docker run`:

    ```bash
    docker run -d \
    --name esphome \
    --privileged \
    --device=/dev/ttyUSB0 \
    -v /etc/esphome:/config \
    -p 6052:6052 \
    esphome/esphome
    ```

    > ⚠️ Ajuste o caminho `/etc/esphome` para onde está sua configuração.
    ---

    ### 📦 Com `docker-compose.yml`:

    ```yaml
    version: "3"
    services:
    esphome:
    image: esphome/esphome
    container_name: esphome
    privileged: true
    ports:
    - "6052:6052"
    volumes:
    - /etc/esphome:/config
    devices:
    - /dev/ttyUSB0:/dev/ttyUSB0
    ```
    E execute:
    ```bash
    docker-compose up -d
    ```

    ---

    ## 🧪 Teste final

    Dentro do container LXC (ou via terminal do Docker):

    ```bash
    esphome run /config/seu_arquivo.yaml
    ```

    ✅ Agora o ESPHome poderá acessar o dispositivo USB para instalar firmware em placas ESP!