mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 10:52:22 +00:00
186 lines
13 KiB
JSON
186 lines
13 KiB
JSON
{
|
||
"meta": {
|
||
"title": "Lägg till GPU i LXC | ProxMenux-dokumentation",
|
||
"description": "Dela Intel-, AMD- eller NVIDIA-GPU med LXC. ProxMenux konfigurerar enheter, grupper och bibliotek efter distribution; appen måste stödja och vara inställd för acceleration."
|
||
},
|
||
"header": {
|
||
"title": "Lägg till GPU i LXC",
|
||
"description": "Delar GPU-åtkomst med LXC via värdens enheter. Drivrutinen finns kvar på värden; apparna behöver kompatibla bibliotek och egna inställningar.",
|
||
"section": "Hårdvara: GPU:er och Coral-TPU"
|
||
},
|
||
"intro": {
|
||
"title": "Vad det gör",
|
||
"body": "Lägger till <code>dev<N></code>-poster i <code>/etc/pve/lxc/<ctid>.conf</code> för tillämpliga <code>/dev/dri/*</code>-, <code>/dev/kfd</code>- eller <code>/dev/nvidia*</code>-noder. Startar containern, installerar userspace-paket för dess distribution och anpassar, för Intel/AMD, grupperna <code>video</code> och <code>render</code>. Appacceleration kräver fortfarande kompatibel hårdvara, bibliotek och appinställningar."
|
||
},
|
||
"compare": {
|
||
"heading": "LXC-delning jämfört med VM-passthrough",
|
||
"intro": "LXC delar kerneln och kan <em>dela</em> GPU:n mellan värd och containrar. Med <vmLink>fullständig VM-passthrough</vmLink> tillhör enheten bara den VM:n och är inte tillgänglig för värdens drivrutin.",
|
||
"headerFeature": "Funktion",
|
||
"headerLxc": "LXC (denna sida)",
|
||
"headerVm": "VM",
|
||
"rows": [
|
||
{
|
||
"feature": "Värd fortsätter att använda GPU?",
|
||
"lxc": "Ja",
|
||
"vm": "Nej – exklusivt för VM"
|
||
},
|
||
{
|
||
"feature": "Flera containrar som delar en GPU?",
|
||
"lxc": "Ja",
|
||
"vm": "Nej"
|
||
},
|
||
{
|
||
"feature": "Kräver IOMMU/VFIO på värden?",
|
||
"lxc": "Nej",
|
||
"vm": "Ja"
|
||
},
|
||
{
|
||
"feature": "Reboot krävs?",
|
||
"lxc": "Normalt nej (bara starta om CT)",
|
||
"vm": "När värdens drivrutin eller IOMMU ändras; inte för varje tilldelning"
|
||
},
|
||
{
|
||
"feature": "Gästoperativsystem",
|
||
"lxc": "Endast Linux (LXC är Linux-bara)",
|
||
"vm": "Gästsystem som stöds med en kompatibel GPU-drivrutin"
|
||
}
|
||
]
|
||
},
|
||
"prereqs": {
|
||
"title": "Innan du börjar",
|
||
"gpu": "<strong>GPU på värden</strong> från Intel, AMD eller NVIDIA, identifierad med <code>lspci</code>.",
|
||
"gpuCheck": "lspci | grep -iE 'VGA|3D|Display'",
|
||
"vfio": "<strong>GPU:n får inte vara bunden till vfio-pci.</strong> Den behöver värdens vanliga drivrutin. Vid VM-tilldelning erbjuder skriptet <switchLink>Byt GPU-läge</switchLink>.",
|
||
"nvidia": "<strong>För NVIDIA:</strong> installera först värdens drivrutin. Containerns bibliotek måste passa versionen. Använd <nvidiaLink>Installera NVIDIA-drivrutiner på värden</nvidiaLink>.",
|
||
"nvidiaCheck": "nvidia-smi",
|
||
"container": "<strong>En befintlig LXC-container.</strong> Skriptet skapar ingen. Båda lägena stöds; en <strong>privilegierad</strong> container krävs inte alltid. Enhetsposter och appens numeriska grupprättigheter måste passa."
|
||
},
|
||
"unpriv": {
|
||
"title": "Stöder privilegierade och oprivilegierade containrar",
|
||
"body": "Skriptet skriver <code>dev<N></code>-poster till LXC-konfigen och på oprivilegierade behållare anpassar <code>video</code> och <code>render</code> GID mellan värd och behållare så att GPU-enhetsnoderna nås inifrån utan att du behöver handredigera <code>lxc.idmap</code>."
|
||
},
|
||
"running": {
|
||
"heading": "Kör installationen",
|
||
"body": "Öppna ProxMenux och välj <strong>Hårdvara: GPU:er och Coral-TPU → Lägg till GPU i LXC</strong>.",
|
||
"imageAlt": "Menyval för att lägga till GPU i LXC"
|
||
},
|
||
"howRuns": {
|
||
"heading": "Så fungerar skriptet",
|
||
"body": "Välj container och GPU-familjer och gå igenom kontrollerna. Därefter stoppas och ändras containern utan ytterligare slutbekräftelse. Valfri VFIO-rensning bekräftas separat och kan ändra värden tidigare."
|
||
},
|
||
"walkthrough": {
|
||
"heading": "Steg för steg",
|
||
"detect": {
|
||
"title": "Identifiera värdens GPU:er",
|
||
"body": "Söker GPU-kontroller med <code>lspci</code>. För NVIDIA kontrolleras modulen <code>nvidia</code> och <code>nvidia-smi</code>; den upptäckta versionen styr containerns <code>.run</code>-installation.",
|
||
"tipTitle": "NVIDIA är inte redo?",
|
||
"tipBody": "Om modulen saknas eller NVIDIA inte fungerar på värden, använd först <nvidiaLink>Installera NVIDIA-drivrutiner på värden</nvidiaLink> och kontrollera drivrutinen."
|
||
},
|
||
"pickCt": {
|
||
"title": "Välj en LXC-container",
|
||
"body": "Listar lämpliga LXC-containrar med ID och namn; OCI-containrar undantas och använder OCI manager Apps för enheter. Containern stoppas om den körs, startas för installation av drivrutiner och återgår normalt till sitt ursprungliga läge (igång/stoppad).",
|
||
"imageAlt": "Val av en befintlig LXC-container"
|
||
},
|
||
"selectGpu": {
|
||
"title": "Välj GPU-familjer",
|
||
"body": "Listan väljer tillverkarfamiljer, inte en isolerad PCI-enhet. Intel/AMD lägger till avsedda DRI-noder och NVIDIA sina tillgängliga enheter, ibland för flera kort. En enda familj väljs automatiskt. Kontrollera resultatet, särskilt med flera GPU:er.",
|
||
"imageAlt": "Lista över upptäckta GPU-familjer med namn och PCI-adress"
|
||
},
|
||
"preflight": {
|
||
"title": "Förkontroller",
|
||
"imageAlt": "Erbjudande om lägesbyte för en GPU bunden till vfio-pci",
|
||
"intro": "Tre kontroller, som alla kan blockera eller omdirigera dig:",
|
||
"items": [
|
||
"<strong>SR-IOV-kontroll.</strong> Guiden blockerar en VF eller PF med aktiva VF:er. Det beror på dess breda enhetsval och är inget allmänt förbud i LXC. Konfigurera dessa enheter separat.",
|
||
"<strong>Bunden till vfio-pci.</strong> Den vanliga drivrutinen kan inte skapa <code>/dev/dri/*</code> eller <code>/dev/nvidia*</code>. <switchLink>Byt GPU-läge</switchLink> erbjuds; följ anvisningarna om omstart och återkom sedan.",
|
||
"<strong>Redan konfigurerad.</strong> Om alla enheter finns avslutas skriptet utan att installera om bibliotek. Fortsätter bara med valda familjer som saknas."
|
||
]
|
||
},
|
||
"applyConfig": {
|
||
"title": "Tillämpa ändringarna i LXC-konfigurationen",
|
||
"body1": "Stoppar containern om den körs och ändrar <code>/etc/pve/lxc/<ctid>.conf</code>. Numrerade <code>dev<N></code>-poster innehåller värdens GID för <code>video</code> eller <code>render</code>. Befintliga <code>lxc.mount.entry</code>-bindrader för <code>/dev/dri</code> ersätts av <code>dev:</code>-poster; kontrollera slutlig konfiguration och rättigheter.",
|
||
"body2": "Exempel efter Intel + NVIDIA på samma container:"
|
||
},
|
||
"installDrivers": {
|
||
"title": "Starta containern och installera drivrutiner inuti",
|
||
"body": "Startar containern och väntar högst cirka 30 sekunder på att <code>pct exec</code> svarar. Läser distributionen från <code>/etc/os-release</code> och installerar lämpliga paket.",
|
||
"headerDistro": "Distribution",
|
||
"headerInt": "Intel / AMD",
|
||
"headerNvidia": "NVIDIA",
|
||
"rows": [
|
||
{
|
||
"distro": "Alpine",
|
||
"intel": "apk add mesa-va-gallium intel-media-driver libva-utils",
|
||
"nvidia": "apk add nvidia-utils"
|
||
},
|
||
{
|
||
"distro": "Arch / Manjaro",
|
||
"intel": "pacman -Sy intel-media-driver mesa libva-utils",
|
||
"nvidia": "pacman -Sy nvidia-utils"
|
||
}
|
||
],
|
||
"debianDistro": "Debian / Ubuntu / andra",
|
||
"debianIntel": "apt-get install va-driver-all intel-opencl-icd vainfo",
|
||
"debianNvidia": "Packar upp <code>.run</code> på värden → <code>pct push</code> → installerar med <code>--no-kernel-modules --no-dkms</code>.",
|
||
"whyTitle": "Varför NVIDIA-installationen med .run används på Debian",
|
||
"whyBody": "Paketen kan avvika från värdens version. Biblioteken <strong>måste passa värdens inlästa modul</strong> för NVML och <code>nvidia-smi</code>. Debian/glibc använder cachad <code>.run</code> för värdversionen, packar upp och arkiverar på värden, överför med <code>pct push</code> och installerar med <code>--no-kernel-modules --no-dkms</code>. Alpine och Arch använder förrådspaket; kontrollera versionerna."
|
||
},
|
||
"alignGids": {
|
||
"title": "Anpassa GID:n och återställ tillståndet",
|
||
"body1": "För Intel/AMD läses värdens GID:n för <code>video</code> och <code>render</code>, med 44/104 endast som reservvärden, och sedan ändras <code>/etc/group</code> i containern så att de matchar; körningar med enbart NVIDIA hoppar över steget. Poster som <code>video:44</code> och <code>render:104</code> är exempel, inte universella ID:n. Kontrollera appens gruppmedlemskap och faktiska enhetsrättigheter.",
|
||
"body2": "Vid normal avslutning stoppas en från början stoppad container igen; en som kördes fortsätter köra. Vid start- eller installationsfel, kontrollera slutläget och loggen."
|
||
}
|
||
},
|
||
"vendors": {
|
||
"heading": "Anmärkningar per tillverkare",
|
||
"intelHeading": "Intel iGPU",
|
||
"intelBody": "Intels mediaacceleration, inklusive <em>Quick Sync</em>, beror på GPU-generation, kodekar och appinställningar. Skriptet delar de av <code>/dev/dri/card0</code>, <code>card1</code>, <code>renderD128</code> och <code>renderD129</code> som finns; andra nodnummer läggs inte till. Värden måste redan tillhandahålla dem via sin inbyggda drivrutin, exempelvis <code>i915</code>.",
|
||
"amdHeading": "AMD",
|
||
"amdBody": "AMD använder DRI för Mesa/VA-API. Om värden har <code>/dev/kfd</code> delas även den. ROCm/OpenCL kräver kompatibel hårdvara och bibliotek; enhetsdelning installerar inte hela ROCm-miljön.",
|
||
"nvidiaHeading": "NVIDIA",
|
||
"nvidiaBody": "Delar tillgängliga <code>/dev/nvidia*</code>-enheter. <strong>Matchande drivrutinsversioner</strong> krävs för <code>nvidia-smi</code>. Debian/glibc använder värdversionens <code>.run</code>, Alpine/Arch förrådspaket. Under 2048 MiB inställt RAM erbjuds en tillfällig höjning med återställning; dessutom krävs 1500 MiB ledigt diskutrymme.",
|
||
"updateTitle": "Efter NVIDIA-uppdatering på värden, kontrollera LXC-biblioteken",
|
||
"updateBody": "Gamla bibliotek kan ge versionsfel i <code>nvidia-smi</code>. <nvidiaLink>Värdens NVIDIA-installation</nvidiaLink> erbjuder containeruppdateringar. En ny enhetstilldelning kan avslutas direkt om posterna redan finns och garanterar ingen biblioteksuppdatering. Kontrollera versioner och uppdatera lämpliga paket eller användarinstallation."
|
||
},
|
||
"verification": {
|
||
"heading": "Verifiering",
|
||
"body": "Kontrollera i containern att GPU:n syns och går att använda."
|
||
},
|
||
"troubleshoot": {
|
||
"heading": "Felsökning",
|
||
"mismatchTitle": "nvidia-smi: Failed to initialize NVML: Driver/library version mismatch",
|
||
"mismatchBody": "Biblioteken passar inte den inlästa modulen. Kontrollera versionerna och uppdatera containerns användarmiljö. Cachad <code>.run</code> används för Debian/glibc, men enhetstilldelningen kan avslutas tidigt om alla poster redan finns.",
|
||
"denyTitle": "Tillstånd nekas på /dev/dri/renderD128 inuti containern",
|
||
"denyBody": "Kontrollera enhetsposten och numeriska rättigheter för <code>render</code>, sedan att appens användare tillhör <code>render</code>. Lägg vid behov till användaren i <code>render</code> med <code>usermod -aG render <user></code>; ersätt platshållaren med kontot. Starta om sessionen. Byte av privilegieläge är ingen generell lösning.",
|
||
"vainfoTitle": "vainfo säger: VA-API version 1.xx; misslyckades med att initialisera",
|
||
"vainfoBody": "Kontrollera åtkomst och VA-API-drivrutin. Paketnamn varierar per distribution: exempelvis <code>intel-media-driver</code> för nyare Intel-GPU:er som stöds, <code>i965-va-driver</code> för äldre och <code>mesa-va-drivers</code> för AMD. Meddelandet bevisar inte ensamt ett saknat paket.",
|
||
"logTitle": "Installationslogg",
|
||
"logBody": "Varje körning skriver <code>/tmp/add_gpu_lxc.log</code> på värden. Bifoga loggen när du söker hjälp."
|
||
},
|
||
"related": {
|
||
"heading": "Relaterat",
|
||
"items": [
|
||
{
|
||
"label": "Installera NVIDIA Drivers (Host)",
|
||
"href": "/docs/hardware/nvidia-host",
|
||
"tail": " — installera värdens drivrutin före NVIDIA-delning."
|
||
},
|
||
{
|
||
"label": "Lägg till GPU till VM (Passthrough)",
|
||
"href": "/docs/hardware/gpu-vm-passthrough",
|
||
"tail": " — alternativ för att reservera en GPU för en VM."
|
||
},
|
||
{
|
||
"label": "Byt GPU-läge (VM ↔ LXC)",
|
||
"href": "/docs/hardware/switch-gpu-mode",
|
||
"tail": " — växla GPU:n mellan LXC-delning och VM-tilldelning."
|
||
},
|
||
{
|
||
"label": "GPU Passthrough kommandon",
|
||
"href": "/docs/help-info/gpu-commands",
|
||
"tail": " — snabb referens för relaterade skalkommandon."
|
||
}
|
||
]
|
||
}
|
||
}
|