List the IOMMU group members before adding a GPU to a VM and keep the NVENC patch state

- Add GPU to VM lists the devices from other slots that share the IOMMU group of the selected GPU before the summary
- The NVIDIA installer keeps the patched flag of the installed driver while its version is unchanged
- New messages translated into all languages
This commit is contained in:
MacRimi
2026-10-18 16:46:41 +02:00
parent f648521a73
commit d06cf0f6f6
9 changed files with 31 additions and 2 deletions
+2
View File
@@ -6487,6 +6487,7 @@
"The host directory does not exist": "Das Verzeichnis auf dem Host ist nicht vorhanden",
"The host directory may not be accessible from an unprivileged container.": "Auf das Hostverzeichnis kann von einem unprivilegierten Container aus möglicherweise nicht zugegriffen werden.",
"The host has no IPv4 address on the selected bridge": "Der Host hat keine IPv4-Adresse auf der ausgewählten Brücke",
"The host loses access to them. If the group includes a network or storage controller the host needs, cancel at the summary.": "Der Host verliert den Zugriff darauf. Wenn die Gruppe einen Netzwerk- oder Speichercontroller enthält, den der Host benötigt, brechen Sie in der Zusammenfassung ab.",
"The host monitor does not see the real host memory": "Der Host-Monitor sieht den echten Host-Speicher nicht",
"The host monitor does not share this host namespace:": "Der Host-Monitor teilt diesen Host-Namespace nicht:",
"The host monitor include is unknown or differs from the saved record": "Das Host-Monitor-Include ist unbekannt oder weicht vom gespeicherten Datensatz ab",
@@ -6816,6 +6817,7 @@
"These changes were made in Proxmox outside ProxMenux:": "Diese Änderungen wurden in Proxmox außerhalb von ProxMenux vorgenommen:",
"These container mount paths have an extension-like suffix:": "Diese Einhängepfade im Container haben eine Endung, die einer Dateierweiterung ähnelt:",
"These containers were restored from a backup and this host has no record of their OCI application:": "Diese Container wurden aus einem Backup wiederhergestellt und dieser Host hat keinen Datensatz ihrer OCI-Anwendung:",
"These devices share the IOMMU group of the selected GPU and will be assigned to the VM with it:": "Diese Geräte teilen sich die IOMMU-Gruppe der ausgewählten GPU und werden zusammen mit ihr der VM zugewiesen:",
"These host backups run with this job and expect its storage:": "Diese Host-Backups werden mit diesem Job ausgeführt und erwarten dessen Speicherung:",
"These host backups run with this job and will stop running:": "Diese Host-Backups werden mit diesem Job ausgeführt und werden nicht mehr ausgeführt:",
"These interface configurations will be removed": "Diese Schnittstellenkonfigurationen werden entfernt",
+2
View File
@@ -6469,6 +6469,7 @@
"The host directory does not exist": "El directorio del host no existe",
"The host directory may not be accessible from an unprivileged container.": "Es posible que no se pueda acceder al directorio del host desde un contenedor sin privilegios.",
"The host has no IPv4 address on the selected bridge": "El host no tiene dirección IPv4 en el puente seleccionado",
"The host loses access to them. If the group includes a network or storage controller the host needs, cancel at the summary.": "El host pierde el acceso a ellos. Si el grupo incluye un controlador de red o de almacenamiento que el host necesita, cancela en el resumen.",
"The host monitor does not see the real host memory": "El monitor host no ve la memoria real del host",
"The host monitor does not share this host namespace:": "El monitor host no comparte este espacio de nombres de host:",
"The host monitor include is unknown or differs from the saved record": "El include del monitor del host es desconocido o difiere del registro guardado",
@@ -6792,6 +6793,7 @@
"These changes were made in Proxmox outside ProxMenux:": "Estos cambios se hicieron en Proxmox fuera de ProxMenux:",
"These container mount paths have an extension-like suffix:": "Estas rutas de montaje del contenedor tienen un sufijo parecido a una extensión:",
"These containers were restored from a backup and this host has no record of their OCI application:": "Estos contenedores se restauraron desde un backup y este host no tiene el registro de su aplicación OCI:",
"These devices share the IOMMU group of the selected GPU and will be assigned to the VM with it:": "Estos dispositivos comparten el grupo IOMMU de la GPU seleccionada y se asignarán a la VM junto con ella:",
"These host backups run with this job and expect its storage:": "Estos backups del host se ejecutan con este trabajo y esperan su almacenamiento:",
"These interface configurations will be removed": "Estas configuraciones de interfaz serán eliminadas",
"These manual changes cannot be adopted safely:": "Estos cambios manuales no se pueden incorporar con seguridad:",
+2
View File
@@ -6486,6 +6486,7 @@
"The host directory does not exist": "Le répertoire de l’hôte n’existe pas",
"The host directory may not be accessible from an unprivileged container.": "Le répertoire hôte peut ne pas être accessible à partir d'un conteneur non privilégié.",
"The host has no IPv4 address on the selected bridge": "L'hôte n'a pas d'adresse IPv4 sur le pont sélectionné",
"The host loses access to them. If the group includes a network or storage controller the host needs, cancel at the summary.": "L’hôte perd l’accès à ces périphériques. Si le groupe contient un contrôleur réseau ou de stockage dont l’hôte a besoin, annulez au résumé.",
"The host monitor does not see the real host memory": "Le moniteur hôte ne voit pas la mémoire de l'hôte réel",
"The host monitor does not share this host namespace:": "L'écran hôte ne partage pas cet espace de noms d'hôte :",
"The host monitor include is unknown or differs from the saved record": "L'include du moniteur d'hôte est inconnu ou diffère de l'enregistrement sauvegardé",
@@ -6815,6 +6816,7 @@
"These changes were made in Proxmox outside ProxMenux:": "Ces modifications ont été apportées dans Proxmox en dehors de ProxMenux :",
"These container mount paths have an extension-like suffix:": "Ces chemins de montage du conteneur ont un suffixe qui ressemble à une extension :",
"These containers were restored from a backup and this host has no record of their OCI application:": "Ces conteneurs ont été restaurés à partir d'une sauvegarde et cet hôte n'a aucun enregistrement de leur application OCI :",
"These devices share the IOMMU group of the selected GPU and will be assigned to the VM with it:": "Ces périphériques partagent le groupe IOMMU du GPU sélectionné et seront attribués à la VM avec lui :",
"These host backups run with this job and expect its storage:": "Ces sauvegardes d'hôte s'exécutent avec ce travail et attendent son stockage :",
"These host backups run with this job and will stop running:": "Ces sauvegardes d'hôte s'exécutent avec ce travail et cesseront de s'exécuter :",
"These interface configurations will be removed": "Ces configurations d'interface seront supprimées",
+2
View File
@@ -6487,6 +6487,7 @@
"The host directory does not exist": "La directory dell’host non esiste",
"The host directory may not be accessible from an unprivileged container.": "La directory dell’host potrebbe non essere accessibile da un container non privilegiato.",
"The host has no IPv4 address on the selected bridge": "L'host non ha un indirizzo IPv4 sul bridge selezionato",
"The host loses access to them. If the group includes a network or storage controller the host needs, cancel at the summary.": "L’host perde l’accesso a questi dispositivi. Se il gruppo include un controller di rete o di archiviazione necessario all’host, annulla nel riepilogo.",
"The host monitor does not see the real host memory": "Il monitoraggio dell'host non rileva la memoria reale dell'host",
"The host monitor does not share this host namespace:": "Il monitor dell'host non condivide questo namespace dell'host:",
"The host monitor include is unknown or differs from the saved record": "L'include del monitor host è sconosciuto o diverso dal record salvato",
@@ -6816,6 +6817,7 @@
"These changes were made in Proxmox outside ProxMenux:": "Queste modifiche sono state apportate in Proxmox al di fuori di ProxMenux:",
"These container mount paths have an extension-like suffix:": "Questi percorsi di mount del container hanno un suffisso simile a un'estensione:",
"These containers were restored from a backup and this host has no record of their OCI application:": "Questi container sono stati ripristinati da un backup e questo host non ha il record della loro applicazione OCI:",
"These devices share the IOMMU group of the selected GPU and will be assigned to the VM with it:": "Questi dispositivi condividono il gruppo IOMMU della GPU selezionata e verranno assegnati alla VM insieme a essa:",
"These host backups run with this job and expect its storage:": "Questi backup dell’host vengono eseguiti con questo job e richiedono il suo storage:",
"These host backups run with this job and will stop running:": "Questi backup dell'host vengono eseguiti con questo lavoro e interromperanno l'esecuzione:",
"These interface configurations will be removed": "Queste configurazioni dell'interfaccia verranno rimosse",
+2
View File
@@ -6487,6 +6487,7 @@
"The host directory does not exist": "O diretório do anfitrião não existe",
"The host directory may not be accessible from an unprivileged container.": "O diretório host pode não estar acessível a partir de um contêiner sem privilégios.",
"The host has no IPv4 address on the selected bridge": "A máquina não tem endereço IPv4 na ponte seleccionada",
"The host loses access to them. If the group includes a network or storage controller the host needs, cancel at the summary.": "O host perde o acesso a eles. Se o grupo incluir um controlador de rede ou de armazenamento de que o host precisa, cancele no resumo.",
"The host monitor does not see the real host memory": "O monitor da máquina não vê a memória verdadeira da máquina",
"The host monitor does not share this host namespace:": "O monitor da máquina não compartilha este espaço de nomes da máquina:",
"The host monitor include is unknown or differs from the saved record": "O include do monitor do host é desconhecido ou difere do registro salvo",
@@ -6816,6 +6817,7 @@
"These changes were made in Proxmox outside ProxMenux:": "Essas alterações foram feitas no Proxmox fora do ProxMenux:",
"These container mount paths have an extension-like suffix:": "Estes caminhos de montagem do contêiner têm um sufixo parecido com uma extensão:",
"These containers were restored from a backup and this host has no record of their OCI application:": "Esses contêineres foram restaurados a partir de um backup e este host não possui registro de seu aplicativo OCI:",
"These devices share the IOMMU group of the selected GPU and will be assigned to the VM with it:": "Estes dispositivos partilham o grupo IOMMU da GPU selecionada e serão atribuídos à VM juntamente com ela:",
"These host backups run with this job and expect its storage:": "Esses backups de host são executados com este trabalho e esperam seu armazenamento:",
"These host backups run with this job and will stop running:": "Esses backups de host são executados com este trabalho e deixarão de ser executados:",
"These interface configurations will be removed": "Essas configurações de interface serão removidas",
+2
View File
@@ -6488,6 +6488,7 @@
"The host directory does not exist": "Adresár na hostiteľovi neexistuje",
"The host directory may not be accessible from an unprivileged container.": "Priečinok na hostovi nemusí byť dostupný z neprivilegovaného kontajnera.",
"The host has no IPv4 address on the selected bridge": "Hostiteľ nemá IPv4 adresu na vybranom moste",
"The host loses access to them. If the group includes a network or storage controller the host needs, cancel at the summary.": "Hostiteľ k nim stratí prístup. Ak skupina obsahuje sieťový alebo úložný radič, ktorý hostiteľ potrebuje, zrušte to v súhrne.",
"The host monitor does not see the real host memory": "Monitor hostiteľa nevidí skutočnú pamäť hostiteľa",
"The host monitor does not share this host namespace:": "Monitor hostiteľa nezdieľa tento menový priestor hostiteľa:",
"The host monitor include is unknown or differs from the saved record": "Include monitora hostiteľa je neznámy alebo sa líši od uloženého záznamu",
@@ -6817,6 +6818,7 @@
"These changes were made in Proxmox outside ProxMenux:": "Tieto zmeny boli vykonané v Proxmox mimo ProxMenux:",
"These container mount paths have an extension-like suffix:": "Tieto cesty pripojenia v kontajneri majú príponu podobnú koncovke súboru:",
"These containers were restored from a backup and this host has no record of their OCI application:": "Tieto kontajnery boli obnovené zo zálohy a tento hostiteľ nemá žiadny záznam o ich aplikácii OCI:",
"These devices share the IOMMU group of the selected GPU and will be assigned to the VM with it:": "Tieto zariadenia zdieľajú skupinu IOMMU vybranej GPU a priradia sa k VM spolu s ňou:",
"These host backups run with this job and expect its storage:": "Tieto zálohy hostiteľa sa spúšťajú s touto úlohou a očakávajú jej uloženie:",
"These host backups run with this job and will stop running:": "Tieto zálohy hostiteľa sa spúšťajú s touto úlohou a prestanú sa spúšťať:",
"These interface configurations will be removed": "Tieto nastavenia rozhraní sa odstránia",
+2
View File
@@ -6487,6 +6487,7 @@
"The host directory does not exist": "Katalogen på värden finns inte",
"The host directory may not be accessible from an unprivileged container.": "Värdkatalogen kanske inte är tillgänglig från en oprivilegierad behållare.",
"The host has no IPv4 address on the selected bridge": "Värden har ingen IPv4-adress på den valda bron",
"The host loses access to them. If the group includes a network or storage controller the host needs, cancel at the summary.": "Värden förlorar åtkomsten till dem. Om gruppen innehåller en nätverks- eller lagringskontroller som värden behöver, avbryt i sammanfattningen.",
"The host monitor does not see the real host memory": "Värdskärmen ser inte det verkliga värdminnet",
"The host monitor does not share this host namespace:": "Värdskärmen delar inte detta värdnamnsutrymme:",
"The host monitor include is unknown or differs from the saved record": "Värdövervakarens include är okänd eller skiljer sig från den sparade posten",
@@ -6816,6 +6817,7 @@
"These changes were made in Proxmox outside ProxMenux:": "Dessa ändringar gjordes i Proxmox utanför ProxMenux:",
"These container mount paths have an extension-like suffix:": "De här monteringssökvägarna i containern har ett suffix som liknar ett filtillägg:",
"These containers were restored from a backup and this host has no record of their OCI application:": "Dessa behållare återställdes från en säkerhetskopia och denna värd har ingen post för deras OCI-applikation:",
"These devices share the IOMMU group of the selected GPU and will be assigned to the VM with it:": "Dessa enheter delar IOMMU-gruppen med den valda GPU:n och tilldelas till VM:en tillsammans med den:",
"These host backups run with this job and expect its storage:": "Dessa värdsäkerhetskopior körs med det här jobbet och förväntar sig dess lagring:",
"These host backups run with this job and will stop running:": "Dessa värdsäkerhetskopior körs med detta jobb och kommer att sluta köras:",
"These interface configurations will be removed": "Dessa gränssnittskonfigurationer kommer att tas bort",
+9
View File
@@ -1121,6 +1121,7 @@ analyze_iommu_group() {
local group_dir="/sys/kernel/iommu_groups/${IOMMU_GROUP}/devices"
local display_lines=""
local extra_devices=0
local other_slot_devices=0
for dev_path in "${group_dir}/"*; do
[[ -e "$dev_path" ]] || continue
@@ -1149,8 +1150,16 @@ analyze_iommu_group() {
display_lines+=" • ${dev} ${dev_name} [${dev_driver}]\n"
[[ "$dev" != "$pci_full" ]] && extra_devices=$((extra_devices + 1))
[[ "${dev%.*}" != "${pci_full%.*}" ]] && other_slot_devices=$((other_slot_devices + 1))
done
if [[ $other_slot_devices -gt 0 ]]; then
local box_h=$(( 13 + ${#IOMMU_DEVICES[@]} ))
(( box_h > 24 )) && box_h=24
_pmx_msgbox "$(translate 'IOMMU Group') ${IOMMU_GROUP}" \
"\n$(translate 'These devices share the IOMMU group of the selected GPU and will be assigned to the VM with it:')\n\n${display_lines}\n$(translate 'The host loses access to them. If the group includes a network or storage controller the host needs, cancel at the summary.')" \
"$box_h" 82
fi
}
# Returns 0 if the BDF at $1 is a real PCI audio device (class 04xx).
+8 -2
View File
@@ -203,8 +203,14 @@ detect_driver_status() {
if [[ -n "$CURRENT_DRIVER_VERSION" ]]; then
CURRENT_DRIVER_INSTALLED=true
# Register the installed driver version in components_status.json
update_component_status "nvidia_driver" "installed" "$CURRENT_DRIVER_VERSION" "gpu" '{"patched":false}'
# Register the installed driver version in components_status.json,
# keeping the patched flag while the recorded version is unchanged.
local patched_json='{"patched":false}'
if [[ "$(jq -r '.nvidia_driver.version // empty' "$COMPONENTS_STATUS_FILE" 2>/dev/null)" == "$CURRENT_DRIVER_VERSION" ]] \
&& is_current_nvidia_patched; then
patched_json='{"patched":true}'
fi
update_component_status "nvidia_driver" "installed" "$CURRENT_DRIVER_VERSION" "gpu" "$patched_json"
fi
fi
fi