# Procédure pour habiliter Ubuntu 24.04.x à piloter correctement une RTX 5070 Ti ## Description du problème Dans un contexte “Ubuntu vanille”, l’installation NVIDIA/CUDA peut facilement devenir instable si l’on mélange des sources de paquets : - 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 - Ubuntu 24.04.x (testé avec 24.04.3 LTS) - Accès Internet - `sudo` - Recommandé : Secure Boot OFF ## Procédure from scratch Stabiliser l’OS (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..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 ``` 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) ## 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 : ``` source /etc/profile.d/cuda-12-8.sh which nvcc nvcc --version ``` #