mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 19:02:31 +00:00
docs: review GPU and Coral guides in all seven translations
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Lägg till Coral TPU i LXC | ProxMenux-dokumentation",
|
||||
"description": "Dela Google Coral TPU via USB eller M.2 / PCIe med en Proxmox-LXC. ProxMenux konfigurerar enheter, behörigheter och monteringar, startar containern och installerar Edge TPU-körmiljön på kompatibla distributioner."
|
||||
},
|
||||
"header": {
|
||||
"title": "Lägg till Coral TPU i LXC",
|
||||
"description": "Dela Coral USB Accelerator eller M.2 / Mini-PCIe med en LXC. ProxMenux hanterar containerkonfiguration och Edge TPU-körmiljö. Alternativet gäller bara TPU; för Quick Sync, VA-API eller NVENC kör du även Lägg till GPU i LXC.",
|
||||
"section": "Hårdvara: GPU:er och Coral-TPU"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad det gör",
|
||||
"body": "Skriver konfigurationen i <code>/etc/pve/lxc/<ctid>.conf</code> för <strong>USB Accelerator</strong>, <strong>M.2 / PCIe Coral</strong> eller båda. Startar containern och installerar Googles <code>libedgetpu</code>-körmiljö. GPU konfigureras separat via <lxcGpuLink>Lägg till GPU i LXC</lxcGpuLink>."
|
||||
},
|
||||
"whenUse": {
|
||||
"heading": "När det används",
|
||||
"body": "För <frigateLink>Frigate</frigateLink> eller en annan kompatibel Linux-app i LXC. Coral utför ML-inferens som stöds i stället för CPU:n. Prestanda beror på modell och hårdvara; videoavkodning och andra uppgifter använder fortfarande resurser."
|
||||
},
|
||||
"prereqs": {
|
||||
"title": "Innan du börjar",
|
||||
"drivers": "<strong>Förbered Coral på värden</strong>. M.2 / PCIe kräver att värddrivrutinen är laddad; USB kräver enhetsåtkomst och rätt behörigheter. Se <hostLink>Installera Coral TPU på värden</hostLink>. Appens körmiljö måste finnas i containern.",
|
||||
"driversCheck": "ls /dev/apex_* 2>/dev/null ; lsusb | grep -E '1a6e:089a|18d1:9302'",
|
||||
"container": "<strong>En befintlig LXC</strong>, helst baserad på <strong>Debian / Ubuntu</strong>: installationen använder <code>apt-get</code>. <strong>Containrar med andra distributioner</strong> kan välja <strong>läge med enbart enhetsåtkomst</strong>, som hoppar över APT-installationen av <code>libedgetpu</code>. Passar om appen redan innehåller körmiljön, som Frigates Docker-avbildning.",
|
||||
"downtime": "<strong>Planera ett kort driftstopp</strong> för containern. Skriptet stoppar den för konfiguration och startar den för installation av körmiljön. Dessa ändringar kräver ingen omstart av värden."
|
||||
},
|
||||
"hostPrep": {
|
||||
"title": "Förbered värden först",
|
||||
"body": "M.2 / PCIe behöver <code>gasket</code>/<code>apex</code> på värden och en fungerande enhetsnod. USB behöver ansluten enhet och behörigheter; appen behöver inte köras på värden. <code>libedgetpu</code> måste finnas där appen körs. Ordning: <strong>förbered värden → LXC-enhetsåtkomst → konfigurera appen</strong>."
|
||||
},
|
||||
"running": {
|
||||
"heading": "Kör skriptet",
|
||||
"body": "Öppna <strong>Hårdvara: GPU och Coral-TPU → Lägg till Coral TPU i LXC</strong> i ProxMenux.",
|
||||
"imageAlt": "Alternativet Lägg till Coral TPU i LXC i hårdvarumenyn"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Så fungerar skriptet",
|
||||
"body": "Välj container. Skriptet konfigurerar USB-åtkomst även utan ansluten USB-Coral och lägger till M.2 / PCIe när den hårdvaran upptäcks."
|
||||
},
|
||||
"walkthrough": {
|
||||
"heading": "Steg för steg",
|
||||
"pick": {
|
||||
"title": "Välj LXC-container",
|
||||
"body": "Väljaren visar lämpliga containrar från <code>pct list</code>; OCI-containrar döljs och hanteras via Apps i OCI-hanteraren. Välj en körande eller stoppad container. Skriptet stoppar den vid behov, konfigurerar den och startar den för installation av körmiljön."
|
||||
},
|
||||
"gpuHint": {
|
||||
"title": "Valfritt förslag om GPU-åtkomst",
|
||||
"body": "Om en GPU hittas men inte är konfigurerad för containern rekommenderas <lxcGpuLink>Lägg till GPU i LXC</lxcGpuLink> för videoavkodning, som Quick Sync, VA-API eller NVDEC. Frågan gäller fortsatt installation av enbart Coral: Ja fortsätter, Nej avslutar så att GPU:n kan konfigureras först."
|
||||
},
|
||||
"usb": {
|
||||
"title": "Konfigurera USB-åtkomst i LXC",
|
||||
"body": "Skapar en udev-regel på värden för <code>/dev/coral</code> och bind-monterar <strong>hela</strong> <code>/dev/bus/usb</code> i containern. Konfigurationen skrivs även utan ansluten USB-Coral och exponerar fler enheter än bara Coral.",
|
||||
"whyTitle": "Varför montera /dev/bus/usb istället för /dev/coral?",
|
||||
"whyBody": "USB-sökvägen, exempelvis <code>/dev/bus/usb/001/005</code>, ändras vid återanslutning. Äldre versioner monterade länken <code>/dev/coral</code> och kunde behålla en inaktuell sökväg. Hela USB-trädet gör den aktuella enhetsnoden synlig. Appen kan fortfarande behöva öppna enheten igen."
|
||||
},
|
||||
"pcie": {
|
||||
"title": "Konfigurera M.2 / PCIe-åtkomst i LXC",
|
||||
"body1": "Om M.2 / PCIe-Coral hittas och <code>/dev/apex_0</code> finns används Proxmox API <code>dev</code> för cgroup2-behörigheter i privilegierade och oprivilegierade LXC:",
|
||||
"body2": "Om <code>/dev/apex_0</code> ännu saknas efter <hostLink>Installera Coral på värden</hostLink> används klassisk cgroup2-konfiguration och en valfri bind-montering med <code>create=file</code>. Det skapar inte i sig en fungerande enhet:",
|
||||
"rebootTitle": "Starta om värden först om du nyss installerat Coral-drivrutiner",
|
||||
"rebootBody": "Reservmonteringen laddar inte värdens <code>apex</code>-drivrutin. Ladda den eller starta om efter installationen och kontrollera enheten. Kör sedan skriptet igen för den moderna enhetsposten och starta om containern."
|
||||
},
|
||||
"drivers": {
|
||||
"title": "Starta LXC och installera Coral-körmiljön",
|
||||
"body": "Startar containern och väntar upp till 15 sekunder på statusen running, och kör sedan installationen inuti med <code>pct exec</code>. Installeraren:",
|
||||
"items": [
|
||||
"Kör <code>apt-get update</code>.",
|
||||
"Installerar förutsättningarna för Coral-paketförrådet: <code>gnupg</code>, <code>curl</code> och <code>ca-certificates</code>.",
|
||||
"Importerar Googles Coral-GPG-nyckel till <code>/etc/apt/keyrings/coral-edgetpu.gpg</code>, samma sökväg som värdinstallationen, och lägger till APT-förrådet <code>coral-edgetpu-stable</code> med <code>signed-by=</code>.",
|
||||
"Installerar <code>libedgetpu1-std</code> som standard. Om M.2-Coral hittas erbjuds <code>libedgetpu1-std</code> eller <code>libedgetpu1-max</code>. Paketvalet konfigurerar inte i sig appens detekteringsinställningar."
|
||||
],
|
||||
"noIgpuTitle": "Varför installeras inga iGPU-drivrutiner här?",
|
||||
"noIgpuBody": "Tidigare installerades även <code>va-driver-all</code>, <code>intel-opencl-icd</code> och andra Intel-paket för Quick Sync tillsammans med Coral. Det gav förvirrande fel när bara Coral önskades. iGPU konfigureras nu via <lxcGpuLink>Lägg till GPU i LXC</lxcGpuLink>; kör det först om du vill ha hårdvaruavkodning av video.",
|
||||
"debianTitle": "Andra distributioner: enbart enhetsåtkomst",
|
||||
"debianBody": "Använder <code>apt-get</code> på Debian/Ubuntu. För <strong>Alpine, Arch, RHEL eller SUSE</strong>, identifierade via <code>/etc/os-release</code>, erbjuds <em>fortsätt med enbart enhetsåtkomst</em> eller <em>avbryt</em>. Det första konfigurerar <code>/etc/pve/lxc/<ctid>.conf</code> utan att installera <code>libedgetpu</code>. Läget passar när appen redan innehåller körmiljön, som Frigate Docker. Installera annars <code>libedgetpu</code> enligt <coralLink>Googles officiella guide</coralLink>."
|
||||
},
|
||||
"summary": {
|
||||
"title": "Sammanfattning",
|
||||
"body": "Till sist visas Coral USB och M.2 med ✓ eller ⚠ beroende på upptäckt hårdvara. Containern fortsätter köra så att du kan konfigurera Frigate, CodeProject.AI eller din app."
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Motsvarande manuella steg",
|
||||
"body": "Om du vill se exakt vad som går in i LXC-konfigen eller tillämpa den för hand:",
|
||||
"usbHeading": "USB Coral",
|
||||
"pcieHeading": "M.2 / PCIe Coral",
|
||||
"runtimeHeading": "I containern: Coral-körmiljö"
|
||||
},
|
||||
"verification": {
|
||||
"heading": "Verifiering",
|
||||
"body": "Öppna ett skal i containern och kontrollera att Coral syns:"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"apexTitle": "LXC har startat men /dev/apex_0 saknas",
|
||||
"apexBody": "Kontrollera värdens drivrutin: <code>lsmod | grep apex</code>. Om den saknas, prova <code>modprobe apex</code> eller starta om efter installationen. När <code>/dev/apex_0</code> finns på värden, kontrollera LXC-enhetsposten och starta om med <code>pct stop <ctid> && pct start <ctid></code>.",
|
||||
"replugTitle": "USB-Coral försvinner efter återanslutning till en annan port",
|
||||
"replugBody": "Kontrollera att LXC monterar <code>/dev/bus/usb</code> i stället för länken <code>/dev/coral</code>. Konfigurationen ska innehålla <code>lxc.mount.entry: /dev/bus/usb dev/bus/usb ...</code> utan direkt beroende av <code>/dev/coral</code>. Kör skriptet igen om konfigurationen är gammal.",
|
||||
"alpineTitle": "Alpine / Arch / RHEL / SUSE: körmiljö inte installerad",
|
||||
"alpineBody": "<em>Läget med enbart enhetsåtkomst</em> konfigurerar enheten utan att installera <code>libedgetpu</code>. Använd ett kompatibelt communitypaket eller bygg från källkod; kontrollera tillgängligheten före kommandon som <code>apk add</code> i Alpine. Frigate kan innehålla körmiljön. Med Docker i LXC måste M.2 även vidarebefordras med <code>--device /dev/apex_0:/dev/apex_0</code>, eller USB monteras i Docker: enbart LXC-monteringen räcker inte.",
|
||||
"frigateTitle": "Frigate visar ”Coral EdgeTPU detected but not available”",
|
||||
"frigateBody": "Kontrollera körmiljö, enhetssynlighet och läs-/skrivåtkomst för appens faktiska process. För USB, kontrollera behörigheter och eventuellt <code>plugdev</code>-medlemskap. För M.2, granska <code>/dev/apex_0</code> med <code>ls -l /dev/apex_0</code>. Ett namn som <code>apex</code> i <code>/etc/group</code> räcker inte: numeriska GID och LXC-mappning måste stämma. Kontrollera även om en annan process använder TPU:n; byt inte först till privilegierat läge.",
|
||||
"logsTitle": "Kontrollera både värd- och containerloggar",
|
||||
"logsBody": "På värden, granska kärnmeddelanden med <code>journalctl -k | grep -i -e apex -e gasket -e usb</code>. I LXC, läs apploggarna; med nästlad Docker använd <code>docker logs <container></code>. Behörigheter, saknad körmiljö, USB-anslutning eller en annan process som använder TPU:n kan orsaka fel."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Installera Coral TPU på värden",
|
||||
"href": "/docs/hardware/install-coral-tpu-host",
|
||||
"tail": " — förutsättning för att använda M.2 / PCIe-Coral i en CT."
|
||||
},
|
||||
{
|
||||
"label": "Lägg till GPU i LXC",
|
||||
"href": "/docs/hardware/igpu-acceleration-lxc",
|
||||
"tail": " — GPU-åtkomst, som ofta kombineras med Coral i Frigate."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,178 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Lägg till GPU i VM | ProxMenux-dokumentation",
|
||||
"description": "Tilldela en fysisk GPU till en Proxmox-VM. ProxMenux kontrollerar IOMMU, konfigurerar VFIO och VM-enheter samt upptäcker konflikter med andra VM:er eller LXC."
|
||||
},
|
||||
"header": {
|
||||
"title": "Lägg till GPU till VM (Passthrough)",
|
||||
"description": "Identifierar Intel-, AMD- eller NVIDIA-GPU:er för direkt åtkomst från en VM. Kontrollerar IOMMU och tillhörande enheter, konfigurerar VFIO och VM samt tillämpar kompatibilitetsregler. Kontrollera alla berörda enheter.",
|
||||
"section": "Hårdvara: GPU:er och Coral-TPU"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad det gör",
|
||||
"body": "Automatiserar värd- och <code>hostpci</code>-stegen i <pveLink>Proxmox-dokumentationen för PCI-passthrough</pveLink>. Kontrollerar tilldelningar i <em>andra</em> gäster och erbjuder konflikthantering. Garanterar inte stöd för varje GPU, återställningsmetod eller gästdrivrutin."
|
||||
},
|
||||
"who": {
|
||||
"heading": "Vem är detta för?",
|
||||
"body": "För direkt GPU-åtkomst från en <strong>virtuell maskin</strong> via VFIO. Så länge GPU:n är bunden till VFIO kan värdens drivrutin inte använda den, även med stoppad VM. För delning med <em>LXC</em>, använd <lxcLink>Lägg till GPU i LXC</lxcLink>."
|
||||
},
|
||||
"prereqs": {
|
||||
"title": "Innan du börjar",
|
||||
"gpu": "Fysiskt installerad <strong>kompatibel GPU</strong>. Skriptet hittar Intel, AMD och NVIDIA med <code>lspci</code>.",
|
||||
"gpuCheck": "lspci | grep -iE 'VGA|3D|Display'",
|
||||
"iommu": "<strong>IOMMU-stöd</strong> krävs i hårdvara och vid behov firmware (Intel VT-d eller AMD-Vi). Kontrollerar systemet och kan konfigurera Linux; ändrar inte BIOS/UEFI och bevisar inte att inaktiv IOMMU är avstängd där.",
|
||||
"q35": "Guiden kräver <strong>q35</strong> och avvisar <code>i440fx</code>. Maskintyp och BIOS/UEFI är separata inställningar. Byte av chipset på en befintlig VM kräver planering och sker inte automatiskt.",
|
||||
"q35Check": "qm config VMID | grep machine",
|
||||
"moreGpus": "Förbered <strong>en annan GPU eller alternativ åtkomst</strong> via SSH, IPMI eller seriellt. Reserverad primär GPU kan släcka lokal bild. För <em>NVIDIA</em> kan ett kort utanför berörd IOMMU-grupp stanna på värden.",
|
||||
"nvidiaInstalled": "Efter <nvidiaLink>NVIDIA-installation på värden</nvidiaLink> reserveras valda funktioner för <code>vfio-pci</code> i stället för <code>nvidia</code>. Modulen <code>nvidia</code> kan finnas kvar för <strong>andra</strong> kort utanför berörd IOMMU-grupp. Kontrollera med <code>nvidia-smi</code>."
|
||||
},
|
||||
"pickOne": {
|
||||
"title": "Exklusiv VM-tilldelning eller LXC-delning",
|
||||
"body": "En GPU bunden till <code>vfio-pci</code> för VM genomgång kan inte samtidigt användas av värden eller en LXC. Om du har två GPU kan du ägna en till varje väg. Om du bara har en, välj:",
|
||||
"vmItem": "<strong>VM:</strong> direkt och exklusiv åtkomst för den VM:n.",
|
||||
"lxcItem": "<strong>LXC (<lxcLink>Lägg till GPU i LXC</lxcLink>):</strong> delar enheten med värden och andra containrar via den vanliga drivrutinen."
|
||||
},
|
||||
"running": {
|
||||
"heading": "Kör installationen",
|
||||
"body": "Öppna ProxMenux och välj <strong>Hårdvara: GPU:er och Coral-TPU → Lägg till GPU i VM</strong>.",
|
||||
"imageAlt": "Menyval för att lägga till GPU i VM"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Så fungerar skriptet",
|
||||
"body": "Identifiering och val föregår huvudändringarna, som bekräftas i en sammanfattning. Aktivering av IOMMU har en tidigare egen bekräftelse och kan redan ändra startkonfigurationen. Senare ljudrensning kan också kräva ett val."
|
||||
},
|
||||
"walkthrough": {
|
||||
"heading": "Steg för steg",
|
||||
"detect": {
|
||||
"title": "Upptäck GPU och kontrollera IOMMU",
|
||||
"body": "Kontrollerar aktiv IOMMU, inte bara parametrar. Separat bekräftelse kan lägga till <code>intel_iommu=on</code> eller <code>amd_iommu=on</code> med <code>iommu=pt</code>. Väljer <code>/etc/kernel/cmdline</code> vid ZFS-markör som <code>root=ZFS=</code>, annars <code>/etc/default/grub</code>. Heuristiken bevisar inte vilken starthanterare som används. Starta om och kontrollera faktiska grupper.",
|
||||
"tipTitle": "Har du redan gjort efterinstallationen?",
|
||||
"tipBody": "Om <postLink>VFIO IOMMU-stöd</postLink> redan är inställt och aktivt i kerneln godkänns kontrollen. En inställning för nästa start bevisar inte att det är aktivt nu.",
|
||||
"imageAlt": "Lista över upptäckta GPU med leverantör och PCI-adress"
|
||||
},
|
||||
"preflight": {
|
||||
"title": "Välj GPU och kör förkontroller",
|
||||
"intro": "När du väljer GPU kör manuset en serie kontroller som kan varje blockera ytterligare framsteg:",
|
||||
"items": [
|
||||
"<strong>SR-IOV-kontroll.</strong> Avvisar VF:er och PF:er med aktiva VF:er eftersom flödet tilldelar hela enheter, inte konfigurerar SR-IOV. Ställ in SR-IOV separat på kompatibel hårdvara.",
|
||||
"<strong>En enda GPU.</strong> Den lokala konsolen kan förlora bildutmatningen när VFIO reserverar GPU:n. Kontrollera först SSH- eller webbåtkomst från en annan dator.",
|
||||
"<strong>AMD-policy för återställning.</strong> Läser <code>/sys/bus/pci/devices/<pci>/reset_method</code>. APU eller separat kort utan FLR <em>blockeras av guidens policy</em>; okänd undertyp utan FLR kräver bekräftelse. Det bevisar inte att funktionen är omöjlig i alla miljöer.",
|
||||
"<strong>D3cold-läge.</strong> Guiden blockerar AMD-kort som rapporterar <code>D3cold</code> på grund av risk för aktiveringsfel. Kontrollera strömhantering och firmware.",
|
||||
"<strong>IOMMU-grupp.</strong> Läser <code>/sys/kernel/iommu_groups/</code> och tar med <em>alla medlemmar utom bryggor</em>, även nätverks- eller lagringskontroller. Kontrollera före bekräftelse. Om IOMMU väntar på omstart planeras först bara GPU-funktionen; kontrollera isoleringen efteråt."
|
||||
],
|
||||
"audioIntro": "<strong>Tillhörande ljud.</strong> Två fall beroende på var kontrollern finns:",
|
||||
"audioDgpu": "<strong>Separat GPU:</strong> HDMI-ljud finns ofta på funktion <code>.1</code> i samma PCI-plats och tas med om det hittas. Om värden använde ljudet förlorar den åtkomsten när det reserveras för VM:n.",
|
||||
"audioIgpu": "<strong>Utan ljudfunktion <code>.1</code>:</strong> kan ljudet finnas på en annan enhet som <code>00:1f.3</code>. Listar kontroller och drivrutiner, exempelvis <code>snd_hda_intel</code>. Som standard väljs <strong>ingen</strong>; välj bara de som behövs."
|
||||
},
|
||||
"pickVm": {
|
||||
"title": "Välj mål-VM",
|
||||
"body": "Välj VM i listan. Kräver q35 och återanvänder befintliga GPU-poster där det går. BIOS/UEFI är en separat inställning, inte en maskintyp. Chipset och gästsystemets startläge ändras inte automatiskt.",
|
||||
"imageAlt": "Val av VM efter namn, ID och status"
|
||||
},
|
||||
"switchMode": {
|
||||
"title": "Hantera befintliga tilldelningar",
|
||||
"intro": "Manuset skannar varje VM-konfig och varje LXC-konfig på värden som letar efter GPU du valde. Tre möjliga resultat:",
|
||||
"items": [
|
||||
"<strong>GPU tillgänglig.</strong> Fortsätter utan att ta bort tilldelningar.",
|
||||
"<strong>Tilldelad till en annan VM.</strong> Stoppa först källan. Välj <em>behåll poster och inaktivera automatisk start</em> eller <em>ta bort poster och behåll automatisk start</em>. Med aktiv <code>vfio-pci</code> utan nödvändiga värdändringar kan VM→VM ske utan omstart av värden.",
|
||||
"<strong>Används av LXC.</strong> För vanliga containrar, <em>behåll konfigurationen och inaktivera automatisk start</em> eller <em>ta bort enheter och äldre <code>lxc.cgroup2.devices.allow</code>/<code>lxc.mount.entry</code>-regler men behåll automatisk start</em>. OCI behåller konfigurationen och stoppas utan automatisk start; ta bort dess GPU i Apps. Familjebaserad identifiering kan omfatta fler kort."
|
||||
],
|
||||
"imageAlt": "Dialog erbjudande att ta bort GPU från en LXC innan tilldela den till VM",
|
||||
"smartTitle": "Granska tillhörande ljud när GPU:n tas bort",
|
||||
"smartBody": "Därefter kan en lista med <strong>möjligen oanvända ljudenheter</strong> i käll-VM:n visas. Avmarkera sådant som fortfarande behövs. Exempelvis kan <code>02:00.1</code> behållas medan <code>00:1f.3</code> föreslås tas bort. Valet styr borttagningen; alla ljud-/bildkopplingar är inte garanterade."
|
||||
},
|
||||
"audioPick": {
|
||||
"title": "Välj nödvändiga kontroller om .1-ljud saknas",
|
||||
"body": "Det händer bara för Intel iGPU och liknande uppsättningar av split-audio. En checklista visar varje PCI ljudkontroll på värden (exklusive någon redan i GPU IOMMU grupp), märkt med sin nuvarande drivrutin. Välj de du vill - eller ingen, om VM inte behöver ljud från värd hårdvaran.",
|
||||
"imageAlt": "Checklista dialog med varje värd PCI ljudkontroller (BDF + förare) när GPU har ingen .1 syskon ljud",
|
||||
"warnTitle": "Välj inte ljud som värden behöver",
|
||||
"warnBody": "Ljudtilldelning kan ta bort värdens åtkomst; kontrollern kan inte samtidigt tillhöra en annan aktiv VM. Lämna onödigt ljud omarkerat och kontrollera tilldelningarna. Konsolens pip kommer inte nödvändigtvis från PCI-ljud."
|
||||
},
|
||||
"summary": {
|
||||
"title": "Granska bekräftelse sammanfattning",
|
||||
"body": "Granska slutplanen, särskilt varje IOMMU-medlem, och avbryt om något är fel. Stoppar huvudändringarna men återställer inte en tidigare separat bekräftad IOMMU-startändring.",
|
||||
"imageAlt": "Översikt över planerade ändringar på värd och VM"
|
||||
},
|
||||
"hostApply": {
|
||||
"title": "Värdförändringar tillämpas",
|
||||
"intro": "Tillämpningsfasen ändrar värd och VM. Tillhörande ljudrensning kan fortfarande kräva ett val. Möjliga ändringar:",
|
||||
"items": [
|
||||
"<code>/etc/modules</code> - tillägg <code>vfio</code>, <code>vfio_iommu_type1</code>, <code>vfio_pci</code> (plus) <code>vfio_virqfd</code> på Kernels < 6.2).",
|
||||
"<code>/etc/modprobe.d/vfio.conf</code> — AMD/Intel: <code>options vfio-pci ids=<vendor:device,...> disable_vga=1</code>. NVIDIA: <code>softdep nvidia pre: vfio-pci</code> (<code>_drm</code>/<code>_modeset</code>/<code>_uvm</code>); den faktiska bindningen sker per BDF. AMD lägger till inläsningsordningen <code>softdep</code>: <code>vfio-pci</code> → <code>radeon</code>/<code>amdgpu</code>.",
|
||||
"Skriver <code>/etc/modprobe.d/iommu_unsafe_interrupts.conf</code> och <code>kvm.conf</code> med <code>allow_unsafe_interrupts=1</code> och <code>ignore_msrs=1</code>. Detta är skriptets kompatibilitetsval, inga universella Windows/macOS-krav; osäkra avbrott försvagar avbrottsomappningens skydd.",
|
||||
"<code>/etc/modprobe.d/blacklist.conf</code>: NVIDIA — <code>nouveau</code>/<code>lbm-nouveau</code>; AMD — <code>radeon</code> + <code>amdgpu</code>; Intel — <code>i915</code>. Dessa regler per tillverkare kan påverka andra kort med samma drivrutin. Modulen <code>nvidia</code> blockeras <strong>bara</strong> via <code>/etc/modprobe.d/proxmenux-nvidia-vfio-blacklist.conf</code> när <em>alla</em> värdens NVIDIA-kort är registrerade för VFIO.",
|
||||
"<code>/etc/udev/rules.d/10-proxmenux-vfio-bind.rules</code> + <code>/etc/proxmenux/vfio-bind.bdfs</code> — <strong>Endast NVIDIA.</strong> Sätter <code>ATTR'{'driver_override'}'=\"vfio-pci\"</code> vid PCI ADD för registrerade BDF:er, inklusive berörda IOMMU-gruppfunktioner. Utanför grupperna kan <code>nvidia</code> behållas. BDF-policy delar inte upp hårdvarans IOMMU-grupp.",
|
||||
"<strong>Endast AMD.</strong> Försöker läsa ROM från <code>/sys/bus/pci/.../rom</code> eller ACPI VFCT till <code>/usr/share/kvm/vbios_<card>.bin</code>. Vid framgång används <code>romfile=</code>. En giltig ROM garanterar inte GPU-initialisering.",
|
||||
"<strong>Endast NVIDIA.</strong> Stoppar och inaktiverar <code>nvidia-persistenced</code>, <code>nvidia-powerd</code>, <code>nvidia-fabricmanager</code> bara när alla NVIDIA-kort reserverats för VFIO. Vid blandad användning behålls tjänsterna och <code>nvidia</code> för vanliga värdkort.",
|
||||
"<code>update-initramfs -u -k all</code> - körs endast om något av ovanstående faktiskt ändrats."
|
||||
]
|
||||
},
|
||||
"vmApply": {
|
||||
"title": "VM konfig appliceras via qm set",
|
||||
"body": "VM-konfig på <code>/etc/pve/qemu-server/<vmid>.conf</code> uppdateras via <code>qm set</code> (aldrig via direkt <code>sed</code>):",
|
||||
"after1": "Lägger till <code>x-vga=1</code> för AMD och NVIDIA, <strong>inte</strong> Intel. Det är skriptets policy, inget bevis för att alla Intel-iGPU:er saknar firmware eller att flaggan alltid orsakar låsningar.",
|
||||
"after2": "Ytterligare <code>hostpciN</code>-linjer läggs till om GPUs IOMMU-grupp innehåller andra enheter du behöver för att passera tillsammans."
|
||||
},
|
||||
"reboot": {
|
||||
"title": "Starta om när värdändringen kräver det",
|
||||
"body": "Följ omstartsanvisningen vid ändringar av start eller drivrutiner och kontrollera aktiv GPU-bindning före VM-start. Sparad konfiguration bevisar inte att den är aktiv. VM→VM med rätt VFIO-läge kan slippa värdomstart.",
|
||||
"imageAlt": "Sammanfattning skärmen visar vad som ändrades, följt av en omstart prompt"
|
||||
}
|
||||
},
|
||||
"vendors": {
|
||||
"heading": "Anmärkningar per tillverkare",
|
||||
"nvidiaHeading": "NVIDIA",
|
||||
"nvidiaBody": "Behåller en äldre lösning för <em>Code 43</em>: <code>hidden=1</code>, ID <code>NV43FIX</code> i <code>args</code> och <code>kvm=off</code>. Inget universellt krav för moderna GeForce-drivrutiner: NVIDIA aktiverade Windows-VM-passthrough i R465. Felet kan ha andra orsaker; kontrollera GPU och drivrutin.",
|
||||
"nvidiaMultiHeading": "Multi-GPU NVIDIA stöd",
|
||||
"nvidiaMultiBody": "Blandad NVIDIA-användning <strong>per BDF</strong>. Registrerar <code>vfio-pci</code>-funktioner efter adress, inte bara ID <code>vendor:device</code>. Utanför berörda grupper kan <code>nvidia</code> behållas; kontrollera med <code>nvidia-smi</code>. Isolerar inte två kort i samma grupp.",
|
||||
"amdHeading": "AMD",
|
||||
"amdBody": "Vissa AMD-GPU:er misslyckas med återställning efter VM-stopp. Guiden kontrollerar rapporterade egenskaper, inte alla verkliga cykler. <vendorResetLink>vendor-reset</vendorResetLink> stöder en begränsad lista och kräver kompatibel kernel samt tidig inläsning; installeras inte automatiskt. Även <em>RadeonResetBugFix</em> för Windows är hårdvaruberoende, utan allmän garanti.",
|
||||
"intelHeading": "Intel iGPU",
|
||||
"intelBody": "Full Intel-iGPU-passthrough och SR-IOV är skilda flöden. Guiden reserverar hela enheten för en VM utan <code>x-vga=1</code>. <sriovLink>i915-sriov-dkms</sriovLink> kräver kompatibel hårdvara och kernel; ”UHD 630+” är ingen kompatibilitetsregel. Planera alternativ värdåtkomst."
|
||||
},
|
||||
"verification": {
|
||||
"heading": "Verifiering"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"code43Title": "Kod 43 i Windows (NVIDIA)",
|
||||
"code43Body": "Code 43 bevisar inte att KVM-döljning misslyckats. Granska <code>qm config VMID | grep -E \"cpu|args\"</code> med rätt VMID samt <code>hidden=1</code> och <code>hv_vendor_id=NV43FIX</code>. Kontrollera även gästdrivrutin, firmware och tilldelning. En ny körning kan avslutas direkt vid befintlig tilldelning.",
|
||||
"amdResetTitle": "AMD GPU fungerar en gång, misslyckas på VM omstart",
|
||||
"amdResetBody": "Ett återställningsfel är en möjlig orsak. Omstart eller av-/påslagning kan hjälpa tillfälligt. Kontrollera stöd och tidig inläsning av <code>vendor-reset</code>; enbart <code>softdep amdgpu pre: vendor-reset</code> garanterar inte inläsning före VFIO. Även <em>RadeonResetBugFix</em> kräver kompatibel GPU.",
|
||||
"stuckBootTitle": "VM fastnade start / GPU inte upptäckt",
|
||||
"stuckBootBody": "Kontrollera den verkliga adressen med <code>lspci -nnk -s PCI_ADDRESS</code>; förvänta <code>Kernel driver in use: vfio-pci</code>. Ersätt PCI_ADDRESS. Om vanlig drivrutin är aktiv, granska bindningspolicyn, inte bara <code>/etc/modprobe.d/blacklist.conf</code>; NVIDIA använder BDF-status. Läs <code>dmesg | grep vfio</code>. Efter rättning, kör <code>update-initramfs -u -k all</code> och följ omstartsplanen.",
|
||||
"darkTitle": "Värd konsol går mörkt efter omstart och jag kan inte SSH",
|
||||
"darkBody": "Svart bild bevisar inte att värden är avstängd. Om även SSH misslyckas, kontrollera nätverk och kontroller i IOMMU-gruppen. Återfå åtkomst via IPMI, seriell konsol eller räddningsmiljö; granska <code>/etc/pve/qemu-server/<vmid>.conf</code> och återställ bara berörda tilldelningar och regler. Radera inte annan konfiguration.",
|
||||
"logTitle": "Kolla installationsloggen",
|
||||
"logBody": "Varje körning skriver <code>/tmp/add_gpu_vm.log</code>. Bifoga loggen när du söker hjälp."
|
||||
},
|
||||
"revert": {
|
||||
"heading": "Återställ ändringar manuellt",
|
||||
"intro": "Stoppa VM:n och ta bara bort berörda PCI-tilldelningar under Hårdvara eller med det uttryckliga indexet nedan. Det lämnar inte tillbaka GPU:n till värdens drivrutin. Använd Byt GPU-läge för det steget och kontrollera berörda gäster före bekräftelse."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Installera NVIDIA Drivers (Host)",
|
||||
"href": "/docs/hardware/nvidia-host",
|
||||
"tail": " — förbered drivrutinen för kort som stannar på värden; en VFIO-bunden GPU kan inte använda den samtidigt."
|
||||
},
|
||||
{
|
||||
"label": "Lägg till GPU i LXC",
|
||||
"href": "/docs/hardware/igpu-acceleration-lxc",
|
||||
"tail": " - alternativ modell: dela GPU med flera containrar istället för att dedikera den till en VM."
|
||||
},
|
||||
{
|
||||
"label": "Byt GPU-läge (VM ↔ LXC)",
|
||||
"href": "/docs/hardware/switch-gpu-mode",
|
||||
"tail": " — växla samma GPU mellan delning och exklusiv tilldelning."
|
||||
},
|
||||
{
|
||||
"label": "GPU Passthrough kommandon",
|
||||
"href": "/docs/help-info/gpu-commands",
|
||||
"tail": " - lspci, IOMMU-verifiering, qm set hostpci referens."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,185 @@
|
||||
{
|
||||
"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> 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>-enheter. Startar containern, installerar distributionspaket och anpassar <code>video</code> och <code>render</code>. Acceleration kräver 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 undantas; enheterna ändras under Apps i OCI-hanteraren. Containern stoppas för konfigurering, startas för installation och återgår normalt till ursprungligt läge.",
|
||||
"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 och ändrar <code>/etc/pve/lxc/<ctid>.conf</code>. Poster av typen <code>dev<N></code> innehåller valda GID:n. Mekanismen <code>dev:</code> ersätter här manuella <code>lxc.mount.entry</code>-regler. 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": "Läser värdens GID:n för <code>video</code> och <code>render</code>, med 44/104 som reservvärden, och ändrar <code>/etc/group</code> i containern. <code>video:44</code> och <code>render:104</code> är exempel, inte universella ID:n. Kontrollera appens grupper och faktiska rä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": "Intel-acceleration med <em>Quick Sync</em> beror på generation, kodekar och appinställningar. Delar befintliga noder som <code>/dev/dri/card0</code> och <code>/dev/dri/renderD128</code>; numreringen kan variera. Värdens vanliga drivrutin, exempelvis <code>i915</code>, måste tillhandahålla dem.",
|
||||
"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."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,203 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Installera Coral TPU på värden | ProxMenux-dokumentation",
|
||||
"description": "Installerar Coral-komponenter på Proxmox VE efter upptäckt hårdvara: gasket/apex med DKMS för M.2 / Mini-PCIe och libedgetpu1-std för USB. Kör båda flödena om båda typerna hittas."
|
||||
},
|
||||
"header": {
|
||||
"title": "Installera Coral TPU på värden",
|
||||
"description": "Förbered Proxmox-värden för Coral och LXC-delning. Identifierar M.2 / Mini-PCIe, USB eller båda och kör rätt flöde: DKMS-moduler för PCIe och Google Edge TPU-körmiljö för USB.",
|
||||
"section": "Hårdvara: GPU:er och Coral-TPU"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad det gör",
|
||||
"body": "En <strong>gemensam installation med hårdvaruidentifiering</strong>. PCIe använder <code>gasket</code> och <code>apex</code> med DKMS; framtida byggen kräver kompatibel källkod och headers. USB använder <code>libedgetpu1-std</code>. Båda flödena körs om båda typerna hittas. USB-körmiljön ska finnas där appen körs; för enbart LXC behövs den inte nödvändigtvis även på värden."
|
||||
},
|
||||
"which": {
|
||||
"heading": "Vilken Coral har jag?",
|
||||
"body": "PCIe- och USB-modeller har olika format och krav. Skriptet stöder båda; identifiera din enhet före körning.",
|
||||
"headerForm": "Formfaktor",
|
||||
"headerDetect": "Detektering",
|
||||
"headerInstall": "Installationstyp",
|
||||
"headerReboot": "Starta om?",
|
||||
"pcieForm": "M.2 / Mini-PCIe",
|
||||
"pcieFormSub": "(M.2-kort finns med en eller två Edge TPU:er)",
|
||||
"pcieDetect": "PCI-tillverkar-ID <code>1ac1</code>",
|
||||
"pcieInstall": "Kernel modul (gasket + apex) via DKMS",
|
||||
"pcieReboot": "Ja",
|
||||
"usbForm": "USB-accelerator",
|
||||
"usbFormSub": "(liten plastdongel)",
|
||||
"usbDetect": "USB <code>1a6e:089a</code> (oprogrammerad) / <code>18d1:9302</code> (programmerad)",
|
||||
"usbInstall": "Användarkörmiljö <code>libedgetpu1-std</code> från Googles APT-förråd",
|
||||
"usbReboot": "Nej"
|
||||
},
|
||||
"prereqs": {
|
||||
"title": "Innan du börjar",
|
||||
"coral": "<strong>En ansluten Coral</strong> (M.2, Mini-PCIe eller USB) för installation. Utan upptäckt hårdvara kan skriptet städa eller ta bort befintliga komponenter, men installerar ingen ny hårdvaruväg.",
|
||||
"coralCheck": "lspci -d 1ac1: ; lsusb | grep -E '1a6e:089a|18d1:9302'",
|
||||
"internet": "<strong>Internetanslutning</strong> på värden för att klona PCIe-drivrutinen från GitHub eller hämta <code>libedgetpu1-std</code> från Googles APT-förråd för USB.",
|
||||
"headers": "<strong>Kernelheaders tillgängliga via APT</strong>: <code>proxmox-headers-$(uname -r)</code>. Behövs bara för PCIe/M.2; skriptet installerar dem.",
|
||||
"reboot": "<strong>Planera en omstart</strong> för PCIe. Skriptet försöker läsa in de byggda modulerna; en omstart kontrollerar även automatisk inläsning."
|
||||
},
|
||||
"hostPrepTip": {
|
||||
"title": "Detta förbereder bara värden",
|
||||
"body": "Förbereder värden för <em>åtkomst till enheten</em> utan att konfigurera eller testa appen. För att <em>använda</em> Coral i en kompatibel app som Frigate, följ <lxcLink>Lägg till Coral TPU i LXC</lxcLink>."
|
||||
},
|
||||
"running": {
|
||||
"heading": "Kör installationen",
|
||||
"body": "Öppna ProxMenux på värden och välj <strong>Hårdvara: GPU:er och Coral-TPU → Installera/uppdatera Coral TPU på värden</strong>.",
|
||||
"imageAlt": "Menyval för att installera eller uppdatera Coral TPU på värden"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Så fungerar skriptet",
|
||||
"body": "Identifierar först hårdvaran och tar fram rätt plan. Installationen kräver bekräftelse."
|
||||
},
|
||||
"walkthrough": {
|
||||
"heading": "Steg för steg",
|
||||
"detect": {
|
||||
"title": "Hårdvaruidentifiering",
|
||||
"body": "Söker efter tillverkare <code>0x1ac1</code> i <code>/sys/bus/pci/devices/*/vendor</code> och använder <code>lsusb</code> för USB. Det finns <strong>två</strong> USB-ID:n beroende på firmwareläget:",
|
||||
"items": [
|
||||
"<code>1a6e:089a</code> — Global Unichip, <em>oprogrammerat</em> läge innan körmiljön läser in firmware.",
|
||||
"<code>18d1:9302</code> — Google, <em>programmerat</em> läge efter att firmware lästs in."
|
||||
],
|
||||
"outro": "Om varken Coral eller en befintlig installation hittas visas ett meddelande och skriptet avslutas. Befintliga komponenter kan fortfarande öppna menyn för rensning eller borttagning."
|
||||
},
|
||||
"prompt": {
|
||||
"title": "Bekräfta installationen",
|
||||
"body": "Före installationen visas en dialog med enheter och planerade komponenter. Avbryt för att hoppa över installationen. Valfri rensning av äldre komponenter har en egen tidigare bekräftelse.",
|
||||
"imageAlt": "Översikt över Coral-enheter och installationssteg"
|
||||
},
|
||||
"pcie": {
|
||||
"title": "PCIe: modulerna gasket och apex med DKMS",
|
||||
"body": "Körs bara om en PCIe/M.2-Coral hittas. Bygger moduler för den kernel som värden kör.",
|
||||
"items": [
|
||||
"<strong>Rensning.</strong> Om en tidigare installation av <code>gasket-dkms</code> lämnat paketen i felaktigt tillstånd försöker skriptet rensa bort den före bygget.",
|
||||
"<strong>Byggberoenden:</strong> <code>git</code>, <code>dkms</code>, <code>build-essential</code>, <code>proxmox-headers-$(uname -r)</code>."
|
||||
],
|
||||
"cloneIntro": "<strong>Klonar drivrutinens källkod.</strong> Föredrar <feranickLink>feranick/gasket-driver</feranickLink>, annars används <googleLink>google/gasket-driver</googleLink>. Bygget kräver en kompatibel kernel. Google-koden får följande versionsberoende ändringar:",
|
||||
"kernelPatches": [
|
||||
"Från kernel 6.5 ersätter reservpatchen <code>no_llseek</code> med <code>noop_llseek</code>.",
|
||||
"Kernel 6.13 eller senare: ändrar argumentet till <code>MODULE_IMPORT_NS(DMA_BUF)</code> till en strängliteral."
|
||||
],
|
||||
"afterItems": [
|
||||
"<strong>Kopierar källkoden till <code>/usr/src/gasket-1.0/</code>,</strong> skapar <code>dkms.conf</code> och registrerar med <code>dkms add</code>.",
|
||||
"<strong>Bygger och installerar:</strong> <code>dkms build</code> följt av <code>dkms install</code>. Vid fel visas de sista 50 raderna i <code>make.log</code> om filen finns.",
|
||||
"<strong>Skapar gruppen <code>apex</code> och udev-regler</strong> (<code>/etc/udev/rules.d/99-coral-apex.rules</code>) för att tilldela <code>/dev/apex_*</code> rätt grupp.",
|
||||
"<strong>Försöker läsa in modulerna:</strong> <code>modprobe gasket</code> och <code>modprobe apex</code>."
|
||||
],
|
||||
"imageAlt": "DKMS-bygge och inläsning av gasket/apex-moduler"
|
||||
},
|
||||
"usb": {
|
||||
"title": "USB: Googles Edge TPU-körmiljö",
|
||||
"body": "Det går bara om en USB-accelerator upptäcktes. Mycket enklare:",
|
||||
"items": [
|
||||
"<strong>Lägger till Googles GPG-nyckel</strong> i <code>/etc/apt/keyrings/coral-edgetpu.gpg</code>.",
|
||||
"<strong>Lägger till APT-förrådet</strong> i <code>/etc/apt/sources.list.d/coral-edgetpu.list</code>; <code>signed-by=</code> begränsar verifieringen till dess nyckelring. Detta är enradsformatet .list, inte deb822-formatet .sources.",
|
||||
"<strong>Installerar <code>libedgetpu1-std</code></strong>, Edge TPU-körmiljön med standardprestanda.",
|
||||
"<strong>Läser om udev</strong> och tillämpar paketets regler på USB-enheten."
|
||||
],
|
||||
"stdTitle": "Varför libedgetpu1-std och inte libedgetpu1-max?",
|
||||
"stdBody": "Paketet <code>max</code> aktiverar högsta frekvens som stöds och ökar prestanda, effektförbrukning och värme. Kontrollera acceleratorns kylning och driftvillkor före bytet. Paketen kan inte vara installerade samtidigt; byt med <code>apt install libedgetpu1-max</code>."
|
||||
},
|
||||
"reboot": {
|
||||
"title": "Valfri omstart efter PCIe-installationen",
|
||||
"body": "Efter PCIe erbjuds omstart. Skriptet har försökt med <code>modprobe</code>; kontrollera modulerna och <code>/dev/apex_0</code> med gruppen <code>apex</code>. En planerad omstart testar automatisk inläsning. För enbart USB föreslås ingen omstart av värden.",
|
||||
"imageAlt": "Sammanfattning och erbjudande om omstart efter PCIe-installation"
|
||||
}
|
||||
},
|
||||
"legacyCleanup": {
|
||||
"heading": "Rensa äldre gasket-dkms på värdar som bara använder USB",
|
||||
"intro": "Om <strong>ingen PCIe/M.2-Coral hittas</strong> men en äldre installation av <code>gasket-dkms</code> finns erbjuds valfri rensning med bekräftelse.",
|
||||
"items": [
|
||||
"Om en PCIe/M.2-Coral hittas används det vanliga DKMS-bygget och denna rensning erbjuds inte.",
|
||||
"Rensar bort <code>gasket-dkms</code>, gamla DKMS-registreringar och gasket-källkod samt reparerar väntande <code>dpkg</code>/APT-tillstånd.",
|
||||
"USB-paketen <code>libedgetpu1-std</code> och <code>libedgetpu1-max</code> behålls så att USB-Coral har kvar sin körmiljö.",
|
||||
"Manuset verifierar att arvspaketet är borta och att pakethanteringen är hälsosam innan rapporteringen av framgång."
|
||||
],
|
||||
"warningTitle": "Bekräfta hårdvaran först",
|
||||
"warningBody": "Om en förväntad PCIe/M.2-Coral saknas, avbryt rensningen och kontrollera kort, kortplats och firmware."
|
||||
},
|
||||
"reinstallUninstall": {
|
||||
"heading": "Reinstallera eller avinstallera",
|
||||
"intro": "Om en PCIe-installation med <code>gasket-dkms</code>, USB med <code>libedgetpu1-std</code>/<code>libedgetpu1-max</code> eller båda hittas visas en åtgärdsmeny.",
|
||||
"imageAlt": "Meny för att installera om, uppdatera eller avinstallera Coral",
|
||||
"imageCaption": "Menyn visas om någon komponent finns: en gasket-registrering i DKMS, paketet <code>libedgetpu1-*</code> eller enheter <code>/dev/apex_*</code>.",
|
||||
"reinstallHeading": "Installera om / uppdatera",
|
||||
"reinstallBody": "Kör den vanliga installationen: bygger om efter kernelbyte eller uppdaterar <code>libedgetpu1-*</code> från Google. Rensar först tidigare DKMS-tillstånd så att en misslyckad installation inte blockerar bygget.",
|
||||
"uninstallHeading": "Avinstallera - vad som tas bort",
|
||||
"uninstallIntro": "Kräver bekräftelse. LXC-appar som använder <code>/dev/apex_*</code> kan förlora åtkomsten under borttagningen eller efter omstart. Stegen är:",
|
||||
"uninstallItems": [
|
||||
"Försöker ta bort <code>apex</code> och <code>gasket</code> ur kerneln; aktiva användare kan förhindra detta.",
|
||||
"Ta bort varje DKMS-registrerad <code>gasket/<version></code>-post så att modulerna inte kommer tillbaka på nästa kärninstallation.",
|
||||
"Rensar bort <code>gasket-dkms</code>, <code>libedgetpu1-std</code> och <code>libedgetpu1-max</code> och kör <code>apt-get autoremove --purge</code>.",
|
||||
"Tar bort <code>/etc/udev/rules.d/99-coral-apex.rules</code> och återställer standardgruppen i <code>60-gasket-dkms.rules</code> om filen finns kvar.",
|
||||
"Kontrollerar kompletterande medlemmar i <code>apex</code>. <strong>Om listan är tom</strong> försöker skriptet ta bort gruppen; annars behålls <code>apex</code> och medlemmarna listas. Användare med gruppen som primär grupp kontrolleras inte fullständigt.",
|
||||
"Tar bort äldre förrådsfiler som <code>/etc/apt/sources.list.d/coral-edgetpu.list</code> och nyckelringar med namnet <code>coral-edgetpu-archive-keyring.gpg</code>. Den aktuella nyckelringen /etc/apt/keyrings/coral-edgetpu.gpg lämnas kvar.",
|
||||
"Erbjuder omstart <strong>bara om PCIe var installerat</strong> för att ta bort kvarvarande moduler ur kerneln. Avinstallation av enbart USB kräver ingen omstart."
|
||||
],
|
||||
"lxcWarnTitle": "LXC containrar med apex genomgång",
|
||||
"lxcWarnBody": "Borttagning av värdens komponenter kan bryta LXC-åtkomsten. Planera underhåll om kompatibla appar som Frigate är beroende av denna Coral."
|
||||
},
|
||||
"updates": {
|
||||
"heading": "Uppdateringsaviseringar",
|
||||
"intro": "ProxMenux registrerar Coral-komponenter och kontrollerar PCIe/M.2 och USB separat. Om båda finns använder varje variant sin egen versionskälla:",
|
||||
"headerVariant": "Variant",
|
||||
"headerTracked": "Registrerad version",
|
||||
"headerUpstream": "Versionskälla",
|
||||
"pcieVariant": "PCIe / M.2",
|
||||
"pcieTracked": "Först den registrerade versionstaggen från en lyckad installation, sedan versionen av ett fungerande <code>gasket-dkms</code>-paket, annars DKMS-modulens version. Den senare anger inte forkens patchnivå.",
|
||||
"pcieUpstream": "Senaste GitHub-taggen för <code>feranick/gasket-driver</code>; sju dagars cache och jämförelse av byggnummer.",
|
||||
"usbVariant": "USB",
|
||||
"usbTracked": "<code>libedgetpu1-std</code> eller <code>libedgetpu1-max</code> apt version",
|
||||
"usbUpstream": "Lokal <code>apt-cache policy</code> kandidat (Google Coral apt repo)",
|
||||
"outro": "Om en ny version hittas skickar Monitor <code>coral_driver_update_available</code> via aktiverade kanaler. Aviseringen leder till installationen: välj <strong>Installera om / uppdatera</strong>.",
|
||||
"antiTitle": "Inga upprepade aviseringar",
|
||||
"antiBody": "En avisering per variant när den tillgängliga versionen ändras. Ingen upprepning vid varje daglig kontroll; nästa avisering kommer först vid en senare version.",
|
||||
"rebootTitle": "PCIe-uppdateringar: planera en omstart",
|
||||
"rebootBody": "Den ombyggda PCIe-modulen måste läsas in; en planerad omstart testar även automatisk inläsning. USB-biblioteket kräver ingen omstart av värden, men appar som använder den gamla versionen kan behöva startas om."
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Motsvarande manuella steg",
|
||||
"intro": "Dessa kommandon visar huvudstegen i varje flöde för genomgång eller manuell körning.",
|
||||
"pcieHeading": "PCIe / M.2 (gasket + apex via DKMS)",
|
||||
"usbHeading": "USB (libedgetpu-körmiljö)"
|
||||
},
|
||||
"verification": {
|
||||
"heading": "Verifiering",
|
||||
"pcieHeading": "PCIe / M.2",
|
||||
"usbHeading": "USB"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"dkmsFailTitle": "DKMS-bygget misslyckas efter kerneluppdatering",
|
||||
"dkmsFailBody": "Saknade headers är en möjlig orsak. Kontrollera <code>proxmox-headers-$(uname -r)</code> med <code>dpkg -l proxmox-headers-$(uname -r)</code> och installera vid behov. Läs byggloggen efter inkompatibilitet med kerneln. En ny körning anropar <code>cleanup_broken_gasket_dkms</code> men kan inte garantera stöd för varje kernel.",
|
||||
"apexMissTitle": "/dev/apex_0 saknas efter omstart",
|
||||
"apexMissBody": "Kontrollera PCIe-identifieringen och att modulen passar aktuell kernel. Prova <code>modprobe apex</code> och läs <code>dmesg | grep -iE \"apex|gasket\"</code>. Fel vid bygge, inläsning eller kortplats-/firmwareinställningar kan hindra att enheten skapas.",
|
||||
"lxcMissTitle": "Värden ser /dev/apex_0 men inte LXC",
|
||||
"lxcMissBody": "En synlig enhetsnod bevisar inte att enheten fungerar. Kontrollera åtkomst på värden, LXC-montering, cgroup-regler och numeriska UID/GID-rättigheter. Se <lxcLink>Lägg till Coral TPU i LXC</lxcLink>.",
|
||||
"usbUnreachTitle": "USB Accelerator upptäckt men Frigate / TFLite kan inte nå den",
|
||||
"usbUnreachBody": "Kontrollera reglerna från <code>libedgetpu1-std</code> och rättigheterna med <code>ls -l /dev/bus/usb/*/*</code>. Appens mappade användare/grupp behöver läs- och skrivåtkomst; root som ägare är inte ett fel i sig. Efter regeländringar, kör <code>udevadm control --reload-rules && udevadm trigger</code> och återanslut vid behov.",
|
||||
"logTitle": "Installationslogg",
|
||||
"logBody": "Varje körning skriver <code>/tmp/coral_install.log</code>. Vid DKMS-fel läggs de sista 50 raderna från <code>/var/lib/dkms/gasket/1.0/build/make.log</code> till om filen finns. Bifoga loggen när du söker hjälp."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Lägg till Coral TPU i LXC",
|
||||
"href": "/docs/hardware/coral-tpu-lxc",
|
||||
"tail": " — ge en container med en kompatibel app åtkomst till värdens Coral."
|
||||
},
|
||||
{
|
||||
"label": "Installera NVIDIA Drivers (Host)",
|
||||
"href": "/docs/hardware/nvidia-host",
|
||||
"tail": " - samma idé för NVIDIA GPU."
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux Monitor Hardware Tab",
|
||||
"href": "/docs/monitor/dashboard/hardware",
|
||||
"tail": " — Coral-panelen visar drivrutin, moduler, enheter och körmiljöstatus samt temperatur om en sensor som stöds tillhandahåller den."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,175 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Installera NVIDIA på värden | ProxMenux-dokumentation",
|
||||
"description": "Installera proprietära NVIDIA-drivrutiner på Proxmox VE med ProxMenux: GPU-filtrering, bygg- och DKMS-kontroller, persistens, valfri NVENC-patch och uppdatering av LXC-bibliotek."
|
||||
},
|
||||
"header": {
|
||||
"title": "Installera NVIDIA-drivrutiner på värden",
|
||||
"description": "Installera NVIDIA på Proxmox VE-värden. Filtrerar underhållna grenar efter GPU:ns PCI-ID, kontrollerar bygget, använder DKMS, hanterar nouveau och installerar persistens. Kan även uppdatera bibliotek i LXC med NVIDIA-åtkomst.",
|
||||
"section": "Hårdvara: GPU:er och Coral-TPU"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad det gör",
|
||||
"body": "Identifierar GPU:n och erbjuder underhållna grenar med dess PCI-ID. Blockerar <code>nouveau</code>, hämtar den officiella <code>.run</code>-installationen, använder DKMS och installerar <code>nvidia-persistenced</code> med udev-regler; NVENC-patch är valfri. Byggkontroller gäller aktuell kärna utan att garantera alla appar. NVIDIA-LXC kan få matchande användarbibliotek."
|
||||
},
|
||||
"who": {
|
||||
"heading": "Vem är detta för?",
|
||||
"body": "För GPU-accelererad video eller beräkning i Plex, Jellyfin, Frigate, Immich eller Stable Diffusion <strong>i LXC</strong>, installera först NVIDIA på Proxmox-<em>värden</em>. Direkt tilldelning till en <strong>VM</strong> använder det separata VFIO-flödet."
|
||||
},
|
||||
"prereqs": {
|
||||
"title": "Innan du börjar",
|
||||
"gpu": "<strong>En NVIDIA-GPU</strong> installerad i värden. Identifieras automatiskt; AMD och Intel hanteras inte här.",
|
||||
"gpuCheck": "lspci | grep -i nvidia",
|
||||
"notVm": "GPU:n <strong>får inte vara reserverad för VM via VFIO</strong>. Installationen avbryter i detta fall för att inte störa tilldelningen.",
|
||||
"internet": "Internetåtkomst på värden. Hämtar drivrutinen från <code>download.nvidia.com</code> och kan klona <code>nvidia-persistenced</code> och <code>nvidia-patch</code> från GitHub.",
|
||||
"space": "Planera plats i <code>/opt/nvidia</code> för <code>.run</code> och RAM för kompilering. LXC-uppdateringen utanför Arch kontrollerar 1500 MiB ledigt och kan begära en tillfällig ökning till 2048 MiB RAM om gränsen är lägre, och återställer sedan tidigare gräns. Planera för värdens omstart."
|
||||
},
|
||||
"vmWarn": {
|
||||
"title": "GPU reserverad för VM? Stanna här",
|
||||
"body": "Om en NVIDIA-enhet är bunden till <code>vfio-pci</code> avslutas installationen även när VM är stoppad. Reservation betyder inte aktiv användning. Planera återgången till värddrivrutinen och ta bort gamla VM-/VFIO-tilldelningar före omstart och installation."
|
||||
},
|
||||
"running": {
|
||||
"heading": "Kör installatören",
|
||||
"body": "Öppna <strong>Hardware Graphics → NVIDIA GPU Driver Installer</strong> i ProxMenux. Menyn beror på om en drivrutin redan är aktiv.",
|
||||
"imageAlt": "Hårdvarumeny med NVIDIA-installationen markerad"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Så fungerar skriptet",
|
||||
"body": "Identifierar enheter, väljer version och installerar. Separat bekräftad VFIO-städning kan ske före översikten. Förberedelse av paketförråd/headers och hämtning sker före drivrutinsbytet; alla ändringar börjar inte efter en enda slutbekräftelse."
|
||||
},
|
||||
"walkthrough": {
|
||||
"detect": {
|
||||
"title": "GPU upptäckt och översikt",
|
||||
"body1": "Visar NVIDIA-grafikstyrenheter, drivrutinsstatus eller <em>”Ingen NVIDIA-drivrutin installerad”</em> samt LXC med konfigurerad NVIDIA-åtkomst och deras drivrutinsversion.",
|
||||
"body2": "Granska GPU och värd-/containerversioner. Avbryt i översikten om urvalet är oväntat; tidigare separat bekräftad VFIO-städning har redan utförts.",
|
||||
"imageAlt": "Översikt före installation: GPU, drivrutin och NVIDIA-LXC"
|
||||
},
|
||||
"version": {
|
||||
"title": "Välj drivrutinsversion",
|
||||
"body1": "Filtrerar versioner från <code>nvidia.com</code> som <strong>listar GPU:ns PCI-ID bland stödda kretsar</strong> och sorterar bort beta-/utvecklarversioner heuristiskt. <em><version> — Rekommenderad</em> prioriterar senaste versionen i installerad gren, sedan Production Branch och till sist högsta stödda versionsnummer.",
|
||||
"body2": "Om drivrutinen registrerats med keylase-patch begränsas väljaren till NVENC-patchtabellen. <em>Installera om / uppdatera</em> har fortfarande bekräftelser och patchfrågor; kontrollera slutresultatet.",
|
||||
"whyTitle": "Hur kärnkompatibilitet valideras",
|
||||
"whyBody": "Filtrerar efter underhållna grenar och PCI-ID, utan fast kärn-/drivrutinsmatris. Ett förbygge testar aktuell kärna. Bekräftat byggfel återgår till väljaren; ett otillgängligt förtest kan varna och fortsätta. Slutinstallation och funktionskontroll behövs fortfarande.",
|
||||
"imageAlt": "Väljare för GPU-kompatibla grenar med rekommendation överst"
|
||||
},
|
||||
"uninstall": {
|
||||
"title": "Ta bort tidigare drivrutin vid ominstallation",
|
||||
"body": "Efter hämtning och kontroll av vald installation tas föregående drivrutin bort. Stoppar NVIDIA-tjänster, laddar ur moduler, tar bort DKMS-poster och rensar <code>nvidia-*</code> / <code>libnvidia-*</code> / <code>cuda-*</code>. Gäller även bekräftad ominstallation av samma version."
|
||||
},
|
||||
"prepare": {
|
||||
"title": "Förbered systemet",
|
||||
"body": "Under förberedelsen gör skriptet följande:",
|
||||
"items": [
|
||||
"Kontrollerar paketförråd före borttagning eller installation. Utan prenumeration och med enbart Enterprise frågar det om byte till no-subscription; nej avbryter installationen.",
|
||||
"Installerar <code>pve-headers-$(uname -r)</code> (eller <code>proxmox-headers-$(uname -r)</code>), <code>build-essential</code> och <code>dkms</code>.",
|
||||
"Skapar den ProxMenux-hanterade filen <code>/etc/modprobe.d/proxmenux-nouveau-blacklist.conf</code> med <code>blacklist nouveau</code> och <code>options nouveau modeset=0</code>. Registrerar eventuell tillagd rad i <code>blacklist.conf</code> och försöker ladda ur nouveau.",
|
||||
"Skriver <code>/etc/modules-load.d/nvidia-vfio.conf</code> med <code>nvidia</code> och <code>nvidia_uvm</code> så modulerna laddas tidigt på starten."
|
||||
]
|
||||
},
|
||||
"download": {
|
||||
"title": "Hämta och kör NVIDIA-installationen",
|
||||
"body": "Hämtar <code>NVIDIA-Linux-x86_64-<version>.run</code> till <code>/opt/nvidia</code> och kontrollerar storlek och körbar filtyp. Det är formatkontroller, inte kontroll av kryptografisk signatur. Registrerar DKMS för kärnändringar; kompatibel källkod och kärna krävs fortfarande.",
|
||||
"imageAlt": "Hämtningsförlopp och NVIDIA-installationens DKMS-bygge"
|
||||
},
|
||||
"persist": {
|
||||
"title": "Persistens service och udev regler",
|
||||
"body": "Installerar <persistLink>nvidia-persistenced</persistLink> och skriver <code>/etc/udev/rules.d/70-nvidia.rules</code> för att skapa <code>/dev/nvidia*</code> vid start. Det hjälper till att undvika LXC-åtkomst innan enheterna finns."
|
||||
},
|
||||
"nvenc": {
|
||||
"title": "Valfritt: tillämpa NVENC-patchen",
|
||||
"body": "NVENC-sessionsgränser beror på GPU och drivrutin. <patchLink>keylase/nvidia-patch</patchLink> kan ta bort drivrutinsgränsen för stödda versioner. Välj <strong>Ja</strong> om du behöver ändringen för kodning och versionen stöds. Det förbättrar inte avkodning eller hårdvarans kapacitetsgräns.",
|
||||
"supportTitle": "Kontrollera patchstödet",
|
||||
"supportBody": "Kontrollera exakt version i <patchTableLink>patchtabellen</patchTableLink>. Om den saknas, använd opatchad drivrutin eller välj en annan underhållen version som stöder GPU, kärna och patch; närhet i listan räcker inte."
|
||||
},
|
||||
"propagate": {
|
||||
"title": "Valfritt: uppdatera NVIDIA-bibliotek i LXC",
|
||||
"body1": "Erbjuder uppdatering av drivrutinsbibliotek i upptäckta LXC. De och värdens modul <strong>måste ha matchande versioner</strong>; annars kan <code>nvidia-smi</code> visa ”version mismatch”.",
|
||||
"body2": "Debian / Ubuntu och andra glibc-containrar får den uppackade <code>.run</code>-installationen med <code>--no-kernel-modules --no-dkms --no-install-compat32-libs</code>; RAM kan tillfälligt höjas till 2 GiB och återställas efteråt. <strong>Arch, Manjaro och EndeavourOS</strong> använder <code>pacman -Syu nvidia-utils</code> från paketförråden, utan låsning till värdversionen: kontrollera resultatet. <strong>Alpine</strong> får uppackat <code>.run</code>-innehåll via <code>pct push</code>, installerar <code>gcompat</code> och <code>binutils</code> med <code>apk</code> och skapar SONAME-länkar med <code>readelf</code>. Kontrollera funktionen; kompatibilitetslagret garanterar inte alla bibliotek på musl.",
|
||||
"imageAlt": "Dialog med NVIDIA-LXC och versioner för att bekräfta uppdatering"
|
||||
},
|
||||
"reboot": {
|
||||
"title": "Starta om",
|
||||
"body": "Bygger om <code>initramfs</code> för alla kärnor och erbjuder omstart. <strong>Planera den omstarten</strong> för att kontrollera moduler och nouveau-konfiguration vid ny start, även om drivrutinen redan svarar före omstarten."
|
||||
}
|
||||
},
|
||||
"reinstallUninstall": {
|
||||
"heading": "Reinstallera eller avinstallera",
|
||||
"intro": "Om <code>nvidia</code> är laddad och <code>nvidia-smi</code> returnerar en version visas en åtgärdsmeny. Det identifierar en aktiv drivrutin; installerade filer kan finnas även utan laddad modul.",
|
||||
"imageAlt": "NVIDIA-åtgärdsmeny med valen Installera om / uppdatera drivrutin och Avinstallera NVIDIA-drivrutinen helt",
|
||||
"imageCaption": "Åtgärdsmenyn visas när en NVIDIA-drivrutin är aktiv på värden.",
|
||||
"reinstallHeading": "Installera om / uppdatera",
|
||||
"reinstallBody": "Väljer version, förbereder paketförråd/headers, hämtar och kontrollerar bygget före drivrutinsbytet. Kan uppdatera inom underhållen gren eller välja annan stödd gren. Frågor om LXC-bibliotek och NVENC-patch visas igen efteråt.",
|
||||
"uninstallHeading": "Avinstallera - vad som tas bort",
|
||||
"uninstallIntro": "Efter Ja/Nej-bekräftelse tas följande komponenter bort:",
|
||||
"uninstallItems": [
|
||||
"Kör <code>nvidia-uninstall --silent</code> för <code>.run</code>-installationen, stoppar och inaktiverar <code>nvidia-persistenced</code> och <code>nvidia-powerd</code> och försöker ladda ur <code>nvidia_uvm</code>, <code>nvidia_drm</code>, <code>nvidia_modeset</code> och <code>nvidia</code>. NVIDIA-LXC påverkas; aktiva klienter kan hindra urladdningen.",
|
||||
"Kör <code>apt purge</code> på <code>nvidia-*</code>, <code>libnvidia-*</code>, <code>cuda-*</code> och <code>libcudnn*</code>, tar bort DKMS källträd och <code>/opt/nvidia</code> .run installer cache.",
|
||||
"Tar bort modulkonfigurationen <code>/etc/modules-load.d/nvidia-vfio.conf</code> och ProxMenux egna nouveau-blockeringar. Äldre ProxMenux-filer med de två kända raderna migreras och tas bort; ändrade eller orelaterade administratörsfiler bevaras.",
|
||||
"Tar bort <code>/etc/udev/rules.d/70-nvidia.rules</code> och sätter NVENC-status till <em>removed</em> i registret för hanterade installationer; ingen separat statusfil finns.",
|
||||
"Bygger om <code>initramfs</code> för alla kärnor, kör <code>proxmox-boot-tool refresh</code> enligt startkonfigurationen och frågar om omstart."
|
||||
],
|
||||
"lxcWarnTitle": "LXC med NVIDIA-åtkomst",
|
||||
"lxcWarnBody": "Borttagning av värddrivrutinen avbryter NVIDIA-beroende LXC-appar även om biblioteken finns kvar. Planera underhåll för Frigate, Plex, Jellyfin, Ollama och andra GPU-appar."
|
||||
},
|
||||
"updates": {
|
||||
"heading": "Aviseringar om uppdateringar",
|
||||
"body": "NVIDIA-drivrutinen följs i registret för hanterade installationer. Vid start och var 24:e timme jämför Monitor versionerna på <code>download.nvidia.com/XFree86/Linux-x86_64/</code> med den som <code>nvidia-smi</code> rapporterar. Aviserar bara nya underhållsversioner i installerad gren.",
|
||||
"kindsHeading": "Uppdateringsmeddelande",
|
||||
"kindsItems": [
|
||||
"<strong>Underhåll i samma gren.</strong> Exempel: installerad 580.65.06 → tillgänglig 580.105.08. Monitor drar inga slutsatser om kärnkompatibilitet mellan grenar."
|
||||
],
|
||||
"antiTitle": "Undvik upprepade aviseringar",
|
||||
"antiBody": "En avisering per ny version, inte vid varje daglig kontroll. Ingen avisering utan nyare version i installerad gren.",
|
||||
"applyTitle": "Applicera uppdateringen",
|
||||
"applyBody": "Monitor meddelar utan automatisk installation. Öppna installationen, välj <strong>Installera om / uppdatera</strong> och en stödd version, och slutför bygge och installation. Planera omstarten som erbjuds och kontrollera därefter värd och LXC-bibliotek."
|
||||
},
|
||||
"verify": {
|
||||
"heading": "Verifiera installationen",
|
||||
"intro": "Efter värdens omstart, logga in via SSH eller Proxmox-skalet och kör:",
|
||||
"after": "Kontrollera GPU och förväntad version. Processer kan redan visas om värdtjänster eller automatiskt startade containrar använder GPU:n. Kontrollera sedan persistensen:",
|
||||
"imageAlt": "Utdata från nvidia-smi på värden med upptäckt GPU och installerad drivrutinsversion"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"smiFailTitle": "nvidia-smi visar ”NVIDIA-SMI has failed”",
|
||||
"smiFailBody": "Möjliga orsaker är <strong>nouveau</strong>, <strong>saknade eller felaktiga kärnheaders</strong>, inkompatibel drivrutinskällkod eller andra laddningsfel. Granska <code>lsmod | grep nouveau</code>, <code>dmesg | grep -i nvidia</code> och installations-/DKMS-loggar. Om nouveau-regeln behöver rättas, kontrollera <code>/etc/modprobe.d/proxmenux-nouveau-blacklist.conf</code> före <code>update-initramfs -u -k all</code> och omstart. Alla byggfel beror inte på headers.",
|
||||
"lxcMissTitle": "LXC-container kan inte se GPU efter värduppdatering",
|
||||
"lxcMissBody": "Före ominstallation, kontrollera värdens enheter, LXC-behörigheter och biblioteksversion. Versionskonflikt kan kräva matchande användardrivrutin via distributionens stödda metod; på glibc används <code>--no-kernel-modules</code>. Bibliotek rättar inte saknade monteringar eller behörigheter.",
|
||||
"logTitle": "Kolla installationsloggen",
|
||||
"logBody": "Installationen skriver till <code>/tmp/nvidia_install.log</code>. Vid fel, granska hämtning, DKMS-bygge och tjänster. Bifoga loggen till felrapporten på GitHub."
|
||||
},
|
||||
"manualSteps": {
|
||||
"heading": "Letar du efter manuella steg?",
|
||||
"body": "Se <guideLink>Guider → NVIDIA</guideLink> för manuella grunder med <code>wget</code> och <code>./NVIDIA-Linux-...run</code>. Guiden förklarar komponenterna men återger inte installationen exakt. Det underhållna ProxMenux-flödet ger GPU-filtrering, byggkontroller, LXC-uppdateringar och VFIO-kontroller."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Lägg till GPU till VM (Passthrough)",
|
||||
"href": "/docs/hardware/gpu-vm-passthrough",
|
||||
"tail": " — tilldela NVIDIA direkt till en VM via VFIO."
|
||||
},
|
||||
{
|
||||
"label": "Lägg till GPU i LXC",
|
||||
"href": "/docs/hardware/igpu-acceleration-lxc",
|
||||
"tail": " — dela NVIDIA med en eller flera containrar."
|
||||
},
|
||||
{
|
||||
"label": "Byt GPU-läge (VM ↔ LXC)",
|
||||
"href": "/docs/hardware/switch-gpu-mode",
|
||||
"tail": " — växla mellan VM-genomkoppling och LXC-delning."
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux Monitor — fliken Hårdvara",
|
||||
"href": "/docs/monitor/dashboard/hardware",
|
||||
"tail": " — GPU-dialog som öppnar installationen och visar övervakning i realtid."
|
||||
},
|
||||
{
|
||||
"label": "Kommandon för GPU-genomkoppling",
|
||||
"href": "/docs/help-info/gpu-commands",
|
||||
"tail": " — lspci / dmesg / IOMMU / nvidia-smi referens."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
{
|
||||
"meta": {
|
||||
"title": "Byt GPU-läge (VM ↔ LXC) | ProxMenux-dokumentation",
|
||||
"description": "Byt GPU mellan VFIO för VM och inbyggd drivrutin för LXC. ProxMenux identifierar drivrutinen, frågar hur berörda gäster ska hanteras, tar bort tillhörande ljudtilldelningar och bygger om initramfs om värdkonfigurationen ändras."
|
||||
},
|
||||
"header": {
|
||||
"title": "Byt GPU-läge (VM ↔ LXC)",
|
||||
"description": "Byt en tilldelad GPU mellan VM-genomkoppling och LXC-delning. ProxMenux hanterar drivrutin, VFIO, moduler och initramfs och frågar hur berörda gäster ska hanteras. Granska valen och kontrollera konfigurationen efter omstart.",
|
||||
"section": "Hårdvara: GPU:er och Coral-TPU"
|
||||
},
|
||||
"intro": {
|
||||
"title": "Vad det gör",
|
||||
"body": "Med <code>vfio-pci</code> reserveras GPU:n för en VM. Med inbyggd drivrutin <em>(i915 / amdgpu / nvidia)</em> kan värden och LXC dela den. <strong>Byt GPU-läge</strong> hanterar <code>vfio.conf</code>, modulblockering och gästreferenser och varnar om kvarvarande tilldelningar."
|
||||
},
|
||||
"graphics": {
|
||||
"lxcTitle": "Klar för LXC-containrar",
|
||||
"lxcDesc": "Inbyggd drivrutin aktiv",
|
||||
"vmTitle": "Redo för VM-passthrough",
|
||||
"vmDesc": "VFIO-PCI drivrutin aktiv"
|
||||
},
|
||||
"when": {
|
||||
"heading": "När ska jag använda detta?",
|
||||
"intro": "Använd när GPU:n <strong>redan är tilldelad</strong> och du vill ändra användningen:",
|
||||
"headerSituation": "Situation",
|
||||
"headerUse": "Använd denna sida?",
|
||||
"rows": [
|
||||
{
|
||||
"situation": "GPU ledig och aldrig tilldelad: använd den i en VM.",
|
||||
"useRich": "Nej — använd <vmLink>Lägg till GPU i VM</vmLink>"
|
||||
},
|
||||
{
|
||||
"situation": "GPU ledig och aldrig tilldelad: använd den i en LXC.",
|
||||
"useRich": "Nej — använd <lxcLink>Lägg till GPU i LXC</lxcLink>"
|
||||
},
|
||||
{
|
||||
"situationRich": "GPU är i en VM via <code>vfio-pci</code>, jag vill använda den från en LXC istället.",
|
||||
"useRich": "<strong>Ja — den här sidan.</strong>"
|
||||
},
|
||||
{
|
||||
"situation": "GPU delas med en LXC, jag vill ägna den till en VM.",
|
||||
"useRich": "<strong>Ja — den här sidan.</strong>"
|
||||
},
|
||||
{
|
||||
"situation": "Jag vill ta bort alla tilldelningar av denna GPU.",
|
||||
"use": "LXC-läget återför GPU:n till värdens drivrutin; ta bort gästtilldelningar med motsvarande konfliktval. GPU:n är fortfarande bunden till en drivrutin."
|
||||
}
|
||||
]
|
||||
},
|
||||
"prereqs": {
|
||||
"title": "Innan du börjar",
|
||||
"assigned": "<strong>En redan tilldelad GPU</strong> i en VM via VFIO eller i en LXC. För första tilldelningen, använd Lägg till GPU i VM / LXC.",
|
||||
"iommu": "<strong>IOMMU måste vara aktivt på värden</strong> vid byte <em>till</em> VM-läge. Firmware och kärnstöd behövs; explicita parametrar är inte alltid nödvändiga. Vid behov försöker skriptet lägga till <code>intel_iommu=on iommu=pt</code> eller <code>amd_iommu=on</code> via aktiv startkonfiguration med <code>proxmox-boot-tool refresh</code> eller <code>update-grub</code>. Granska varningar och starta om när du uppmanas.",
|
||||
"iommuCheck": "dmesg | grep -i 'IOMMU enabled' | head -1",
|
||||
"reboot": "<strong>Planera en omstart.</strong> Beständiga drivrutins- och startändringar kan kräva ombyggnad av initramfs och omstart. Skriptet frågar om detta i slutet.",
|
||||
"knowList": "<strong>Ta reda på vilka VM och LXC som använder GPU:n.</strong> Skriptet hittar referenser och frågar hur varje gäst ska hanteras; en känd lista underlättar granskningen."
|
||||
},
|
||||
"blocklist": {
|
||||
"title": "Inte alla GPU är säkra att passera till en VM",
|
||||
"body": "Skriptet blockerar VM-läge för vissa enhets-ID, bland annat <code>8086:5a84</code> och <code>8086:5a85</code>, enligt sin kompatibilitetspolicy. En träff visar en varning. Listan hindrar inte byte <em>till</em> LXC-läge; andra kontroller kan fortfarande gälla."
|
||||
},
|
||||
"running": {
|
||||
"heading": "Kör skriptet",
|
||||
"body": "Öppna <strong>Hårdvara: GPU och Coral-TPU → Byt GPU-läge (VM ↔ LXC)</strong> i ProxMenux.",
|
||||
"imageAlt": "Alternativet Byt GPU-läge (VM ↔ LXC) i hårdvarumenyn"
|
||||
},
|
||||
"howRuns": {
|
||||
"heading": "Så fungerar skriptet",
|
||||
"body": "GPU-val och riktning granskas före huvudbytet. Separat städning av gamla VFIO-poster kan fråga tidigare, och berörda gäster har egna konfliktdialoger. Läs varje bekräftelse: en enda slutbekräftelse täcker inte alla ändringar."
|
||||
},
|
||||
"walkthrough": {
|
||||
"heading": "Steg för steg",
|
||||
"detect": {
|
||||
"title": "Identifiera GPU och aktuell drivrutin",
|
||||
"body": "Granskar värdens VGA-, 3D- och Display-styrenheter och kontrollerar <code>/sys/bus/pci/devices/*/driver</code>. Visar namn, PCI-adress och aktuell drivrutin för varje GPU så att läget kan identifieras.",
|
||||
"imageAlt": "GPU checklista som visar varje upptäckt GPU med sin nuvarande drivrutin (vfio-pci / nvidia / amdgpu / i915) och PCI slot"
|
||||
},
|
||||
"pickGpu": {
|
||||
"title": "Välj GPU:er att växla",
|
||||
"body": "En ensam GPU väljs automatiskt. Med flera kan du markera flera, men alla måste vara i <em>samma</em> läge. Blandade lägen kräver att du begränsar urvalet.",
|
||||
"tipTitle": "Växla flera GPU:er samtidigt",
|
||||
"tipBody": "Exempel: växla tre NVIDIA till VM-läge och sedan iGPU:n tillbaka till LXC. Två körningar med ett gemensamt mål i varje, i stället för att växla korten ett i taget."
|
||||
},
|
||||
"direction": {
|
||||
"title": "Granska den föreslagna riktningen",
|
||||
"intro": "Baserat på det aktuella läget föreslår manuset motsatsen som mål:",
|
||||
"items": [
|
||||
"<strong>VM → LXC:</strong> tar bort bindningen till <code>vfio-pci</code> så att den inbyggda drivrutinen (<code>nvidia</code>, <code>amdgpu</code>, <code>i915</code>) kan använda GPU:n. För NVIDIA tas motsvarande BDF-poster bort från <code>/etc/udev/rules.d/10-proxmenux-vfio-bind.rules</code> inför nästa start.",
|
||||
"<strong>LXC → VM:</strong> förbereder bindning till <code>vfio-pci</code>. AMD / Intel blockerar den inbyggda drivrutinen och använder <code>options vfio-pci ids=…</code>. För NVIDIA blockeras <code>nvidia</code> <strong>inte</strong> globalt: BDF-regler sätter <code>driver_override=vfio-pci</code> för enheterna i berörda IOMMU-grupper. GPU:er utanför grupperna kan behålla <code>nvidia</code>. Granska varje gruppmedlem."
|
||||
],
|
||||
"outro": "Bekräfta riktningen eller avbryt."
|
||||
},
|
||||
"conflict": {
|
||||
"title": "Val för varje berörd VM eller LXC",
|
||||
"body": "Kontrollerar <code>/etc/pve/lxc/*.conf</code> efter GPU-enheter per drivrutinsfamilj och <code>/etc/pve/qemu-server/*.conf</code> efter PCI-tilldelningar. LXC-detekteringen matchar inte varje kort exakt per BDF. Granska gästerna och välj hantering för varje:",
|
||||
"headerPolicy": "Policy",
|
||||
"headerEffect": "Effekt",
|
||||
"headerWhen": "När ska man välja",
|
||||
"keepPolicy": "Behåll konfiguration, inaktivera automatisk start",
|
||||
"keepEffect": "<code>pct set CTID -onboot 0</code> eller <code>qm set VMID -onboot 0</code>. GPU-posterna behålls.",
|
||||
"keepWhen": "Om gästen ska användas igen när GPU:n återgår till ursprungligt läge. Försiktigt standardval.",
|
||||
"removePolicy": "Ta bort GPU från konfig",
|
||||
"removeEffect": "Tar bort identifierade <code>hostpci</code>- / <code>dev</code>-poster och äldre referenser som stöds.",
|
||||
"removeWhen": "Om gästen ska fungera utan GPU. Kontrollera appinställningarna först: CPU-reservdrift beror på appen, och enhetsborttagning konfigurerar inte om den automatiskt.",
|
||||
"imageAlt": "Dialog för att hantera varje berörd VM eller LXC"
|
||||
},
|
||||
"audio": {
|
||||
"title": "Ta bort tillhörande ljudtilldelningar när VM-läget lämnas",
|
||||
"body1": "Många separata NVIDIA-/AMD-GPU:er har HDMI-ljud på funktion <code>.1</code> i samma slot; fler ljudenheter kan också ha tilldelats. När GPU:n tas bort kan gamla ljudposter av typen <code>hostpci</code> bli kvar. Granska vilka tilldelningar som ska behållas.",
|
||||
"body2": "Identifierar ljudets BDF-adresser och visar en lista för att välja tilldelningar att ta bort. Tar även bort deras vendor:device-ID från <code>/etc/modprobe.d/vfio.conf</code>, men bara om ingen annan VM använder dem."
|
||||
},
|
||||
"apply": {
|
||||
"title": "Tillämpa ändringar på värd och gäster",
|
||||
"body": "Efter bekräftelse skrivs värdändringarna: <code>vfio.conf</code>, drivrutinsblockering, moduler och för NVIDIA BDF-regeln <code>/etc/udev/rules.d/10-proxmenux-vfio-bind.rules</code> med status i <code>/etc/proxmenux/vfio-bind.bdfs</code>. Vald konfliktpolicy tillämpas på varje gäst. Om värdkonfigurationen ändrats körs <code>update-initramfs -u -k all</code> följt av <code>proxmox-boot-tool refresh</code>; annars hoppas båda över."
|
||||
},
|
||||
"reboot": {
|
||||
"title": "Starta om",
|
||||
"body": "Starta om värden för att tillämpa den nya beständiga bindningen. Omstarten kan skjutas upp, men kontrollera aktiv drivrutin före start av målgästen: den gamla kan fortfarande vara aktiv fram till omstarten.",
|
||||
"imageAlt": "Sammanfattningsdialog som listar vad som ändrats, följt av omstartsprompten"
|
||||
}
|
||||
},
|
||||
"manual": {
|
||||
"heading": "Manuell granskning",
|
||||
"intro": "Före <strong>VM → LXC</strong>, granska drivrutin och BDF-policy. NVIDIA-exemplet använder <code>10de:2204</code>; anpassa till ditt kort. Kommandona läser status; skriptet hanterar även gäster och IOMMU-gruppmedlemmar.",
|
||||
"lxcToVm": "Före <strong>LXC → VM</strong>, granska PCI-adressen och IOMMU-gruppen. Ersätt exempeladressen och kontrollera alla gruppmedlemmar före tilldelning.",
|
||||
"oneVmTitle": "En fysisk GPU tilldelad via VFIO kan bara användas av en VM i taget",
|
||||
"oneVmBody": "Att sätta flera <code>hostpci</code>-poster med samma PCI-slot i två VM är giltigt konfig men bara en av VM kan börja med GPU - den andra kommer att misslyckas. ProxMenux konfliktpolitiskt steg handlar om att undvika denna fälla."
|
||||
},
|
||||
"verification": {
|
||||
"heading": "Verifiering efter omstart"
|
||||
},
|
||||
"troubleshoot": {
|
||||
"heading": "Felsökning",
|
||||
"stillVfioTitle": "GPU visar fortfarande vfio-pci efter byte till LXC-läge",
|
||||
"stillVfioBody": "En laddad VFIO-modul visar inte vilken drivrutin som äger denna GPU. Kontrollera kortets bindning samt att <code>update-initramfs</code> och omstart slutförts. <code>lsmod | grep vfio</code> listar bara moduler. För AMD / Intel granska <code>vfio.conf</code>; för NVIDIA <code>/etc/proxmenux/vfio-bind.bdfs</code> och <code>/etc/udev/rules.d/10-proxmenux-vfio-bind.rules</code>. Korrigera gamla regler före <code>update-initramfs -u -k all</code> och omstart.",
|
||||
"vmFailTitle": "En VM startar inte efter byte av GPU:n till LXC-läge",
|
||||
"vmFailBody": "Kontrollera gamla <code>hostpci</code>-referenser. Valet <em>Ta bort GPU från konfiguration</em> kan rensa dem under avsett byte. Granska föreslagen riktning innan skriptet körs igen så att läget inte vänds av misstag. Alternativt ta bort tilldelningen i Proxmox när VM är stoppad.",
|
||||
"smiFailTitle": "nvidia-smi visar ”Driver/library version mismatch” efter återgång till LXC",
|
||||
"smiFailBody": "Jämför laddad NVIDIA-modul med installerade bibliotek, även i LXC. Anpassa versionerna först: omstart laddar installerad modul men rättar inte felaktiga bibliotekspaket. Omladdning med <code>modprobe -r nvidia</code> och <code>modprobe nvidia</code> kräver stoppade GPU-klienter och kan misslyckas när beroende moduler används.",
|
||||
"logTitle": "Körningslogg",
|
||||
"logBody": "Varje körning skriver till <code>/tmp/proxmenux_gpu_switch_mode.log</code> på värden. Bifoga loggen när du ber om hjälp på GitHub."
|
||||
},
|
||||
"related": {
|
||||
"heading": "Relaterat",
|
||||
"items": [
|
||||
{
|
||||
"label": "Lägg till GPU till VM (Passthrough)",
|
||||
"href": "/docs/hardware/gpu-vm-passthrough",
|
||||
"tail": " — första konfigurationen av VM-läge."
|
||||
},
|
||||
{
|
||||
"label": "Lägg till GPU i LXC",
|
||||
"href": "/docs/hardware/igpu-acceleration-lxc",
|
||||
"tail": " — första konfigurationen av LXC-läge."
|
||||
},
|
||||
{
|
||||
"label": "Installera NVIDIA-drivrutiner på värden",
|
||||
"href": "/docs/hardware/nvidia-host",
|
||||
"tail": " - krävs för LXC-läge på NVIDIA GPU."
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux Monitor — fliken Hårdvara",
|
||||
"href": "/docs/monitor/dashboard/hardware",
|
||||
"tail": " — avsnittet Grafikkort med aktuellt läge och växlingskontroll."
|
||||
},
|
||||
{
|
||||
"label": "Kommandon för GPU-genomkoppling",
|
||||
"href": "/docs/help-info/gpu-commands",
|
||||
"tail": " — kort kommandoreferens."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user