mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-03 03:12:07 +00:00
docs: review OCI manager documentation in all seven translations
This commit is contained in:
@@ -19,9 +19,18 @@
|
||||
{
|
||||
"flow": {
|
||||
"nodes": [
|
||||
{ "label": "Inventario del host", "detail": "/dev/dri/renderD128\nGID 993 · Intel" },
|
||||
{ "label": "ProxMenux", "detail": "fabricante y\npermisos comprobados" },
|
||||
{ "label": "LXC", "detail": "mismo dispositivo\nGID efectivo" }
|
||||
{
|
||||
"label": "Inventario del host",
|
||||
"detail": "/dev/dri/renderD128\nGID 993 · Intel"
|
||||
},
|
||||
{
|
||||
"label": "ProxMenux",
|
||||
"detail": "fabricante y\npermisos comprobados"
|
||||
},
|
||||
{
|
||||
"label": "LXC",
|
||||
"detail": "mismo dispositivo\nGID efectivo"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -33,12 +42,32 @@
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": ["Origen", "Qué se lee", "Qué hace el instalador"],
|
||||
"headers": [
|
||||
"Origen",
|
||||
"Qué se lee",
|
||||
"Qué hace el instalador"
|
||||
],
|
||||
"rows": [
|
||||
["Docker Compose", "<code>devices</code>, <code>group_add</code>, <code>deploy.resources</code> y peticiones NVIDIA", "Cada requisito se convierte en una petición de dispositivo que se muestra para revisión"],
|
||||
["Perfil del catálogo", "El soporte de GPU, Coral, OpenCL, USB o FUSE que tiene realmente la aplicación", "Solo se ofrecen las opciones validadas para esa imagen"],
|
||||
["Metadatos y documentación de la imagen", "VA-API, Selkies, mods de LinuxServer o el runtime NVIDIA", "Se añaden las variables y la preparación documentadas"],
|
||||
["Selección del usuario", "Solo CPU, Intel/AMD, OpenCL, NVIDIA o un dispositivo opcional", "La selección se guarda en el contrato de la instancia"]
|
||||
[
|
||||
"Docker Compose",
|
||||
"<code>devices</code>, <code>group_add</code>, <code>deploy.resources</code> y peticiones NVIDIA",
|
||||
"Cada requisito se convierte en una petición de dispositivo que se muestra para revisión"
|
||||
],
|
||||
[
|
||||
"Perfil del catálogo",
|
||||
"El soporte de GPU, Coral, OpenCL, USB o FUSE que tiene realmente la aplicación",
|
||||
"Solo se ofrecen las opciones validadas para esa imagen"
|
||||
],
|
||||
[
|
||||
"Metadatos y documentación de la imagen",
|
||||
"VA-API, Selkies, mods de LinuxServer o el runtime NVIDIA",
|
||||
"Se añaden las variables y la preparación documentadas"
|
||||
],
|
||||
[
|
||||
"Selección del usuario",
|
||||
"Solo CPU, Intel/AMD, OpenCL, NVIDIA o un dispositivo opcional",
|
||||
"La selección se guarda en el contrato de la instancia"
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -57,16 +86,52 @@
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": ["Tipo", "Identificación", "Validación"],
|
||||
"headers": [
|
||||
"Tipo",
|
||||
"Identificación",
|
||||
"Validación"
|
||||
],
|
||||
"rows": [
|
||||
["Intel/AMD DRM", "<code>/dev/dri/renderD*</code> y <code>/sys/class/drm/NODO/device/vendor</code>", "Un dispositivo de caracteres con fabricante <code>0x8086</code> (Intel) o <code>0x1002</code> (AMD)"],
|
||||
["OpenCL AMD", "El render node, más <code>/dev/kfd</code> cuando el perfil lo necesita", "Existencia, tipo, fabricante, permisos y compatibilidad declarada"],
|
||||
["AMD ROCm", "El nodo de render, <code>/dev/kfd</code> y la generación que declara el driver de cómputo en <code>/sys/class/kfd/kfd/topology/nodes/*/properties</code>", "Una generación para la que la imagen ROCm de la aplicación trae kernels, las GPU RDNA2 que incluye y las posteriores, se ofrece tal cual. Las demás GPU de esas familias, como las Radeon 680M y 780M, se ofrecen como experimentales y nunca son la opción propuesta: ROCm no las soporta oficialmente, la aplicación las presenta como la generación de su familia (<code>HSA_OVERRIDE_GFX_VERSION</code>) y el instalador pide confirmación antes de descargar la imagen, que es más grande. Una GPU anterior, como los gráficos integrados de un Ryzen 5000U, no se ofrece e Immich deja el reconocimiento en la CPU"],
|
||||
["NVIDIA", "<code>nvidia-smi</code> y <code>nvidia-container-cli</code>", "GPU, UUID, bus PCI, versión del driver, Toolkit, nodos <code>/dev/nvidia*</code>, binarios y librerías"],
|
||||
["Coral PCIe/M.2", "<code>/dev/apex_N</code> y su enlace en <code>/sys/dev/char/MAJOR:MINOR</code>", "Nodo de caracteres, major/minor, propietario, GID y permisos"],
|
||||
["USB y serie", "<code>/dev/ttyUSB*</code>, <code>/dev/ttyACM*</code> o <code>/dev/bus/usb/BBB/DDD</code>", "Nodo de caracteres; en USB también fabricante, producto y número de serie cuando sysfs los publica"],
|
||||
["KVM, TUN, FUSE, vídeo y SCSI genérico", "<code>/dev/kvm</code>, <code>/dev/net/tun</code>, <code>/dev/fuse</code>, <code>/dev/videoN</code> o <code>/dev/sgN</code>", "Ruta admitida, tipo de nodo y permisos efectivos"],
|
||||
["Unidad óptica", "<code>/dev/srN</code>", "Un dispositivo de bloques"]
|
||||
[
|
||||
"Intel/AMD DRM",
|
||||
"<code>/dev/dri/renderD*</code> y <code>/sys/class/drm/NODE/device/vendor</code>",
|
||||
"Un dispositivo de caracteres con fabricante <code>0x8086</code> (Intel) o <code>0x1002</code> (AMD)"
|
||||
],
|
||||
[
|
||||
"OpenCL AMD",
|
||||
"El render node, más <code>/dev/kfd</code> cuando el perfil lo necesita",
|
||||
"Existencia, tipo, fabricante, permisos y compatibilidad declarada"
|
||||
],
|
||||
[
|
||||
"AMD ROCm",
|
||||
"El nodo de render, <code>/dev/kfd</code> y la generación que declara el driver de cómputo en <code>/sys/class/kfd/kfd/topology/nodes/*/properties</code>",
|
||||
"Una generación para la que la imagen ROCm de la aplicación trae kernels, las GPU RDNA2 que incluye y las posteriores, se ofrece tal cual. Las demás GPU de esas familias, como las Radeon 680M y 780M, se ofrecen como experimentales y nunca son la opción propuesta: ROCm no las soporta oficialmente, la aplicación las presenta como la generación de su familia (<code>HSA_OVERRIDE_GFX_VERSION</code>) y el instalador pide confirmación antes de descargar la imagen, que es más grande. Una GPU anterior, como los gráficos integrados de un Ryzen 5000U, no se ofrece e Immich deja el reconocimiento en la CPU"
|
||||
],
|
||||
[
|
||||
"NVIDIA",
|
||||
"<code>nvidia-smi</code> y <code>nvidia-container-cli</code>",
|
||||
"GPU, UUID, bus PCI, versión del driver, Toolkit, nodos <code>/dev/nvidia*</code>, binarios y librerías"
|
||||
],
|
||||
[
|
||||
"Coral PCIe/M.2",
|
||||
"<code>/dev/apex_N</code> y su enlace en <code>/sys/dev/char/MAJOR:MINOR</code>",
|
||||
"Nodo de caracteres, major/minor, propietario, GID y permisos"
|
||||
],
|
||||
[
|
||||
"USB y serie",
|
||||
"<code>/dev/ttyUSB*</code>, <code>/dev/ttyACM*</code> o <code>/dev/bus/usb/BBB/DDD</code>",
|
||||
"Nodo de caracteres; en USB también fabricante, producto y número de serie cuando sysfs los publica"
|
||||
],
|
||||
[
|
||||
"KVM, TUN, FUSE, vídeo y SCSI genérico",
|
||||
"<code>/dev/kvm</code>, <code>/dev/net/tun</code>, <code>/dev/fuse</code>, <code>/dev/videoN</code> o <code>/dev/sgN</code>",
|
||||
"Ruta admitida, tipo de nodo y permisos efectivos"
|
||||
],
|
||||
[
|
||||
"Unidad óptica",
|
||||
"<code>/dev/srN</code>",
|
||||
"Un dispositivo de bloques"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -79,12 +144,30 @@
|
||||
{
|
||||
"steps": {
|
||||
"items": [
|
||||
{ "title": "La plantilla ofrece sus perfiles", "body": "Por ejemplo solo CPU, Intel/AMD VA-API, OpenCL AMD, OpenCL Intel o NVIDIA. Las opciones pertenecen a la imagen, no a un menú común." },
|
||||
{ "title": "Se elige un perfil", "body": "Define los nodos de dispositivo, el entorno, los mods o el runtime que necesita la aplicación." },
|
||||
{ "title": "Se propone una ruta", "body": "Para DRM, <code>/dev/dri/renderD128</code>, que puede cambiarse en un host con varios render nodes. Para USB o serie se selecciona el nodo concreto." },
|
||||
{ "title": "Validación", "body": "Se comprueban existencia, tipo, fabricante admitido, permisos y GID. Una discrepancia detiene la operación." },
|
||||
{ "title": "Se escribe el contrato", "body": "Ruta, modo, GID, acceso de escritura y perfil quedan registrados para las actualizaciones y las recreaciones." },
|
||||
{ "title": "Conexión y prueba", "body": "<code>pct set</code> añade la entrada <code>devN</code> y después se comprueba el acceso dentro del LXC. Las imágenes de LinuxServer se comprueban también como usuario <code>abc</code>." }
|
||||
{
|
||||
"title": "La plantilla ofrece sus perfiles",
|
||||
"body": "Por ejemplo solo CPU, Intel/AMD VA-API, OpenCL AMD, OpenCL Intel o NVIDIA. Las opciones pertenecen a la imagen, no a un menú común."
|
||||
},
|
||||
{
|
||||
"title": "Se elige un perfil",
|
||||
"body": "Define los nodos de dispositivo, el entorno, los mods o el runtime que necesita la aplicación."
|
||||
},
|
||||
{
|
||||
"title": "Se propone una ruta",
|
||||
"body": "Para DRM, <code>/dev/dri/renderD128</code>, que puede cambiarse en un host con varios render nodes. Para USB o serie se selecciona el nodo concreto."
|
||||
},
|
||||
{
|
||||
"title": "Validación",
|
||||
"body": "Se comprueban existencia, tipo, fabricante admitido, permisos y GID. Una discrepancia detiene la operación."
|
||||
},
|
||||
{
|
||||
"title": "Se escribe el contrato",
|
||||
"body": "Ruta, modo, GID, acceso de escritura y perfil quedan registrados para las actualizaciones y las recreaciones."
|
||||
},
|
||||
{
|
||||
"title": "Conexión y prueba",
|
||||
"body": "<code>pct set</code> añade la entrada <code>devN</code> y después se comprueba el acceso dentro del LXC. Las imágenes de LinuxServer se comprueban también como usuario <code>abc</code>."
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -98,10 +181,22 @@
|
||||
{
|
||||
"codeGrid": {
|
||||
"items": [
|
||||
{ "title": "Intel/AMD VA-API", "code": "dev0: path=/dev/dri/renderD128,mode=0660,gid=993,deny-write=0" },
|
||||
{ "title": "Coral PCIe/M.2", "code": "dev0: path=/dev/apex_0,mode=0660,gid=GID,deny-write=0" },
|
||||
{ "title": "Un dispositivo USB concreto", "code": "dev0: path=/dev/bus/usb/003/004,mode=0660,gid=GID,deny-write=0" },
|
||||
{ "title": "OpenCL AMD", "code": "dev0: path=/dev/dri/renderD128,mode=0660,gid=GID,deny-write=0\ndev1: path=/dev/kfd,mode=0660,gid=GID,deny-write=0" }
|
||||
{
|
||||
"title": "Intel/AMD VA-API",
|
||||
"code": "dev0: path=/dev/dri/renderD128,mode=0660,gid=993,deny-write=0"
|
||||
},
|
||||
{
|
||||
"title": "Coral PCIe/M.2",
|
||||
"code": "dev0: path=/dev/apex_0,mode=0660,gid=GID,deny-write=0"
|
||||
},
|
||||
{
|
||||
"title": "Un dispositivo USB concreto",
|
||||
"code": "dev0: path=/dev/bus/usb/003/004,mode=0660,gid=GID,deny-write=0"
|
||||
},
|
||||
{
|
||||
"title": "OpenCL AMD",
|
||||
"code": "dev0: path=/dev/dri/renderD128,mode=0660,gid=GID,deny-write=0\ndev1: path=/dev/kfd,mode=0660,gid=GID,deny-write=0"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -116,13 +211,37 @@
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": ["Perfil", "Traducción", "Se ofrece cuando"],
|
||||
"headers": [
|
||||
"Perfil",
|
||||
"Configuración resultante",
|
||||
"Se ofrece cuando"
|
||||
],
|
||||
"rows": [
|
||||
["Intel/AMD VA-API", "Render node de <code>/dev/dri</code>", "La aplicación admite aceleración de vídeo"],
|
||||
["OpenCL", "Render node, <code>/dev/kfd</code> si hace falta y el mod oficial", "La imagen o el perfil lo documentan"],
|
||||
["NVIDIA", "Dispositivos y librerías del driver del host", "El host tiene un driver operativo y NVIDIA Container Toolkit"],
|
||||
["Coral", "<code>/dev/apex_0</code> o el bus USB", "El perfil declara soporte de Coral (Frigate)"],
|
||||
["USB, serie, FUSE", "Un dispositivo concreto, un árbol validado o una función LXC", "El contrato lo pide"]
|
||||
[
|
||||
"Intel/AMD VA-API",
|
||||
"Render node de <code>/dev/dri</code>",
|
||||
"La aplicación admite aceleración de vídeo"
|
||||
],
|
||||
[
|
||||
"OpenCL",
|
||||
"Render node, <code>/dev/kfd</code> si hace falta y el mod oficial",
|
||||
"La imagen o el perfil lo documentan"
|
||||
],
|
||||
[
|
||||
"NVIDIA",
|
||||
"Dispositivos y librerías del driver del host",
|
||||
"El host tiene un driver operativo y NVIDIA Container Toolkit"
|
||||
],
|
||||
[
|
||||
"Coral",
|
||||
"<code>/dev/apex_0</code> o el bus USB",
|
||||
"El perfil declara soporte de Coral (Frigate)"
|
||||
],
|
||||
[
|
||||
"USB, serie, FUSE",
|
||||
"Un dispositivo concreto, un árbol validado o una función LXC",
|
||||
"El contrato lo pide"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -145,7 +264,9 @@
|
||||
"p": "Estos dos comandos, en el host, muestran si el driver y el Toolkit están disponibles:"
|
||||
},
|
||||
{
|
||||
"shell": { "code": "nvidia-smi -L\nnvidia-container-cli --version" }
|
||||
"shell": {
|
||||
"code": "nvidia-smi -L\nnvidia-container-cli --version"
|
||||
}
|
||||
},
|
||||
{
|
||||
"p": "En un host cuyo driver se instaló por otros medios, el Toolkit se instala desde el repositorio estable oficial:"
|
||||
@@ -159,7 +280,9 @@
|
||||
"p": "El inventario que usa OCI manager Apps es la salida de:"
|
||||
},
|
||||
{
|
||||
"shell": { "code": "nvidia-container-cli list --device all --libraries --binaries --firmwares --ipcs" }
|
||||
"shell": {
|
||||
"code": "nvidia-container-cli list --device all --libraries --binaries --firmwares --ipcs"
|
||||
}
|
||||
},
|
||||
{
|
||||
"calloutInfo": {
|
||||
@@ -170,10 +293,26 @@
|
||||
{
|
||||
"cards": {
|
||||
"items": [
|
||||
{ "icon": "cpu", "title": "Inventario desde el driver", "body": "<code>nvidia-container-cli</code> enumera los nodos de dispositivo, los binarios, el firmware y las librerías del driver instalado." },
|
||||
{ "icon": "refresh", "title": "Sin versión fija", "body": "La plantilla no nombra archivos de librería. El perfil se genera a partir del host actual." },
|
||||
{ "icon": "shield", "title": "Montajes de solo lectura", "body": "Las librerías del host se montan en solo lectura en lugar de copiarse dentro del contenedor." },
|
||||
{ "icon": "hardDrive", "title": "Cambios de driver", "body": "Tras un cambio de driver, el inventario se genera de nuevo antes de que arranquen los LXC afectados." }
|
||||
{
|
||||
"icon": "cpu",
|
||||
"title": "Inventario desde el driver",
|
||||
"body": "<code>nvidia-container-cli</code> enumera los nodos de dispositivo, los binarios, el firmware y las librerías del driver instalado."
|
||||
},
|
||||
{
|
||||
"icon": "refresh",
|
||||
"title": "Sin versión fija",
|
||||
"body": "La plantilla no nombra archivos de librería. El perfil se genera a partir del host actual."
|
||||
},
|
||||
{
|
||||
"icon": "shield",
|
||||
"title": "Montajes de solo lectura",
|
||||
"body": "Las librerías del host se montan en solo lectura en lugar de copiarse dentro del contenedor."
|
||||
},
|
||||
{
|
||||
"icon": "hardDrive",
|
||||
"title": "Cambios de driver",
|
||||
"body": "Tras un cambio de driver, el inventario se genera de nuevo antes de que arranquen los LXC afectados."
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
@@ -209,12 +348,32 @@
|
||||
"blocks": [
|
||||
{
|
||||
"table": {
|
||||
"headers": ["Petición", "Traducción", "Alcance"],
|
||||
"headers": [
|
||||
"Petición",
|
||||
"Configuración resultante",
|
||||
"Alcance"
|
||||
],
|
||||
"rows": [
|
||||
["<code>/dev/dvb</code>, <code>/dev/snd</code> o <code>/dev/bus/usb</code>", "Cada nodo de caracteres del árbol recibe su propia entrada <code>devN</code> con el modo y el GID del host", "Solo el árbol pedido, no el resto de <code>/dev</code>"],
|
||||
["<code>/dev/fuse</code>", "El nodo y, cuando el perfil lo necesita, la función <code>fuse=1</code>", "FUSE por sí solo no publica montajes a otros LXC"],
|
||||
["<code>/dev/net/tun</code>", "Una entrada <code>devN</code> en la misma ruta dentro del LXC", "La configuración de la VPN o de la red queda en la aplicación"],
|
||||
["<code>/dev/kvm</code>", "Una entrada <code>devN</code> validada", "Solo se ofrece cuando el contrato lo pide"]
|
||||
[
|
||||
"<code>/dev/dvb</code>, <code>/dev/snd</code> o <code>/dev/bus/usb</code>",
|
||||
"Cada nodo de caracteres del árbol recibe su propia entrada <code>devN</code> con el modo y el GID del host",
|
||||
"Solo el árbol pedido, no el resto de <code>/dev</code>"
|
||||
],
|
||||
[
|
||||
"<code>/dev/fuse</code>",
|
||||
"El nodo y, cuando el perfil lo necesita, la función <code>fuse=1</code>",
|
||||
"FUSE por sí solo no publica montajes a otros LXC"
|
||||
],
|
||||
[
|
||||
"<code>/dev/net/tun</code>",
|
||||
"Una entrada <code>devN</code> en la misma ruta dentro del LXC",
|
||||
"La configuración de la VPN o de la red queda en la aplicación"
|
||||
],
|
||||
[
|
||||
"<code>/dev/kvm</code>",
|
||||
"Una entrada <code>devN</code> validada",
|
||||
"Solo se ofrece cuando el contrato lo pide"
|
||||
]
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user