Een LXC-container verliest vaak na een herstart van de host toegang tot een apparaat, omdat de host het apparaat opnieuw aanmaakt met een gewijzigd pad, gewijzigde rechten of een ander opstartmoment.
Beschouw de herstart als een levenscyclusgebeurtenis van het apparaat op de host. Controleer of de hardware wordt gedetecteerd voordat LXC start, vergelijk stabiele identificatiegegevens met vluchtige apparaatnamen, controleer permanente udev-rechten en toegangsregels voor de container en voer daarna een volledige herstart uit. Als het probleem tijdelijk wordt opgelost door de container opnieuw te starten, wijst dat op een timingprobleem en niet op een duurzame oplossing.
Controleer of de host het apparaat na een herstart opnieuw aanmaakt
Controleer voordat je de container start of de host het USB-apparaat, de seriële poort, GPU of ander apparaat detecteert en noteer de leverancier-ID, product-ID, het serienummer, de major-minor-nummers en het huidige pad.
Handleidingen voor passthrough in homelabs raden stabiele USB-passthrough aan, in plaats van ervan uit te gaan dat een vluchtige apparaatnaam na elke enumeratie altijd naar dezelfde hardware verwijst.
Als de host het apparaat zelf niet ziet, stop dan op hostniveau. Het opnieuw aansluiten, firmware-, controller-, stroom- of kernelproblemen met de detectie moeten eerst worden opgelost voordat een LXC-configuratie kan werken.
Vervang vluchtige apparaatnamen door een stabiele identiteit
Vergelijk de paden vóór en na de herstart. USB-seriële adapters kunnen van ttyUSB-nummer wisselen en vergelijkbare apparaten kunnen na het opstarten van de host in een andere volgorde worden geïnventariseerd.
Een gerichte handleiding voor LXC USB-passthrough laat zien waarom het doorgeven van een apparaat aan LXC alleen werkt wanneer het object op de host waarnaar de container verwijst nog steeds de beoogde hardware identificeert.
Gebruik een stabiel by-id-pad of een doelbewust door udev aangemaakte symbolische koppeling wanneer de apparaatklasse dit ondersteunt. Geef de container niet toegang tot elk USB-apparaat alleen om wijzigingen in de enumeratie te verbergen.
Zorg dat apparaatmachtigingen behouden blijven na opnieuw aanmaken
Controleer na een herstart de eigenaar, groep, modus, cgroup-machtigingen en containertoewijzing. Een handmatige chmod op een apparaatknooppunt is niet permanent, omdat udev dat knooppunt opnieuw kan aanmaken.
Een voorbeeld voor Z-Wave-passthrough gebruikt permanente apparaattoewijzing om een serieel apparaat bereikbaar te houden bij wijzigingen op de host, in plaats van te vertrouwen op een eenmalige wijziging van de machtigingen.
Leg de vereiste eigenaars- of groepsregel vast in de permanente apparaatbeheerconfiguratie van de host en geef de container alleen toegang tot de apparaatklasse die deze nodig heeft.
Controleer of de container te vroeg start
Herstart de host en vergelijk de tijdstempels van het aanmaken van het apparaat en het starten van LXC. Een container kan succesvol starten terwijl de hardware waarop deze wacht nog niet volledig is geïnventariseerd.
Uitgebreidere richtlijnen voor Proxmox USB-apparaattoewijzing benadrukken dat USB-passthrough afhankelijk is van het feit dat de host het apparaat eerst beschikbaar maakt. Die volgorde is vooral belangrijk tijdens onbemande starts van een thuisserver.
Voeg een begrensde afhankelijkheid of gereedheidscontrole toe in plaats van een willekeurig lange wachttijd. De container moet duidelijk falen of kort wachten wanneer het vereiste apparaat ontbreekt.
Voer een volledige herstartcontrole uit
Herstart de host na het oplossen van de identiteit, machtigingen of opstartvolgorde tweemaal volledig en test de daadwerkelijke werking van de toepassing die het apparaat gebruikt, niet alleen of er binnen LXC een apparaatknooppunt bestaat.
De gerelateerde Proxmox-thuisserverconfiguratie van ZimaSpace koppelt de oplossing aan een reproduceerbare Proxmox-configuratie voor een thuisserver, in plaats van aan een tijdelijke oplossing die alleen tijdens de sessie werkt.
Het probleem is pas opgelost wanneer hetzelfde fysieke apparaat na meerdere starts verschijnt met de beoogde toegang. Als de identiteit stabiel is maar de toegang nog steeds mislukt, bewaar dan de weigeringslogboeken van de host en de container voor de volgende onderzoekslaag.
Veelgestelde vragen
Waarom herstelt het apparaat soms nadat ik de container opnieuw start?
Het apparaat kan zijn verschenen nadat de container was gestart. Bij een latere herstart ziet de container het volledig aangemaakte apparaatknooppunt op de host, maar daarmee wordt alleen de afhankelijkheid van de opstartvolgorde verborgen.
Moet ik een USB-apparaat koppelen via /dev/ttyUSB0?
Geef de voorkeur aan een stabiele identiteit wanneer de apparaatklasse die biedt. Numerieke apparaatnamen kunnen veranderen wanneer hardware na een herstart wordt geïnventariseerd.
Kunnen machtigingen worden teruggezet, zelfs als het apparaatpad hetzelfde blijft?
Ja. udev kan het knooppunt opnieuw aanmaken met de geconfigureerde eigenaar, groep en modus, waardoor handmatige chmod-wijzigingen bij de volgende keer opnieuw aansluiten of de volgende herstart kunnen verdwijnen.
Ondersteuning & Tips
Meer om te lezen

Kan Plex een GPU delen met een andere Docker-container?
Plex en een andere container kunnen vaak dezelfde GPU gebruiken, maar je moet de driverondersteuning, apparaattoewijzing, belasting van de video-engine, het geheugengebruik en het...

Hoe je kunt bepalen of een Plex-fout door de client of de server wordt veroorzaakt
Reproduceer hetzelfde item op een andere client, vergelijk het sessiepad en verzamel pas serverbewijs nadat de scope heeft uitgewezen waar de fout daadwerkelijk zit.

Plex-cache en tijdelijke opslag voor transcodering configureren
Bescherm de permanente Plex-status door tijdelijke transcodebestanden op geschikte lokale opslag te plaatsen en controleer vervolgens het opruimen, de beschikbare ruimte en het gedrag...

