MAJ doc pour cohérence.

This commit is contained in:
Daniel Allaire 2026-01-05 16:24:22 -05:00
parent d223bd4abb
commit c516aeb661
3 changed files with 127 additions and 146 deletions

163
README.md
View file

@ -1,127 +1,76 @@
# Procédure pour habiliter Ubuntu 24.04.x à piloter correctement une RTX 5070 Ti
# Ubuntu 24.04.x + RTX 5070 Ti — Driver Ubuntu + CUDA 12.8 (NVIDIA) avec pinning APT
## Description du problème
## Contexte
Dans un contexte “Ubuntu vanille”, linstallation NVIDIA/CUDA peut facilement devenir instable si lon mélange des sources de paquets :
Sur une installation Ubuntu “vanille”, la pile NVIDIA peut devenir instable si lon mélange des sources APT (Ubuntu vs dépôt CUDA NVIDIA) pour les composants driver (libs/utilitaires/modules). Cela peut mener à des conflits de dépendances ou à des upgrades qui régressent.
- des composants NVIDIA tirés du dépôt Ubuntu (drivers/modules)
- dautres composants NVIDIA tirés du dépôt CUDA NVIDIA (libs driver, utilitaires)
- et, en parallèle, le toolkit CUDA
## Choix darchitecture (solution testée)
Ce mélange peut produire des conflits APT (ex. `libnvidia-gl-580` vs `libnvidia-egl-gbm1`) ou des mises à jour qui brisent des dépendances..
Règle simple : une source unique par famille de composants.
## Solution testée (choix darchitecture)
- Driver NVIDIA (modules kernel + libs + utils) : Ubuntu
- CUDA Toolkit : dépôt NVIDIA (`/usr/local/cuda-12.8`)
- Pinning APT : autoriser `cuda-*` depuis NVIDIA, empêcher NVIDIA de prendre la main sur `nvidia-*` et `libnvidia-*`
Une règle simple -> **une seule source par “famille” de composants**.
## Ce que fait ce dépôt
- **Driver NVIDIA (kernel modules + libs + utils)** : **Ubuntu**
- cohérence maximale avec le kernel Ubuntu
- intégration APT standard
- **CUDA Toolkit** : **NVIDIA**
- `/usr/local/cuda-12.8`
- toolchain CUDA stable et explicite
- `setup-rtx5070ti-ubuntu2404.sh` : installation complète (driver Ubuntu 580-open + CUDA 12.8 + pinning)
- `apt/99-nvidia-from-ubuntu-cuda-from-nvidia.pref` : pinning APT
- `env/cuda-12-8.sh` : environnement CUDA (PATH + LD_LIBRARY_PATH)
- `install.sh` : déploie les artefacts dans `/etc/...`
- `Makefile` : raccourcis (prereq/setup/apply/check/status)
Et pour empêcher les régressions lors des upgrades :
## Récupération du dépôt (Git)
- **Pinning APT** : autoriser le dépôt NVIDIA pour `cuda-*`, mais **empêcher** quil prenne la main sur `nvidia-*` et `libnvidia-*`.
1. Installer git (si nécessaire) :
sudo apt update
sudo apt install -y git
2. Cloner le dépôt :
git clone <https://forge.alliance-boreale.ca/Chezlepro/rtx5070ti-ubuntu2404.git>
cd rtx5070ti-ubuntu2404
## Contenu du dépôt
## Chemins recommandés
- `setup-rtx5070ti-ubuntu2404.sh`
Installe le driver Ubuntu 580-open + CUDA Toolkit 12.8 + pinning APT
- `apt/99-nvidia-from-ubuntu-cuda-from-nvidia.pref`
Pinning APT (driver/libs depuis Ubuntu; `cuda-*` depuis NVIDIA)
- `env/cuda-12-8.sh`
Variables denvironnement (PATH + LD_LIBRARY_PATH)
- `install.sh`
Déploie `apt/99-...pref` et `env/cuda-12-8.sh` dans `/etc/...`
- `Makefile`
install / check
### A) From scratch (recommandé)
1. Baseline OS (mises à jour + kernel), reboot requis
- make prereq
- sudo reboot
1. Installation complète, reboot requis
- make setup
1. Vérification
- make check
- (optionnel) make status
### B) Appliquer seulement les artefacts /etc
- make apply
## Validation (résumé)
- make check (recommandé)
ou, en manuel :
- nvidia-smi
- nvcc --version
- apt-cache policy libnvidia-gl-580 libnvidia-egl-gbm1 nvidia-driver-580-open nvidia-utils-580
## Prérequis
- Ubuntu 24.04.x (testé avec 24.04.3 LTS)
- Accès Internet
- `sudo`
- Recommandé : Secure Boot OFF
## Procédure from scratch
Stabiliser lOS (kernel + paquets), puis redémarrer :
```
sudo apt update
sudo apt full-upgrade -y
sudo reboot
```
Installer driver + CUDA + pinning APT (script), puis redémarrer :
```
chmod +x setup-rtx5070ti-ubuntu2404.sh
sudo ./setup-rtx5070ti-ubuntu2404.sh
# accepter le reboot en fin de script
```
Note : le script écrit un log dans `/tmp/rtx5070ti-ubuntu2404-setup.<timestamp>.log`.
## Résultat attendu
Obtenir un environnement reproductible, maintenable par APT, et résistant aux régressions :
- Driver NVIDIA provenant dUbuntu (stack cohérent avec le kernel Ubuntu)
- `nvidia-driver-580-open`
- `linux-modules-nvidia-580-open-$(uname -r)`
- `libnvidia-gl-580`
- `nvidia-utils-580`
- CUDA Toolkit provenant du dépôt NVIDIA
- `cuda-toolkit-12-8``/usr/local/cuda-12.8`
- Protection APT (pinning)
- Empêche le dépôt CUDA NVIDIA de remplacer `nvidia-*` / `libnvidia-*` lors dun `apt upgrade`
- Évite notamment le conflit `libnvidia-gl-580``libnvidia-egl-gbm1`
## Validation
```
nvidia-smi
source /etc/profile.d/cuda-12-8.sh
which nvcc
nvcc --version
sudo apt update
sudo apt upgrade -y
```
Pour valider que le pinning APT est bien effectif :
```
apt-cache policy libnvidia-gl-580 libnvidia-egl-gbm1 nvidia-driver-580-open nvidia-utils-580 | sed -n '1,220p'
```
## Installer seulement les artefacts /etc (pinning + env CUDA)
Déploie les fichiers du repo vers :
- `/etc/apt/preferences.d/99-nvidia-from-ubuntu-cuda-from-nvidia.pref`
- `/etc/profile.d/cuda-12-8.sh`
```
sudo ./install.sh
```
## Makefile
- `make install` : exécute `sudo ./install.sh`
- `make check` : checks rapides (APT policy, nvcc, nvidia-smi)
- Accès Internet, sudo
- Recommandé : Secure Boot OFF (trajet le plus déterministe)
## Notes
- La ligne “CUDA Version: …” affichée par `nvidia-smi` représente la capacité exposée par le driver, pas la version du toolkit installé.
La version du toolkit installé se valide avec :
- nvidia-smi affiche “CUDA Version: …” : cest la capacité exposée par le driver, pas la version du toolkit installé.
La version installée se valide avec nvcc --version.
```
source /etc/profile.d/cuda-12-8.sh
which nvcc
nvcc --version
```
Documentation détaillée :
#
- docs/procedure-from-scratch.md
- docs/validation.md

