Linux
Installation reproductible
Canevas d'installation du serveur Linux de la Box, du BIOS aux conteneurs, présenté étape par étape avec, pour chacune, l'indication de ce qui est sourcé et de ce qui reste à valider sur la machine.
Hypothèse#linux#docker#rocm#vulkan#strix-halo#securite#sauvegardePublié le 16 sept. 2026Mis à jour le 16 sept. 2026Vérifié le 16 sept. 2026À revérifier le 15 déc. 2026
L'essentiel
- Cette page est un canevas : l'ordre des étapes et leurs objectifs sont fixés, les commandes exactes seront ajoutées lors de la première installation et validées lors de la seconde (reproductibilité). Statut Hypothèse.
- Chaque étape porte une mention : sourcé (issu d'une documentation ou d'une source du dossier), à valider (pratique courante non vérifiée sur cette machine) ou à décider (dépend d'une question ouverte).
- Objectif : une Box réinstallable de zéro en moins d'une demi-journée, à partir de ce document et d'un dépôt de configuration versionné (ADR-006).
- Aucune commande n'est inventée : quand une commande figure ici, elle vient d'une source citée. Les autres étapes sont décrites en termes d'objectif.
Prérequis
| Élément | Détail | Statut |
|---|---|---|
| Machine | Framework Desktop 128 Go, deux SSD NVMe (capacité à décider, Q-006) | sourcé (fiche machine) |
| Clavier, écran | nécessaires pour le BIOS et l'installation ; retirés ensuite | à valider |
| Support d'installation | image de la distribution retenue (Q-007) sur clé USB ; vérifier l'empreinte | à valider |
| Réseau | prise Ethernet 5 GbE vers le commutateur du cabinet ; adresse IP fixe réservée dans le DHCP | à valider, voir Réseau |
| Onduleur | branché avant la première mise sous tension | à valider |
| Dépôt de configuration | fichiers compose, configuration, scripts, versionnés hors de la machine | sourcé (ADR-006) |
| Ce document et la checklist sécurité | imprimés ou accessibles depuis un autre poste | — |
Étape 1 : BIOS
| Action | Statut | Source |
|---|---|---|
| Mettre à jour le BIOS en 3.06 ou plus récent (plafond iGPU 24 Go corrigé, CVE) | sourcé | 1 |
| Régler l'UMA Frame Buffer Size au minimum (512 Mo si disponible) | sourcé (recommandation AMD) ; nom exact de l'option dans le BIOS Framework à valider | 4 |
| Désactiver la veille / états de suspension (s2idle) si l'option existe ; sinon au niveau OS | à valider | voir Stabilité |
| Activer le redémarrage automatique après coupure de courant (« AC power loss ») si l'option existe | à valider | — |
| Secure Boot : laisser activé si la distribution le supporte avec les modules GPU ; sinon désactiver et le noter | à décider | — |
| Noter la version BIOS, les réglages et la date dans le journal d'installation | — | — |
Étape 2 : système d'exploitation
| Action | Statut | Source |
|---|---|---|
| Distribution : Ubuntu 26.04 LTS ou Fedora 43 (Q-007) | à décider | 2 3 |
| Installation minimale « serveur », sans environnement graphique | à valider | — |
| Partitionnement : EFI, /boot, racine et données sur Btrfs ou ZFS ; miroir des deux SSD ou SSD unique (Q-006) | à décider | voir Sauvegardes |
| Chiffrement LUKS du volume de données ; racine chiffrée ou non selon la stratégie de redémarrage sans écran | à décider | voir Sécurité |
Compte d'administration nominatif, pas de mot de passe root, sudo | à valider | — |
| Nom d'hôte, fuseau horaire Europe/Paris, synchronisation NTP | à valider | — |
Étape 3 : noyau et firmware
| Action | Statut | Source |
|---|---|---|
Vérifier uname -r : 6.18.4 ou plus récent | sourcé | 4 5 |
| Vérifier la version de linux-firmware (2026010 ou supérieure citée comme condition de stabilité) | sourcé (communauté) | 5 |
| Sur Ubuntu 24.04 : installer le noyau OEM/HWE ; sur 26.04 et Fedora 43 : noyau livré | sourcé | 3 |
Ajouter amdgpu.gpu_recovery=1 à la ligne de commande du noyau (récupération après ring timeout) | sourcé (communauté) ; effet à valider | 10 |
| Conserver au moins un noyau précédent démarrable | à valider | — |
Étape 4 : mémoire GPU
Détail et paramètres : Mémoire GPU.
| Action | Statut | Source |
|---|---|---|
Relever la valeur par défaut de /sys/module/ttm/parameters/pages_limit et la présence des modules ttm, amdttm, amdgpu dans /sys/module/ | sourcé | 4 |
Installer l'outil AMD : pipx install amd-debug-tools puis amd-ttm --set 100 (100 Go) | sourcé (exemple de la doc AMD) ; persistance au redémarrage à valider | 4 |
Alternative : ttm.pages_limit=31457280 (120 Go) en ligne de commande noyau | sourcé (communauté) ; plafond à valider | 8 |
Vérifier la mémoire vue par le GPU (rocminfo ou vulkaninfo) | à valider | — |
Étape 5 : pilotes et pile d'inférence
| Action | Statut | Source |
|---|---|---|
| Mesa à jour (RADV) ; ne pas installer AMDVLK | sourcé | 9 8 |
Vulkan : vérifier que vulkaninfo liste le GPU avec le pilote RADV | à valider | — |
ROCm 10.0 (si retenu, Q-008) : dépôts AMD sur Ubuntu supporté, paquets distribution sur Fedora ; vérifier rocminfo → gfx1151 | sourcé (voie) ; commandes à ajouter depuis la doc d'installation ROCm | 3 |
llama.cpp : build Vulkan (glslc 2026.3+) et build HIP (GPU_TARGETS=gfx1151, GGML_HIP_NO_VMM=ON, GGML_HIP_ROCWMMA_FATTN=ON) | sourcé (flags) ; procédure de build à valider | 6 |
| Alternative rapide : conteneurs kyuz0 (Vulkan et ROCm prêts à l'emploi) pour le POC | sourcé | 7 |
Options d'exécution : -fa 1, --no-mmap, -dio (HIP, modèles de plus de 6 Go) | sourcé (communauté) | 7 6 |
Étape 6 : conteneurs
| Action | Statut | Source |
|---|---|---|
| Installer Docker (ou Podman) depuis les dépôts officiels de la distribution ou de l'éditeur | à valider | — |
Exposer /dev/kfd et /dev/dri aux conteneurs d'inférence ; groupes video et render | à valider | voir ROCm |
| Déployer les services depuis le dépôt de configuration versionné (compose) : llama-server, base vectorielle, interface, identité, reverse proxy | à décider (choix détaillés dans Architecture) | — |
| Volumes de données sur le volume chiffré ; images épinglées par version | à valider | — |
Étape 7 : comptes, SSH, pare-feu
| Action | Statut | Source |
|---|---|---|
| SSH : authentification par clé uniquement, mot de passe désactivé, root interdit | à valider | voir Sécurité |
| Pare-feu : tout fermé sauf SSH (réseau local ou VPN) et les ports du reverse proxy | à valider | voir Réseau |
| VPN d'administration (WireGuard ou Tailscale) | à décider | voir Réseau |
fail2ban ou équivalent sur SSH | à valider | — |
| Mises à jour de sécurité automatiques ; mises à jour noyau/firmware/Mesa/ROCm manuelles | à valider | voir vue d'ensemble |
Étape 8 : snapshots et sauvegardes
| Action | Statut | Source |
|---|---|---|
| Configurer les snapshots (Snapper, Timeshift ou zfs-autosnapshot) : avant chaque mise à jour et quotidiens | à valider | voir Sauvegardes |
| Sauvegarde externe chiffrée des données (règle 3-2-1) ; test de restauration | à valider | voir Sauvegardes |
| Prendre un snapshot « installation validée » à la fin de la procédure | à valider | — |
Étape 9 : désactivation de la veille et supervision
| Action | Statut | Source |
|---|---|---|
| Désactiver suspend/hibernate au niveau systemd | à valider (motivé par le bug xHCI/s2idle) | voir Stabilité |
| Exporteurs Prometheus (système, GPU), tableau Grafana, alertes | à valider | voir Monitoring |
| Redémarrage automatique du service d'inférence en cas d'arrêt | à valider | — |
Checklist de validation
À exécuter à la fin de l'installation et après chaque mise à jour majeure.
| Vérification | Attendu | Statut |
|---|---|---|
| BIOS | 3.06 ou plus récent ; UMA au minimum | sourcé |
| Noyau et firmware | 6.18.4+ ; firmware 2026010+ | sourcé |
| GPU | vulkaninfo → RADV ; rocminfo → gfx1151 (si ROCm) | à valider |
| Mémoire GPU | pages_limit ≥ 100 Go ; gpt-oss-120b se charge | à valider |
| Inférence | llama-bench pp512 / tg128 dans les fourchettes publiées (voir fiche machine) | à valider |
| Stabilité | 1 h de charge llama-server sans message amdgpu anormal dans dmesg ; 24 h avant mise en production | à valider |
| Sécurité | SSH par clé seulement ; pare-feu actif ; LUKS ; checklist sécurité passée | à valider |
| Sauvegarde | snapshot « installation validée » ; restauration testée | à valider |
| Redémarrage | la machine redémarre seule après coupure et relance tous les services | à valider |
| Documentation | journal d'installation et dépôt de configuration à jour | — |
Questions ouvertes
- Mesurer la mémoire GPU allouable sur le Framework DesktopAvec BIOS 3.06, UMA à 512 Mo, noyau 6.18.4+ et ttm.pages_limit fixé via amd-ttm, le GPU peut allouer au moins 100 Go de façon stable ; gpt-oss-120b MXFP4 se charge avec 32k tokens de contexte pour 4 slots.À tester
- Redémarrage à distance avec disque chiffré LUKS2 et TPM2Avec systemd-cryptenroll et un enrôlement TPM2 lié aux PCR du démarrage sécurisé, la Box redémarre sans saisie de mot de passe après un redémarrage ordinaire, refuse le déverrouillage automatique après une modification du chargeur ou de la désactivation de Secure Boot, et redevient déverrouillable avec la clé de récupération.À tester
- Stabilité sous charge continue pendant 24 heuresAvec BIOS 3.06, noyau 6.18.4+, firmware 2026010+, veille désactivée, amdgpu.gpu_recovery=1 et 100 Go de GTT, llama-server (backend retenu) sert 4 utilisateurs simulés en continu pendant 24 h sans reset GPU, sans erreur amdgpu dans dmesg et sans redémarrage du service.À tester
- Valider l'installation reproductibleUne personne compétente en administration Linux mais sans connaissance préalable du projet réinstalle la Box en moins d'une demi-journée à partir de la page Installation et du dépôt de configuration, et obtient le même résultat à la checklist de validation que l'installation initiale.À tester
Sources
- 1Framework Desktop AMD Ryzen AI Max 300 — BIOS & Drivers (notes de version)Documentation officielleFiabilité hauteFramework Computer Inc. · publié 2026-08-03 (BIOS 3.06) · consulté le 16 sept. 2026 · fiche source
- 2Framework Desktop — onglet Linux (distributions supportées)Constructeur / éditeurFiabilité hauteFramework Computer Inc. · publié 2026-09-16 (consultation) · consulté le 16 sept. 2026 · fiche source
- 3ROCm 10.0.0 — compatibility matrixDocumentation officielleFiabilité hauteAMD · publié 2026-08-19 · consulté le 16 sept. 2026 · fiche source
- 4AMD Strix Halo / RDNA3.5 system optimization (ROCm 10.0)Documentation officielleFiabilité hauteAMD · publié 2026 · consulté le 16 sept. 2026 · fiche source
- 5Linux + ROCm: January 2026 Stable Configurations Update (forum, kyuz0)ForumFiabilité moyenneFramework Community · kyuz0 · publié 2026-01-18 · consulté le 16 sept. 2026 · fiche source
- 6llama.cpp discussion #20856 — Known-Good Strix Halo ROCm + llama.cpp StackGitHubFiabilité moyenneGitHub ggml-org (communauté) · realugbun · publié 2026-03-22 (màj 2026-07-23) · consulté le 16 sept. 2026 · fiche source
- 7amd-strix-halo-toolboxes (README)GitHubFiabilité moyenneGitHub (communauté) · kyuz0 · publié 2025–2026 · consulté le 16 sept. 2026 · fiche source
- 8strix-halo-guide (README + BENCHMARKS.md)GitHubFiabilité moyenneGitHub (communauté) · hogeheer499 · publié 2026-03 → 2026-08-30 · consulté le 16 sept. 2026 · fiche source
- 9AMD Officially Confirms The End Of The AMDVLK Driver (Phoronix)Article techniqueFiabilité hautePhoronix · Michael Larabel · publié 2025-09-15 · consulté le 16 sept. 2026 · fiche source
- 10Strix Halo / gfx1151: gfx ring timeout under mundane GL load (forum)ForumFiabilité moyenneFramework Community · publié 2026-05-01 · consulté le 16 sept. 2026 · fiche source