{
"meta": {
"title": "Adicionar GPU ao LXC | Documentação ProxMenux",
"description": "Partilhe GPU Intel, AMD ou NVIDIA com LXC. O ProxMenux configura dispositivos, grupos e bibliotecas conforme a distribuição; a aplicação tem de suportar e configurar a aceleração."
},
"header": {
"title": "Adicionar GPU ao LXC",
"description": "Partilha acesso GPU com LXC através dos dispositivos do anfitrião. O controlador permanece no anfitrião; as aplicações exigem bibliotecas compatíveis e configuração própria.",
"section": "Hardware: GPUs e Coral-TPU"
},
"intro": {
"title": "O que faz",
"body": "Adiciona entradas dev<N> a /etc/pve/lxc/<ctid>.conf para os nós /dev/dri/*, /dev/kfd ou /dev/nvidia* aplicáveis. Inicia o contentor, instala pacotes userspace da sua distribuição e, para Intel/AMD, alinha os grupos video e render. A aceleração das aplicações continua a exigir hardware, bibliotecas e configuração da aplicação compatíveis."
},
"compare": {
"heading": "Partilha LXC ou atribuição direta a uma VM",
"intro": "O LXC partilha o kernel e pode partilhar a GPU entre anfitrião e contentores. Com atribuição completa a uma VM, o dispositivo fica dedicado à VM e indisponível para o controlador do anfitrião.",
"headerFeature": "Característica",
"headerLxc": "LXC (esta página)",
"headerVm": "VM",
"rows": [
{
"feature": "O host continua usando o GPU?",
"lxc": "Sim",
"vm": "Não — exclusiva do VM"
},
{
"feature": "Vários contentores a partilhar um GPU?",
"lxc": "Sim",
"vm": "Não"
},
{
"feature": "Requer IOMMU / VFIO no host?",
"lxc": "Não",
"vm": "Sim"
},
{
"feature": "É necessário reiniciar?",
"lxc": "Normalmente não (apenas reinicie o CT)",
"vm": "Se mudar o controlador ou IOMMU do anfitrião; não a cada atribuição"
},
{
"feature": "Sistemas operativos convidados",
"lxc": "Apenas Linux (LXC é somente Linux)",
"vm": "SO convidado suportado com controlador GPU compatível"
}
]
},
"prereqs": {
"title": "Antes de começar",
"gpu": "GPU no anfitrião Intel, AMD ou NVIDIA, detetada via lspci.",
"gpuCheck": "lspci | grep -iE 'VGA|3D|Display'",
"vfio": "A GPU não deve estar associada a vfio-pci. Precisa do controlador nativo do anfitrião. Se atribuída a uma VM, o script propõe Alterar modo da GPU.",
"nvidia": "Para NVIDIA: instale primeiro o controlador no anfitrião. As bibliotecas do contentor têm de corresponder à versão. Use Instalar controladores NVIDIA no anfitrião.",
"nvidiaCheck": "nvidia-smi",
"container": "Um LXC existente. O script não o cria. Suporta ambos os modos; um contentor privilegiado não é sempre necessário. Dispositivos e permissões numéricas da aplicação têm de corresponder."
},
"unpriv": {
"title": "Suporta contentores privilegiados e sem privilégios",
"body": "O script escreve entradas dev<N> para a configuração LXC e, em recipientes não privilegiados, alinha os GIDs video e render entre o host e o recipiente para que os nós do dispositivo GPU sejam alcançáveis de dentro sem que você tenha que editar manualmente lxc.idmap."
},
"running": {
"heading": "Executar o instalador",
"body": "Abra o ProxMenux e escolha Hardware: GPU e Coral-TPU → Adicionar GPU ao LXC.",
"imageAlt": "Opção do menu para adicionar GPU ao LXC"
},
"howRuns": {
"heading": "Como funciona o script",
"body": "Escolha contentor e famílias GPU e passe as verificações. Depois para e altera o contentor sem confirmação final adicional. A limpeza VFIO opcional tem confirmação separada e pode alterar antes o anfitrião."
},
"walkthrough": {
"heading": "Procedimento passo a passo",
"detect": {
"title": "Detectar GPUs da máquina",
"body": "Procura controladores GPU com lspci. Para NVIDIA verifica o módulo nvidia e nvidia-smi; a versão detetada determina o instalador .run do contentor.",
"tipTitle": "O NVIDIA não está pronto?",
"tipBody": "Se faltar o módulo ou NVIDIA não funcionar no anfitrião, use primeiro Instalar controladores NVIDIA no anfitrião e verifique o controlador."
},
"pickCt": {
"title": "Escolha um contentor LXC",
"body": "Lista os contentores LXC elegíveis por ID e nome; os contentores OCI são excluídos e utilizam OCI manager Apps para os dispositivos. O contentor é parado se estiver em execução, iniciado para a instalação dos controladores e normalmente reposto no estado original (em execução/parado).",
"imageAlt": "Seleção de um contentor LXC existente"
},
"selectGpu": {
"title": "Selecione as famílias GPU",
"body": "A lista seleciona famílias por fabricante, não um dispositivo PCI isolado. Intel/AMD adicionam os nós DRI previstos; NVIDIA os dispositivos disponíveis, eventualmente de várias placas. Uma única família é selecionada automaticamente. Verifique a lista final, sobretudo com várias GPU.",
"imageAlt": "Lista de famílias GPU detetadas com nome e endereço PCI"
},
"preflight": {
"title": "Verificações prévias",
"imageAlt": "Proposta de alteração de modo de uma GPU associada a vfio-pci",
"intro": "Três verificações, qualquer uma das quais pode bloqueá-lo ou redirecioná-lo:",
"items": [
"Proteção SR-IOV. O assistente bloqueia VF ou PF com VF ativas. É uma limitação da seleção ampla de dispositivos, não uma proibição geral em LXC. Configure-os separadamente.",
"Associada a vfio-pci. O controlador nativo não pode criar /dev/dri/* ou /dev/nvidia*. Propõe Alterar modo da GPU; siga as indicações de reinício e volte depois.",
"Já configurada. Se todos os dispositivos estiverem presentes, termina sem reinstalar bibliotecas. Continua apenas com as famílias selecionadas em falta."
]
},
"applyConfig": {
"title": "Aplicar as alterações de configuração do LXC",
"body1": "Para o contentor, se estiver em execução, e altera /etc/pve/lxc/<ctid>.conf. As entradas numeradas dev<N> incluem o GID do anfitrião de video ou render. As linhas bind lxc.mount.entry existentes para /dev/dri são substituídas por entradas dev:; verifique a configuração e as permissões resultantes.",
"body2": "Exemplo após Intel + NVIDIA no mesmo recipiente:"
},
"installDrivers": {
"title": "Iniciar o recipiente e instalar drivers dentro",
"body": "Inicia o contentor e espera até cerca de 30 segundos pela resposta de pct exec. Deteta a distribuição por /etc/os-release e instala os pacotes adequados.",
"headerDistro": "Distribuição",
"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 / outros",
"debianIntel": "apt-get install va-driver-all intel-opencl-icd vainfo",
"debianNvidia": "Extrai .run no anfitrião → pct push → instala com --no-kernel-modules --no-dkms.",
"whyTitle": "Porque utiliza o instalador NVIDIA .run no Debian",
"whyBody": "Os pacotes podem não corresponder ao anfitrião. As bibliotecas têm de corresponder ao módulo carregado para NVML e nvidia-smi. Debian/glibc usa o .run dessa versão em cache, extrai e arquiva no anfitrião, transfere com pct push e instala com --no-kernel-modules --no-dkms. Alpine e Arch usam repositórios: verifique as versões."
},
"alignGids": {
"title": "Alinhar GIDs e restaurar o estado",
"body1": "Para Intel/AMD, lê os GID do anfitrião de video e render, usando 44/104 apenas como alternativa, e depois altera /etc/group no contentor para corresponderem; as execuções apenas com NVIDIA saltam este passo. Entradas como video:44 e render:104 são exemplos, não ID universais. Verifique a pertença da aplicação aos grupos e as permissões efetivas dos dispositivos.",
"body2": "Ao concluir normalmente, volta a parar o contentor se estava parado; se estava ativo mantém-no ativo. Se falhar o arranque ou a instalação, verifique o estado final e o registo."
}
},
"vendors": {
"heading": "Notas por fabricante",
"intelHeading": "Intel iGPU",
"intelBody": "A aceleração multimédia Intel, incluindo Quick Sync, depende da geração do GPU, dos codecs e da configuração da aplicação. O script partilha os que existirem de entre /dev/dri/card0, card1, renderD128 e renderD129; outros números de nó não são adicionados. O anfitrião tem de os disponibilizar já através do seu controlador nativo, por exemplo i915.",
"amdHeading": "AMD",
"amdBody": "AMD usa DRI para Mesa/VA-API. Se existir /dev/kfd no anfitrião, também o partilha. ROCm/OpenCL exige hardware e bibliotecas compatíveis; partilhar o dispositivo não instala toda a pilha ROCm.",
"nvidiaHeading": "NVIDIA",
"nvidiaBody": "Partilha os dispositivos /dev/nvidia*. As versões do controlador têm de corresponder para nvidia-smi. Debian/glibc usa o .run da versão do anfitrião; Alpine/Arch os repositórios. Abaixo de 2048 MiB de RAM configurada propõe um aumento temporário e depois restaura; exige também 1500 MiB livres em disco.",
"updateTitle": "Após atualizar NVIDIA no anfitrião, verifique as bibliotecas LXC",
"updateBody": "Bibliotecas antigas podem causar erros em nvidia-smi. O instalador NVIDIA do anfitrião propõe atualizar contentores. Repetir a adição pode terminar se já existirem dispositivos: não garante atualizar bibliotecas. Verifique versões e atualize os pacotes ou a instalação de utilizador adequada."
},
"verification": {
"heading": "Verificação",
"body": "No contentor verifique se a GPU está visível e utilizável."
},
"troubleshoot": {
"heading": "Resolução de problemas",
"mismatchTitle": "nvidia-smi: Failed to initialize NVML: Driver/library version mismatch",
"mismatchBody": "As bibliotecas não correspondem ao módulo carregado. Verifique versões e atualize o espaço de utilizador LXC. O .run em cache serve para Debian/glibc, mas a adição pode terminar se todos os dispositivos já existirem.",
"denyTitle": "Permissão negada em /dev/dri/renderD128 dentro do recipiente",
"denyBody": "Verifique dispositivo e permissões numéricas de render, depois se o utilizador pertence a render. Se disponível, adicione-o a render com usermod -aG render <user>, substituindo o marcador pela conta real. Reinicie a sessão. Mudar privilégios não é uma solução geral.",
"vainfoTitle": "vainfo indica: VA-API version 1.xx; failed to initialize",
"vainfoBody": "Verifique acesso e controlador VA-API. Os nomes variam por distribuição: por exemplo intel-media-driver para Intel recentes suportadas, i965-va-driver para antigas compatíveis e mesa-va-drivers para AMD. A mensagem só por si não prova que falte um pacote.",
"logTitle": "Registo de instalação",
"logBody": "Cada execução escreve /tmp/add_gpu_lxc.log no anfitrião. Anexe o registo ao pedir ajuda."
},
"related": {
"heading": "Relacionados",
"items": [
{
"label": "Instalar Drivers NVIDIA (Host)",
"href": "/docs/hardware/nvidia-host",
"tail": " — instale o controlador do anfitrião antes de partilhar NVIDIA."
},
{
"label": "Adicionar GPU a VM (passthrough)",
"href": "/docs/hardware/gpu-vm-passthrough",
"tail": " — alternativa para dedicar uma GPU a uma VM."
},
{
"label": "Alterar modo da GPU (VM ↔ LXC)",
"href": "/docs/hardware/switch-gpu-mode",
"tail": " — alterna a GPU entre partilha LXC e atribuição VM."
},
{
"label": "Comandos de passagem GPU",
"href": "/docs/help-info/gpu-commands",
"tail": " — referência rápida para comandos de shell relacionados."
}
]
}
}