{
"meta": {
"title": "Mudar modo GPU (VM ↔ LXC) | Documentação ProxMenux",
"description": "Mude um GPU entre VFIO para VM e controlador nativo para LXC. O ProxMenux deteta o controlador, pergunta como gerir os convidados afetados, remove áudio associado e regenera initramfs se a configuração do anfitrião mudar."
},
"header": {
"title": "Mudar modo GPU (VM ↔ LXC)",
"description": "Mude um GPU atribuído entre passagem direta para VM e partilha LXC. O ProxMenux gere controlador, VFIO, módulos e initramfs e pergunta como tratar os convidados afetados. Reveja as opções e verifique o resultado após reiniciar.",
"section": "Hardware: GPUs e Coral-TPU"
},
"intro": {
"title": "O que faz",
"body": "Com vfio-pci, o GPU fica reservado para uma VM. Com o controlador nativo (i915 / amdgpu / nvidia), anfitrião e LXC podem partilhá-lo. Mudar modo GPU gere vfio.conf, módulos bloqueados e referências dos convidados, avisando de atribuições pendentes."
},
"graphics": {
"lxcTitle": "Pronto para contêineres LXC",
"lxcDesc": "Controlador nativo ativo",
"vmTitle": "Pronto para passagem de VM",
"vmDesc": "Controlador VFIO-PCI ativo"
},
"when": {
"heading": "Quando devo usar isto?",
"intro": "Utilize se o GPU já está atribuído e pretende mudar a utilização:",
"headerSituation": "Situação",
"headerUse": "Usar esta página?",
"rows": [
{
"situation": "GPU livre, nunca atribuído: utilizá-lo numa VM.",
"useRich": "Não — utilize Adicionar GPU a VM"
},
{
"situation": "GPU livre, nunca atribuído: utilizá-lo num LXC.",
"useRich": "Não — utilize Adicionar GPU a LXC"
},
{
"situationRich": "O GPU está atribuído a uma VM por vfio-pci; quero utilizá-lo num LXC.",
"useRich": "Sim — esta página."
},
{
"situation": "O GPU é partilhado com um LXC; quero dedicá-lo a uma VM.",
"useRich": "Sim — esta página."
},
{
"situation": "Quero remover todas as atribuições deste GPU.",
"use": "O modo LXC devolve o GPU ao controlador do anfitrião; a política de conflitos da VM pode remover as entradas hostpci, mas as entradas de dispositivo LXC têm de ser removidas separadamente. O GPU continua associado a um controlador."
}
]
},
"prereqs": {
"title": "Antes de começar",
"assigned": "Um GPU já atribuído a uma VM por VFIO ou a um LXC. Para a primeira atribuição utilize Adicionar GPU a VM / LXC.",
"iommu": "IOMMU deve estar ativo no anfitrião ao passar para modo VM. Tanto as definições do firmware como o suporte do kernel são importantes. Se faltar intel_iommu=on ou amd_iommu=on no kernel em execução, o script adiciona-o com iommu=pt a /etc/kernel/cmdline (marca de raiz ZFS) ou a /etc/default/grub e depois executa proxmox-boot-tool refresh ou update-grub. Reveja eventuais avisos e reinicie quando solicitado.",
"iommuCheck": "dmesg | grep -i 'IOMMU enabled' | head -1",
"reboot": "Preveja um reinício. Alterações persistentes ao controlador e ao arranque podem exigir regenerar initramfs e reiniciar. O script apresenta a opção no final.",
"knowList": "Identifique as VM e LXC que utilizam o GPU. O script deteta referências e pergunta como tratar cada convidado; conhecer a lista facilita a revisão."
},
"blocklist": {
"title": "Nem todas as GPUs são seguras para passar para um VM",
"body": "O script bloqueia o modo VM para os ID de dispositivo 8086:5a84 e 8086:5a85, segundo a sua política de compatibilidade. Se um GPU selecionado corresponder, interrompe a mudança para modo VM e volta à seleção do GPU, ou sai quando é o único GPU. Esta lista de bloqueio não impede passar para modo LXC; outras verificações podem continuar a aplicar-se."
},
"running": {
"heading": "Executar o script",
"body": "Abra Hardware: GPU e Coral-TPU → Mudar modo GPU (VM ↔ LXC) no ProxMenux.",
"imageAlt": "Opção Mudar modo GPU (VM ↔ LXC) no menu de hardware"
},
"howRuns": {
"heading": "Como funciona o script",
"body": "A escolha do GPU e da direção precede a mudança principal. Uma limpeza VFIO separada pode pedir confirmação antes; os convidados afetados têm os seus próprios diálogos. Leia cada confirmação: não existe uma única validação final para todas as alterações."
},
"walkthrough": {
"heading": "Procedimento passo a passo",
"detect": {
"title": "Detetar GPU e controlador atual",
"body": "Examina os controladores VGA, 3D e Display do anfitrião e consulta /sys/bus/pci/devices/*/driver. Apresenta nome, endereço PCI e controlador atual de cada GPU para identificar o modo.",
"imageAlt": "Lista de verificação GPU que mostra cada GPU detectado com seu driver atual (vfio-pci / nvidia / amdgpu / i915) e slot PCI"
},
"pickGpu": {
"title": "Escolher os GPU a mudar",
"body": "Um único GPU é selecionado automaticamente. Com vários, pode marcar mais de um, desde que estejam no mesmo modo. Se misturar modos, terá de reduzir a seleção.",
"tipTitle": "Mudar vários GPU de uma vez",
"tipBody": "Exemplo: passar três NVIDIA para modo VM e depois devolver o iGPU ao LXC. Duas execuções, cada uma com destino comum, em vez de mudar cada placa separadamente."
},
"direction": {
"title": "Rever a direcção proposta",
"intro": "Com base no modo atual, o script propõe o oposto como alvo:",
"items": [
"VM → LXC: remove a associação a vfio-pci para que o controlador nativo (nvidia, amdgpu, i915) possa utilizar o GPU. Para NVIDIA remove as entradas BDF correspondentes de /etc/udev/rules.d/10-proxmenux-vfio-bind.rules para o próximo arranque.",
"LXC → VM: prepara a associação a vfio-pci. AMD / Intel bloqueiam o controlador nativo e utilizam options vfio-pci ids=…. Em NVIDIA, nvidia só é bloqueado globalmente quando todas as GPU NVIDIA do anfitrião estão em VFIO; caso contrário, regras por BDF aplicam driver_override=vfio-pci aos dispositivos dos grupos IOMMU afetados, e as GPU NVIDIA fora desses grupos mantêm nvidia. Reveja todos os membros do grupo antes de mudar."
],
"outro": "Confirme a direção ou cancele."
},
"conflict": {
"title": "Opções para cada VM ou LXC afetado",
"body": "Verifica /etc/pve/lxc/*.conf por família do controlador GPU e /etc/pve/qemu-server/*.conf por atribuições PCI. A deteção LXC não identifica cada placa por BDF exato. Reveja os convidados detetados e escolha como tratar cada um:",
"headerPolicy": "Política",
"headerEffect": "Efeito",
"headerWhen": "Quando escolher",
"keepPolicy": "Manter configuração e desativar arranque automático",
"keepEffect": "pct set CTID -onboot 0 ou qm set VMID -onboot 0. Mantém as entradas GPU.",
"keepWhen": "Se pretende reutilizar o convidado quando o GPU voltar ao modo anterior. Escolha predefinida conservadora.",
"removePolicy": "Remover o GPU da configuração",
"removeEffect": "Remove as entradas hostpci / dev identificadas e referências antigas suportadas.",
"removeWhen": "Se o convidado deve funcionar sem GPU. Verifique primeiro a aplicação: a alternativa por CPU depende dela e remover o dispositivo não a reconfigura automaticamente.",
"imageAlt": "Diálogo para escolher como tratar cada VM ou LXC afetado"
},
"audio": {
"title": "Remover áudio associado ao sair do modo VM",
"body1": "Muitos GPU NVIDIA / AMD expõem áudio HDMI na função .1 do mesmo slot; pode haver outros dispositivos áudio atribuídos. Remover o GPU pode deixar entradas áudio hostpci obsoletas. Reveja as atribuições a manter.",
"body2": "Identifica os endereços BDF áudio e apresenta uma lista para escolher o que remover. Elimina também os ID vendor:device de /etc/modprobe.d/vfio.conf, apenas se nenhuma outra VM os utilizar."
},
"apply": {
"title": "Aplicar alterações ao anfitrião e convidados",
"body": "Uma vez que você confirma, o script escreve as mudanças no lado do host — vfio.conf, lista negra, módulos e (para NVIDIA) a regra udev per-BDF em /etc/udev/rules.d/10-proxmenux-vfio-bind.rules mais o estado BDF em /etc/proxmenux/vfio-bind.bdfs. Aplica igualmente a política de conflitos escolhida a cada VM/LXC afectado. Se a configuração do host realmente mudou, ele executa update-initramfs -u -k all seguido por proxmox-boot-tool refresh; caso contrário ambos são ignorados."
},
"reboot": {
"title": "Reiniciar",
"body": "Reinicie o anfitrião para aplicar a nova associação persistente. Pode adiar, mas verifique o controlador ativo antes de iniciar o convidado de destino: até reiniciar pode manter-se o anterior.",
"imageAlt": "Diálogo de resumo que lista o que mudou, seguido pelo prompt de reinicialização"
}
},
"manual": {
"heading": "Inspeção manual",
"intro": "Antes de VM → LXC, verifique o controlador e a política BDF. Este exemplo NVIDIA utiliza 10de:2204; adapte-o à sua placa. Os comandos consultam o estado; o script também gere convidados e membros do grupo IOMMU.",
"lxcToVm": "Antes de LXC → VM, consulte o endereço PCI e o grupo IOMMU. Substitua o endereço de exemplo e reveja todos os membros antes de atribuir dispositivos.",
"oneVmTitle": "Um GPU físico atribuído por VFIO só pode ser utilizado por uma VM de cada vez",
"oneVmBody": "Colocar várias entradas hostpci com o mesmo slot PCI em duas VMs é uma configuração válida, mas apenas uma das VMs pode começar com o GPU — a segunda falha. O passo da política de conflitos ProxMenux é exatamente evitar esta armadilha."
},
"verification": {
"heading": "Verificação após reiniciar"
},
"troubleshoot": {
"heading": "Resolução de problemas",
"stillVfioTitle": "A GPU continua a mostrar vfio-pci após a mudança para o modo LXC",
"stillVfioBody": "Um módulo VFIO carregado não prova qual controlador utiliza este GPU. Verifique a associação, a conclusão de update-initramfs e o reinício. lsmod | grep vfio só lista módulos. Para AMD / Intel veja vfio.conf; para NVIDIA, /etc/proxmenux/vfio-bind.bdfs e /etc/udev/rules.d/10-proxmenux-vfio-bind.rules. Corrija regras antigas antes de update-initramfs -u -k all e reinicie.",
"vmFailTitle": "Uma VM não inicia após passar o GPU para LXC",
"vmFailBody": "Verifique referências hostpci obsoletas. A opção Remover GPU da configuração pode eliminá-las durante a mudança pretendida. Antes de repetir o script, reveja a direção para não inverter o modo por engano. Em alternativa remova a atribuição no Proxmox com a VM parada.",
"smiFailTitle": "nvidia-smi apresenta «Driver/library version mismatch» ao voltar a LXC",
"smiFailBody": "Compare o módulo NVIDIA carregado com as bibliotecas instaladas, também nos LXC. Alinhe as versões: reiniciar carrega o módulo instalado, mas não corrige pacotes incompatíveis. Recarregar com modprobe -r nvidia e modprobe nvidia exige parar os clientes GPU e pode falhar com módulos dependentes em utilização.",
"logTitle": "Registo de execução",
"logBody": "Cada execução escreve em /tmp/proxmenux_gpu_switch_mode.log no anfitrião. Anexe o registo ao pedir ajuda no GitHub."
},
"related": {
"heading": "Relacionados",
"items": [
{
"label": "Adicionar GPU a VM (passagem direta)",
"href": "/docs/hardware/gpu-vm-passthrough",
"tail": " — configuração inicial do modo VM."
},
{
"label": "Adicionar GPU ao LXC",
"href": "/docs/hardware/igpu-acceleration-lxc",
"tail": " — configuração inicial do modo LXC."
},
{
"label": "Instalar Drivers NVIDIA (Host)",
"href": "/docs/hardware/nvidia-host",
"tail": " — exigido para o modo LXC em GPUs NVIDIA."
},
{
"label": "ProxMenux Monitor — Página de hardware",
"href": "/docs/monitor/dashboard/hardware",
"tail": " — secção Placas gráficas, com o modo atual e o comando para o mudar."
},
{
"label": "Comandos de passagem direta GPU",
"href": "/docs/help-info/gpu-commands",
"tail": " — referência rápida de comandos."
}
]
}
}