Files
ProxMenux/web/messages/es/docs/hardware/igpu-acceleration-lxc.json
T

186 lines
13 KiB
JSON

{
"meta": {
"title": "Añadir GPU a LXC | Documentación de ProxMenux",
"description": "Comparte GPU Intel, AMD o NVIDIA con LXC. ProxMenux configura dispositivos, grupos y bibliotecas según la distribución; la aplicación debe admitir y tener configurada la aceleración."
},
"header": {
"title": "Añadir GPU a LXC",
"description": "Comparte acceso a GPU con LXC mediante dispositivos del host. El controlador sigue en el host; las aplicaciones usan bibliotecas compatibles y requieren su propia configuración.",
"section": "Hardware: GPU y Coral-TPU"
},
"intro": {
"title": "Qué hace",
"body": "Añade entradas <code>dev&lt;N&gt;</code> a <code>/etc/pve/lxc/&lt;ctid&gt;.conf</code> para los dispositivos <code>/dev/dri/*</code>, <code>/dev/kfd</code> o <code>/dev/nvidia*</code> que correspondan. Arranca el LXC, instala paquetes según la distribución y, en Intel/AMD, alinea los grupos <code>video</code> y <code>render</code>. La aceleración requiere hardware y bibliotecas compatibles y configurar la app."
},
"compare": {
"heading": "Compartir con LXC frente a asignar a una VM",
"intro": "LXC comparte el kernel y puede <em>compartir</em> la GPU entre host y contenedores. Con <vmLink>passthrough completo a una VM</vmLink>, el dispositivo se dedica a esa VM y deja de estar disponible para el controlador del host.",
"headerFeature": "Característica",
"headerLxc": "LXC (esta página)",
"headerVm": "VM",
"rows": [
{
"feature": "¿El host sigue usando la GPU?",
"lxc": "Sí",
"vm": "No — exclusiva de la VM"
},
{
"feature": "¿Varios contenedores compartiendo una GPU?",
"lxc": "Sí",
"vm": "No"
},
{
"feature": "¿Requiere IOMMU / VFIO en el host?",
"lxc": "No",
"vm": "Sí"
},
{
"feature": "¿Hace falta reiniciar?",
"lxc": "Normalmente no (solo reiniciar el CT)",
"vm": "Al cambiar controlador o IOMMU del host; no con cada asignación"
},
{
"feature": "Sistemas operativos invitados",
"lxc": "Solo Linux (LXC es solo Linux)",
"vm": "SO invitado admitido con controlador GPU compatible"
}
]
},
"prereqs": {
"title": "Antes de empezar",
"gpu": "<strong>GPU en el host</strong> Intel, AMD o NVIDIA, detectada mediante <code>lspci</code>.",
"gpuCheck": "lspci | grep -iE 'VGA|3D|Display'",
"vfio": "<strong>La GPU no debe estar vinculada a vfio-pci.</strong> Necesita el controlador nativo del host. Si está asignada a una VM, el script ofrece <switchLink>Cambiar modo de GPU</switchLink>.",
"nvidia": "<strong>Para NVIDIA:</strong> instala primero el controlador en el host. Las bibliotecas del contenedor deben ser compatibles con su versión. Usa <nvidiaLink>Instalar controladores NVIDIA en el host</nvidiaLink>.",
"nvidiaCheck": "nvidia-smi",
"container": "<strong>Un LXC existente.</strong> El script no lo crea. Admite ambos modos; no requiere siempre un contenedor <strong>privilegiado</strong>. Deben coincidir los dispositivos y permisos numéricos de la aplicación."
},
"unpriv": {
"title": "Admite contenedores privilegiados y sin privilegios",
"body": "El script escribe entradas <code>dev&lt;N&gt;</code> en la config del LXC y, en contenedores unprivileged, alinea los GIDs de <code>video</code> y <code>render</code> entre host y contenedor para que los nodos de la GPU sean accesibles desde dentro sin tener que tocar manualmente <code>lxc.idmap</code>."
},
"running": {
"heading": "Ejecutar el instalador",
"body": "Abre ProxMenux y ve a <strong>Hardware: GPU y Coral-TPU → Añadir GPU a LXC</strong>.",
"imageAlt": "Opción del menú para añadir GPU a LXC"
},
"howRuns": {
"heading": "Cómo funciona el script",
"body": "Selecciona contenedor y familias de GPU y supera las comprobaciones. Después detiene el LXC y cambia su configuración, sin confirmación final adicional. La limpieza opcional de VFIO se confirma aparte y puede modificar antes el host."
},
"walkthrough": {
"heading": "Proceso paso a paso",
"detect": {
"title": "Detectar GPUs del host",
"body": "Busca controladoras GPU con <code>lspci</code>. Para NVIDIA comprueba el módulo <code>nvidia</code> y <code>nvidia-smi</code>; usa la versión detectada para elegir el <code>.run</code> del contenedor.",
"tipTitle": "¿NVIDIA no está listo?",
"tipBody": "Si falta el módulo o no funciona NVIDIA en el host, usa primero <nvidiaLink>Instalar controladores NVIDIA en el host</nvidiaLink> y verifica el controlador antes de volver."
},
"pickCt": {
"title": "Elige un contenedor LXC",
"body": "Lista los LXC admitidos por ID y nombre. Excluye OCI: sus dispositivos se gestionan en Apps del gestor OCI. Detiene el LXC si está en marcha, lo arranca para instalar y normalmente recupera su estado inicial.",
"imageAlt": "Selección de un contenedor LXC existente"
},
"selectGpu": {
"title": "Selecciona las familias de GPU",
"body": "Selecciona familias por fabricante, no un dispositivo PCI aislado. Intel/AMD añaden los nodos DRI previstos; NVIDIA añade sus dispositivos disponibles, que pueden corresponder a varias tarjetas. Una sola familia se selecciona automáticamente. Revisa la lista final, sobre todo con varias GPU.",
"imageAlt": "Lista de familias GPU detectadas con nombre y dirección PCI"
},
"preflight": {
"title": "Comprobaciones previas",
"imageAlt": "Oferta para cambiar el modo de una GPU vinculada a vfio-pci",
"intro": "Tres comprobaciones, cualquiera de las cuales puede bloquearte o redirigirte:",
"items": [
"<strong>Protección SR-IOV.</strong> El asistente bloquea una VF o PF con VF activas. Es una limitación de su selección amplia de dispositivos, no una prohibición universal en LXC. Configura esos dispositivos por separado.",
"<strong>Vinculada a vfio-pci.</strong> El controlador nativo no puede crear <code>/dev/dri/*</code> o <code>/dev/nvidia*</code>. Ofrece <switchLink>Cambiar modo de GPU</switchLink>; sigue las indicaciones de reinicio y vuelve después.",
"<strong>Ya configurada.</strong> Si están todos los dispositivos, sale sin reinstalar bibliotecas. Si solo falta alguna familia seleccionada, continúa con ella."
]
},
"applyConfig": {
"title": "Aplica los cambios de config del LXC",
"body1": "Detiene el LXC si está en marcha y edita <code>/etc/pve/lxc/&lt;ctid&gt;.conf</code>. Las entradas <code>dev&lt;N&gt;</code> llevan el GID <code>video</code> o <code>render</code> del host. Sustituye las líneas <code>lxc.mount.entry</code> de <code>/dev/dri</code> por entradas <code>dev:</code>. Revisa configuración y permisos resultantes.",
"body2": "Ejemplo después de Intel + NVIDIA en el mismo contenedor:"
},
"installDrivers": {
"title": "Arranca el contenedor e instala los drivers dentro",
"body": "Arranca el contenedor y espera hasta unos 30 segundos a que responda <code>pct exec</code>. Detecta la distribución con <code>/etc/os-release</code> e instala los paquetes correspondientes.",
"headerDistro": "Distribución",
"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 / otras",
"debianIntel": "apt-get install va-driver-all intel-opencl-icd vainfo",
"debianNvidia": "Extrae <code>.run</code> en el host → <code>pct push</code> → instala con <code>--no-kernel-modules --no-dkms</code>.",
"whyTitle": "Por qué usa el instalador NVIDIA .run en Debian",
"whyBody": "Los paquetes del repositorio pueden no coincidir con el host. Las bibliotecas <strong>deben coincidir con el módulo cargado</strong> para herramientas NVML como <code>nvidia-smi</code>. En Debian/glibc extrae y comprime en el host el <code>.run</code> de esa versión, lo transfiere con <code>pct push</code> e instala con <code>--no-kernel-modules --no-dkms</code>. Alpine y Arch usan paquetes: verifica sus versiones."
},
"alignGids": {
"title": "Alinear GIDs y restaurar el estado",
"body1": "En Intel/AMD, lee los GID del host para <code>video</code> y <code>render</code>; usa 44/104 solo como alternativa. Ajusta <code>/etc/group</code> dentro del LXC; si solo hay NVIDIA, omite este paso. <code>video:44</code> y <code>render:104</code> son ejemplos, no valores universales. Verifica grupos de la app y permisos efectivos.",
"body2": "Al completar normalmente, vuelve a detener el LXC si inicialmente estaba parado; si estaba funcionando, lo deja activo. Ante un fallo de arranque o instalación, revisa el estado final y el registro."
}
},
"vendors": {
"heading": "Notas por fabricante",
"intelHeading": "iGPU Intel",
"intelBody": "La aceleración Intel, incluido <em>Quick Sync</em>, depende de generación, códecs y configuración de la app. Comparte los nodos que existan entre <code>/dev/dri/card0</code>, <code>card1</code>, <code>renderD128</code> y <code>renderD129</code>; no añade otros números. Debe crearlos antes el controlador nativo del host, como <code>i915</code>.",
"amdHeading": "AMD",
"amdBody": "AMD usa DRI para Mesa/VA-API. Si existe <code>/dev/kfd</code> en el host, lo comparte también. ROCm/OpenCL requiere hardware y paquetes compatibles; compartir el dispositivo no instala toda la pila ROCm.",
"nvidiaHeading": "NVIDIA",
"nvidiaBody": "Comparte <code>/dev/nvidia*</code> disponibles. <strong>Coincidir la versión del controlador</strong> es esencial para <code>nvidia-smi</code>. Debian/glibc usa el <code>.run</code> de la versión del host; Alpine/Arch, repositorios. Con menos de 2048 MiB de RAM configurada, la ruta Debian ofrece aumentarla temporalmente y restaurarla; exige 1500 MiB libres en disco.",
"updateTitle": "Tras actualizar NVIDIA en el host, comprueba las bibliotecas LXC",
"updateBody": "Bibliotecas antiguas pueden provocar incompatibilidad en <code>nvidia-smi</code>. El <nvidiaLink>instalador NVIDIA del host</nvidiaLink> ofrece actualizar LXC. Repetir Añadir GPU a LXC puede salir si ya existen los dispositivos: no garantiza actualizar bibliotecas. Verifica versiones y actualiza paquetes o el instalador de usuario apropiado."
},
"verification": {
"heading": "Verificación",
"body": "Entra en el contenedor y verifica que ve la GPU y puede utilizarla."
},
"troubleshoot": {
"heading": "Solución de problemas",
"mismatchTitle": "nvidia-smi: Failed to initialize NVML: Driver/library version mismatch",
"mismatchBody": "Las bibliotecas no coinciden con el módulo activo. Verifica versiones y actualiza el espacio de usuario del LXC. El <code>.run</code> almacenado sirve para Debian/glibc, pero Añadir GPU a LXC puede salir si ya están todos los dispositivos.",
"denyTitle": "Permission denied en /dev/dri/renderD128 dentro del contenedor",
"denyBody": "Revisa dispositivo y permisos numéricos de <code>render</code>; comprueba que el usuario de la app pertenezca a <code>render</code>. Si está disponible, añádelo a <code>render</code> con <code>usermod -aG render &lt;user&gt;</code>, sustituyendo el marcador por la cuenta real. Reinicia su sesión. Cambiar privilegios no es una solución general.",
"vainfoTitle": "vainfo dice: VA-API version 1.xx; failed to initialize",
"vainfoBody": "Comprueba acceso y controlador VA-API. Los paquetes varían por distribución: ejemplos son <code>intel-media-driver</code> para Intel modernas compatibles, <code>i965-va-driver</code> para antiguas compatibles y <code>mesa-va-drivers</code> para AMD. El mensaje no prueba por sí solo que falte un paquete.",
"logTitle": "Registro de instalación",
"logBody": "Cada ejecución escribe <code>/tmp/add_gpu_lxc.log</code> en el host. Adjunta el registro al pedir ayuda."
},
"related": {
"heading": "Relacionado",
"items": [
{
"label": "Instalar drivers NVIDIA (Host)",
"href": "/docs/hardware/nvidia-host",
"tail": " — instala primero el controlador del host para compartir NVIDIA."
},
{
"label": "Añadir GPU a VM (Passthrough)",
"href": "/docs/hardware/gpu-vm-passthrough",
"tail": " — alternativa para dedicar una GPU a una VM."
},
{
"label": "Cambiar modo de GPU (VM ↔ LXC)",
"href": "/docs/hardware/switch-gpu-mode",
"tail": " — cambia la GPU entre compartir con LXC y asignar a VM."
},
{
"label": "Comandos de GPU Passthrough",
"href": "/docs/help-info/gpu-commands",
"tail": " — referencia rápida para comandos shell relacionados."
}
]
}
}