From d223bd4abbf85b33c9ce33fb4ab764aaf3c5adfc Mon Sep 17 00:00:00 2001 From: Daniel Allaire Date: Mon, 5 Jan 2026 15:38:49 -0500 Subject: [PATCH] =?UTF-8?q?Makefile=20am=C3=A9lior=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 31 ++++++++++++++++++++-- README.md | 79 +++++++++++++++++++++++++++++++++++++------------------ 2 files changed, 83 insertions(+), 27 deletions(-) diff --git a/Makefile b/Makefile index 141c718..3b59cce 100644 --- a/Makefile +++ b/Makefile @@ -1,9 +1,36 @@ -.PHONY: install check +.PHONY: help prereq setup apply check status -install: +help: + @echo "Cibles disponibles :" + @echo " make prereq - Mise à jour + full-upgrade (baseline OS). Redémarrage requis après." + @echo " make setup - Installation complète (driver + CUDA + pinning). Redémarre en fin de script." + @echo " make apply - Déploie seulement les artefacts /etc (pinning + env CUDA)." + @echo " make check - Vérifications rapides : pinning APT, nvcc, nvidia-smi." + @echo " make status - Résumé : versions clés, chemin nvcc, nvidia-smi." + +prereq: + sudo apt update + sudo apt full-upgrade -y + @echo + @echo "Terminé. Redémarrage recommandé maintenant :" + @echo " sudo reboot" + +setup: + sudo ./setup-rtx5070ti-ubuntu2404.sh + +apply: sudo ./install.sh check: apt-cache policy libnvidia-gl-580 libnvidia-egl-gbm1 nvidia-driver-580-open nvidia-utils-580 | sed -n '1,220p' bash -lc 'source /etc/profile.d/cuda-12-8.sh; which nvcc; nvcc --version' nvidia-smi + +status: + @echo "Noyau (kernel) : $$(uname -r)" + @echo + dpkg -l | egrep 'nvidia-driver-580-open|nvidia-utils-580|libnvidia-gl-580|cuda-toolkit-12-8' || true + @echo + @bash -lc 'source /etc/profile.d/cuda-12-8.sh 2>/dev/null || true; which nvcc || true; nvcc --version || true' + @echo + @nvidia-smi || true diff --git a/README.md b/README.md index 8a2bde2..83a4d83 100644 --- a/README.md +++ b/README.md @@ -1,19 +1,42 @@ -# Ubuntu 24.04.x + RTX 5070 Ti — Setup stable (Driver Ubuntu 580-open + CUDA 12.8) +# Procédure pour habiliter Ubuntu 24.04.x à piloter correctement une RTX 5070 Ti -## Objectif +## Description du problème -Obtenir un environnement reproductible, maintenable par APT, et résistant aux régressions : +Dans un contexte “Ubuntu vanille”, l’installation NVIDIA/CUDA peut facilement devenir instable si l’on mélange des sources de paquets : -- Driver NVIDIA provenant d’Ubuntu (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 d’un `apt upgrade` - - Évite notamment le conflit `libnvidia-gl-580` ↔ `libnvidia-egl-gbm1` +- des composants NVIDIA tirés du dépôt Ubuntu (drivers/modules) +- d’autres composants NVIDIA tirés du dépôt CUDA NVIDIA (libs driver, utilitaires) +- et, en parallèle, le toolkit CUDA + +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.. + +## Solution testée (choix d’architecture) + +Une règle simple -> **une seule source par “famille” de composants**. + +- **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 + +Et pour empêcher les régressions lors des upgrades : + +- **Pinning APT** : autoriser le dépôt NVIDIA pour `cuda-*`, mais **empêcher** qu’il prenne la main sur `nvidia-*` et `libnvidia-*`. + +## Contenu du dépôt + +- `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 d’environnement (PATH + LD_LIBRARY_PATH) +- `install.sh` + Déploie `apt/99-...pref` et `env/cuda-12-8.sh` dans `/etc/...` +- `Makefile` + install / check ## Prérequis @@ -42,6 +65,21 @@ sudo ./setup-rtx5070ti-ubuntu2404.sh Note : le script écrit un log dans `/tmp/rtx5070ti-ubuntu2404-setup..log`. +## Résultat attendu + +Obtenir un environnement reproductible, maintenable par APT, et résistant aux régressions : + +- Driver NVIDIA provenant d’Ubuntu (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 d’un `apt upgrade` + - Évite notamment le conflit `libnvidia-gl-580` ↔ `libnvidia-egl-gbm1` + ## Validation ``` @@ -75,17 +113,6 @@ sudo ./install.sh - `make install` : exécute `sudo ./install.sh` - `make check` : checks rapides (APT policy, nvcc, nvidia-smi) -## Contenu du dépôt - -- `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 d’environnement (PATH + LD_LIBRARY_PATH) -- `install.sh` - Déploie `apt/99-...pref` et `env/cuda-12-8.sh` dans `/etc/...` - ## 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é. @@ -95,4 +122,6 @@ sudo ./install.sh source /etc/profile.d/cuda-12-8.sh which nvcc nvcc --version -``` \ No newline at end of file +``` + +# \ No newline at end of file