Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Off Topic
    4. Proxmox
    5. Gelöst-Proxmox: Google Coral USB Modul im LXC-Container

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Gelöst-Proxmox: Google Coral USB Modul im LXC-Container

    This topic has been deleted. Only users with topic management privileges can see it.
    • MartinP
      MartinP last edited by MartinP

      ich habe ein Coral USB Modul an einen privilegierten LXC-Container durchgereicht.
      Funktioniert EIGENTLICH gut, ABER:

      Bei jedem Neustart würfelt Proxmox bei "dev/bus/usb/002/...." andere Werte für den Google Coral Stick:

      f5fee749-3c7e-404f-ad0a-78dcdf43d523-grafik.png

      Dann muss ich jeweils hier schauen, was angezeigt wird:

      root@pve:~# lsusb
      Bus 002 Device 003: ID 18d1:9302 Google Inc. 
      Bus 002 Device 002: ID 2109:711f VIA Labs, Inc. External
      Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
      Bus 001 Device 003: ID 0403:6015 Future Technology Devices International, Ltd Bridge(I2C/SPI/UART/FIFO)
      Bus 001 Device 004: ID 303a:80c2 WEMOS.CC LOLIN-S2-MINI
      Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
      

      ... und hier anpassen:

      84967188-e217-4181-8191-3d4c6c8d96fa-grafik.png

      Dann startet auch der Container wieder.

      Gibt es da auch Möglichkeiten, ähnlich wie bei "/dev/serial/by-id" eine Gerätespezifische Weiterleitung zu konfigurieren?

      1 Reply Last reply Reply Quote 0
      • David G.
        David G. last edited by

        Laut ChatGPT (weil es mich auch gtad interessiert hat):

        Ja, du kannst eine gerätespezifische Weiterleitung für den Google Coral Stick in einem LXC-Container einrichten, indem du udev-Regeln verwendest. Diese Regeln können ein konsistentes Gerät erstellen, ähnlich wie es /dev/serial/by-id für serielle Geräte tut. Hier ist eine Anleitung, wie du dies erreichen kannst.

        1. Geräteinformationen erfassen

        Zuerst musst du die spezifischen Informationen des Google Coral USB-Sticks ermitteln, die für eine eindeutige Identifikation verwendet werden können. Die wichtigsten Informationen sind Vendor ID (VID) und Product ID (PID).

        1. Verbinde den Google Coral Stick und führe den Befehl lsusb aus:

        lsusb

        Suche nach dem Eintrag des Google Coral Sticks, der so aussehen sollte:

        Bus 002 Device 003: ID 18d1:9302 Google Inc.

        In diesem Fall ist die Vendor ID (VID) 18d1 und die Product ID (PID) 9302.

        1. Udev-Regel erstellen

        Jetzt kannst du eine udev-Regel erstellen, die für den Coral Stick ein statisches Gerät im /dev-Verzeichnis erzeugt.

        1. Erstelle eine neue udev-Regel, z. B. in /etc/udev/rules.d/99-coral.rules:

        sudo nano /etc/udev/rules.d/99-coral.rules

        1. Füge folgende Zeile hinzu, um eine Regel für den Google Coral Stick zu erstellen:

        SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="9302", SYMLINK+="coral"

        Diese Regel erstellt einen symbolischen Link /dev/coral, der immer auf den Google Coral Stick verweist, unabhängig davon, welchen Pfad dev/bus/usb/002/... ihm zugewiesen wird.

        1. Speichere die Datei und lade die udev-Regeln neu:

        sudo udevadm control --reload-rules
        sudo udevadm trigger

        1. LXC-Konfiguration anpassen

        Jetzt kannst du die LXC-Konfiguration so anpassen, dass der Container immer den statischen Pfad /dev/coral verwendet.

        1. Öffne die Konfigurationsdatei deines Containers in /etc/pve/lxc/<Container-ID>.conf:

        sudo nano /etc/pve/lxc/<Container-ID>.conf

        1. Füge eine Zeile hinzu, um /dev/coral in den Container durchzureichen:

        lxc.mount.entry = /dev/coral dev/coral none bind,optional,create=file

        1. Speichere die Datei und starte den Container neu:

        sudo pct start <Container-ID>

        1. Testen

        Nach dem Neustart sollte der Google Coral Stick immer über /dev/coral im Container verfügbar sein. Du kannst dies überprüfen, indem du den Container startest und die Verbindung zum Gerät überprüfst:

        ls -l /dev/coral

        Optional: Prüfen der udev-Regel

        Falls die Regel nicht sofort greift, kannst du prüfen, ob sie funktioniert, indem du das Gerät abziehst und erneut ansteckst. Du kannst auch den folgenden Befehl ausführen, um sicherzustellen, dass das Gerät korrekt erkannt wird:

        udevadm test $(udevadm info -q path -n /dev/bus/usb/002/<Device-Nummer>)

        Zusammenfassung

        Mit dieser Methode:

        Erstellst du eine udev-Regel, die den Google Coral Stick über einen stabilen Symlink wie /dev/coral verfügbar macht.

        Konfigurierst du den LXC-Container so, dass er diesen Symlink verwendet, anstatt sich auf den variablen USB-Pfad zu verlassen.

        Jetzt sollte der Container den Google Coral Stick unabhängig von seiner USB-Bus-Adresse erkennen.

        MartinP 1 Reply Last reply Reply Quote 2
        • MartinP
          MartinP @David G. last edited by

          @david-g erster Versuch hat nicht funktioniert - sowohl im PVE, als auch im LXC ist zwar /dev/coral aufgetaucht, aber der Frigate docker container konnte die TPU nicht finden ...

          Habe wieder zurückgebaut ...

          9b35ad19-b1da-4fb9-a668-4ba4ac0d169e-grafik.png

          Habe nun beides eingebaut ... mir scheint, frigate schaut nur über den "bus" tree ...

          frigate@ubuntu-frigate-privileged:~$ ls -l /dev/coral
          crw-rw---- 1 root root 189, 130 Nov  4 15:42 /dev/coral
          frigate@ubuntu-frigate-privileged:~$ ls -l /dev/bus/usb/002/003 
          crw-rw---- 1 root root 189, 130 Nov  4 15:42 /dev/bus/usb/002/003
          frigate@ubuntu-frigate-privileged:~$ 
          
          
          MartinP 1 Reply Last reply Reply Quote 0
          • MartinP
            MartinP @MartinP last edited by MartinP

            mir scheint, frigate schaut nur über den "bus" tree ...

            Eine kleine Modifikation hat es zum Fliegen gebracht

            Hängt jetzt an einem "Fake" USB-Bus 10 als erstes Device (wenn der Berg nicht zum Propheten .....)

            root@pve:/etc/udev/rules.d# cat 98-coral.rules
            SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="9302", SYMLINK+="/bus/usb/010/001"
            root@pve:/etc/udev/rules.d# ls /dev/bus/usb
            001  002  010
            root@pve:/etc/udev/rules.d# ls /dev/bus/usb/010
            001
            root@pve:/etc/udev/rules.d# ls -l /dev/bus/usb/010/001
            lrwxrwxrwx 1 root root 10 Nov  4 15:56 /dev/bus/usb/010/001 -> ../002/003
            root@pve:/etc/udev/rules.d# 
            

            be64733d-3b27-43dd-a05a-561d45196f34-grafik.png

            info 2024-11-04 15:59:55 frigate.detectors.plugins.edgetpu_tfl Attempting to load TPU as usb
            info 2024-11-04 15:59:56 frigate.app Camera processor started for stellplatz: 379
            info 2024-11-04 15:59:56 frigate.app Capture process started for stellplatz: 380
            info 2024-11-04 15:59:58 frigate.detectors.plugins.edgetpu_tflTPU found
            
            1 Reply Last reply Reply Quote 1
            • First post
              Last post

            Support us

            ioBroker
            Community Adapters
            Donate

            918
            Online

            31.7k
            Users

            79.7k
            Topics

            1.3m
            Posts

            2
            4
            435
            Loading More Posts
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes
            Reply
            • Reply as topic
            Log in to reply
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
            The ioBroker Community 2014-2023
            logo