View file

@ -1,36 +1,60 @@
# Procédure from scratch — Ubuntu 24.04.x “vanille” → RTX 5070 Ti OK
Cette procédure vise un résultat sans mélange de sources, ni de conflit APT.
Cette procédure vise un résultat déterministe : pas dessais-erreurs, pas de mélange de sources, pas de conflit APT.
## 1) BIOS/UEFI
Pré-requis : exécuter les commandes depuis la racine du dépôt (là où se trouve le Makefile).
- Secure Boot OFF (évite les surprises de chargement de modules).
## 1) BIOS/UEFI (recommandé)
- Secure Boot OFF (max déterminisme, évite les surprises de chargement de modules).
## 2) Premier boot : stabiliser la base OS
Objectif : être sur le kernel et les paquets à jour avant dinstaller le driver NVIDIA.
```
sudo apt update
sudo apt full-upgrade -y
sudo reboot
```
Option “commandes directes” :
sudo apt update
sudo apt full-upgrade -y
sudo reboot
## 3) Installer driver + CUDA + pinning APT
Après reboot :
Après reboot, exécuter linstallation complète :
```
chmod +x setup-rtx5070ti-ubuntu2404.sh
sudo ./setup-rtx5070ti-ubuntu2404.sh
# accepter le reboot en fin de script
```
Option “commandes directes” :
chmod +x [setup-rtx5070ti-ubuntu2404.sh](http://setup-rtx5070ti-ubuntu2404.sh)
sudo ./[setup-rtx5070ti-ubuntu2404.sh](http://setup-rtx5070ti-ubuntu2404.sh)
(accepter le reboot en fin de script, ou redémarrer ensuite)
## 4) Vérification post-reboot
```
nvidia-smi
nvcc --version
sudo apt update
sudo apt upgrade -y
```
nvidia-smi
nvcc --version
sudo apt update
sudo apt upgrade -y
---
## Variante avec Makefile (recommandée)
Cette variante évite doublier une étape et normalise lexécution.
1. Baseline OS (mises à jour + kernel), puis redémarrage
- make prereq
- sudo reboot
1. Installation complète (driver Ubuntu + CUDA 12.8 + pinning APT), puis redémarrage
- make setup
- (accepter le reboot si le script le demande, sinon sudo reboot)
1. Vérification rapide
- make check
1. Résumé (optionnel)
- make status

View file

@ -1,10 +1,20 @@
# Validation — Checks rapides
## Option : validation via Makefile
Si le Makefile est disponible, tu peux faire une validation complète en une commande :
- make check
Pour un état récapitulatif (versions clés, chemin nvcc, nvidia-smi) :
- make status
---
## 1) Driver / GPU
```
nvidia-smi
```
Attendu :
@ -13,39 +23,37 @@ Attendu :
## 2) CUDA Toolkit (version installée)
```
which nvcc
nvcc --version
```
which nvcc
nvcc --version
Attendu :
- `which nvcc``/usr/local/cuda-12.8/bin/nvcc`
- `nvcc --version` indique CUDA 12.8
- which nvcc → /usr/local/cuda-12.8/bin/nvcc
- nvcc --version indique CUDA 12.8
Note :
- “CUDA Version: …” dans `nvidia-smi` nest pas la version du toolkit installé ; cest la capacité exposée par le driver.
- “CUDA Version: …” dans nvidia-smi nest pas la version du toolkit installé ; cest la capacité exposée par le driver.
## 3) APT anti-régression (pinning effectif)
```
apt-cache policy libnvidia-gl-580 libnvidia-egl-gbm1 nvidia-driver-580-open nvidia-utils-580 | sed -n '1,220p'
```
Attendu :
- Les candidats `nvidia-*` / `libnvidia-*` proviennent dUbuntu
- Le dépôt CUDA NVIDIA apparaît, mais ne “gagne” pas pour `nvidia-*` / `libnvidia-*` (pinning actif)
- Les candidats nvidia-\* / libnvidia-\* proviennent dUbuntu
- Le dépôt CUDA NVIDIA apparaît, mais ne “gagne” pas pour nvidia-\* / libnvidia-\* (pinning actif)
## 4) Upgrade propre
```
sudo apt update
sudo apt upgrade -y
```
sudo apt update
sudo apt upgrade -y
Attendu :
- Aucun conflit `libnvidia-gl-580``libnvidia-egl-gbm1`
- Aucun paquet cassé / retenu pour cause de dépendances NVIDIA
- Aucun conflit libnvidia-gl-580 ↔ libnvidia-egl-gbm1
- Aucun paquet cassé / retenu pour cause de dépendances NVIDIA
Alternative équivalente (baseline OS) :
- make prereq (puis reboot recommandé)