Files
tomasz-syn-grzegorza 359afb3a59 Initial import: bare-metal stacks, Server UI, GPU fan, tutorials.
Infrastructure configs for GMKtec K11 (Docker, vLLM, LocalAI, ComfyUI,
control-plane, gpu-fan agent, Server UI with CLI/file explorer/GPU fan curve).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-05 12:02:04 +00:00

9.4 KiB
Raw Permalink Blame History

02 — Sterowniki NVIDIA

Cel rozdziału: zainstalować sterownik NVIDIA dla RTX 3090 Ti na headless serwerze Ubuntu 26.04, tak aby nvidia-smi działało na hoście przed konfiguracją GPU w Dockerze.

Szacowany czas: 1530 minut (zależy od pobierania pakietów i ewentualnego DKMS)

Wymagania: ukończony rozdział 01 — Aktualizacja systemu i Docker CE


Spis treści

  1. Weryfikacja punktu startowego
  2. Wybór sterownika
  3. Instalacja sterownika
  4. Restart i pierwsze uruchomienie
  5. Konfiguracja serwerowa (opcjonalna)
  6. Weryfikacja
  7. Troubleshooting
  8. Czego nie robimy w tym kroku
  9. Następny krok

1. Weryfikacja punktu startowego

# Docker z rozdziału 01 — musi działać
docker --version
docker ps

# GPU widoczne w PCI
lspci | grep -i "nvidia"

# nvidia-smi jeszcze nie działa — to normalne
nvidia-smi 2>/dev/null || echo "nvidia-smi: not available (expected)"

# lista dostępnych sterowników
sudo ubuntu-drivers devices

Oczekiwany wynik:

  • RTX 3090 Ti (GA102) widoczna w lspci
  • nvidia-smi niedostępne
  • ubuntu-drivers pokazuje m.in. nvidia-driver-595-open jako recommended

Sprawdź też Secure Boot (wpływa na DKMS):

mokutil --sb-state 2>/dev/null || echo "mokutil not available"

Na tym serwerze Secure Boot jest wyłączony — nie będzie promptu MOK przy instalacji.


2. Wybór sterownika

Dla headless serwera AI (vLLM + ComfyUI, bez monitora) rekomendujemy wariant server + open kernel modules:

Wariant Pakiet Kiedy użyć
Rekomendowany nvidia-driver-595-server-open Serwer compute, bez GUI, nowoczesne moduły open
Alternatywa nvidia-driver-595-open Jeśli server-open sprawia problemy
Nie używamy nouveau Sterownik open-source — za wolny do AI

Dlaczego server-open, a nie desktop 595-open?

  • Wariant server nie ciągnie zbędnych zależności od display managera
  • Wariant open to aktualna rekomendacja Ubuntu 26.04 dla nowoczesnych GPU
  • Sterownik pochodzi z repozytorium Ubuntu (restricted) — aktualizuje się przez apt upgrade i przeżywa upgrade kernela (DKMS / prebuilt modules)

Uwaga: Na hoście nie instalujemy pełnego CUDA Toolkit. Kontenery vLLM/ComfyUI dostarczą własne biblioteki CUDA — w rozdziale 03 dodamy tylko NVIDIA Container Toolkit.

Dual GPU: W tym systemie jest też iGPU AMD (HawkPoint). Do workloadów AI używamy wyłącznie NVIDIA:

# zapisz na później — używane w compose stackach
export CUDA_VISIBLE_DEVICES=0

3. Instalacja sterownika

3.1 Pakiety pomocnicze

sudo apt update
sudo apt install -y ubuntu-drivers-common

3.2 Instalacja sterownika server-open (rekomendowana)

sudo ubuntu-drivers install --gpgpu nvidia:595-server-open

Flaga --gpgpu filtruje sterowniki pod obciążenia compute (bez GUI).

Jeśli powyższa komenda zgłosi brak pakietu, użyj bezpośredniej instalacji apt:

sudo apt install -y nvidia-driver-595-server-open

3.3 Narzędzia monitorowania (nvidia-smi)

Na serwerach headless pakiet nvidia-utils czasem nie jest dołączany automatycznie:

sudo apt install -y nvidia-utils-595-server

Jeśli wolisz iść ścieżką „recommended” z ubuntu-drivers devices:

sudo ubuntu-drivers install nvidia:595-open
sudo apt install -y nvidia-utils-595

Ta ścieżka też zadziała — ale dla serwera AI preferujemy wariant z sekcji 3.2.

3.5 Sprawdzenie zainstalowanych pakietów

dpkg -l | grep -i nvidia | grep -v linux-firmware

Oczekiwane m.in.: nvidia-driver-595-server-open, nvidia-utils-595-server.


4. Restart i pierwsze uruchomienie

Sterownik NVIDIA ładuje się do jądra dopiero po restarcie:

sudo reboot

Po restarcie zaloguj się ponownie przez SSH i wróć do sekcji 6 (Weryfikacja).


5. Konfiguracja serwerowa (opcjonalna)

Te kroki możesz wykonać po pierwszym udanym nvidia-smi.

5.1 Persistence mode

Zmniejsza opóźnienie przy pierwszym uruchomieniu workloadu GPU (kontenery startują szybciej):

# włącz persistence mode
sudo nvidia-smi -pm 1

# sprawdź
nvidia-smi | grep -i persistence

Aby włączać przy każdym bootcie, utwórz systemd service (opcjonalnie):

sudo tee /etc/systemd/system/nvidia-persistenced.service <<'EOF'
[Unit]
Description=NVIDIA Persistence Daemon
After=nvidia-persistenced.socket

[Service]
Type=forking
ExecStart=/usr/bin/nvidia-persistenced --user nvidia-persistenced
Restart=on-failure

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl enable --now nvidia-persistenced 2>/dev/null || true

Uwaga: Na Ubuntu 26.04 daemon może już być zarządzany przez pakiet sterownika — jeśli nvidia-persistenced działa, nie twórz duplikatu.

5.2 Limit mocy GPU (opcjonalnie)

RTX 3090 Ti domyślnie pobiera dużo energii. Na serwerze domowym możesz ograniczyć TDP:

# sprawdź aktualny limit (450W max dla 3090 Ti)
nvidia-smi -q -d POWER | grep -E "Power Limit|Power Draw"

# przykład: limit 350W (wartość w mW) — dostosuj do swojego PSU
# sudo nvidia-smi -pl 350

Pomiń ten krok, jeśli zależy Ci na maksymalnej wydajności inference.


6. Weryfikacja

Wykonaj wszystkie punkty po restarcie.

6.1 nvidia-smi

nvidia-smi

Oczekiwane:

  • GPU: NVIDIA GeForce RTX 3090 Ti
  • Driver Version: 595.x
  • CUDA Version: wyświetlona (np. 12.x) — to wersja wspierana przez sterownik, nie osobna instalacja CUDA
  • Brak błędów NVIDIA-SMI has failed

6.2 Wersja modułu jądra

cat /proc/driver/nvidia/version

6.3 Pełna lista GPU

nvidia-smi -L

Oczekiwane: jedna karta NVIDIA (GPU 0). iGPU AMD nie pojawia się w nvidia-smi — to prawidłowe.

6.4 Test obciążenia (krótki)

nvidia-smi dmon -s pucvmet -d 1 -c 3

Powinieneś zobaczyć odczyty temperatury, mocy i wykorzystania GPU.

6.5 Docker nadal działa

docker run --rm hello-world

Sterownik NVIDIA nie powinien zakłócić Dockera z rozdziału 01.

Checklist

  • nvidia-smi działa bez błędów
  • Widoczna RTX 3090 Ti (24 GB VRAM)
  • Driver Version 595.x
  • cat /proc/driver/nvidia/version zwraca wersję
  • Docker nadal działa (hello-world OK)
  • (Opcjonalnie) persistence mode włączony

7. Troubleshooting

7.1 NVIDIA-SMI has failed po restarcie

Przyczyna: Moduł jądra nie załadowany lub konflikt z nouveau.

Diagnostyka:

lsmod | grep -E 'nvidia|nouveau'
dmesg | grep -i nvidia | tail -20

Rozwiązanie:

# nouveau powinien być wyłączony — jeśli załadowany:
cat /etc/modprobe.d/blacklist-nvidia-nouveau.conf 2>/dev/null

# przeinstaluj sterownik
sudo apt install --reinstall nvidia-driver-595-server-open
sudo reboot

7.2 DKMS — błąd kompilacji modułu

Objaw: Instalacja kończy się błędem DKMS.

Rozwiązanie:

# upewnij się, że masz nagłówki kernela
sudo apt install -y linux-headers-$(uname -r) build-essential dkms

# ponów instalację
sudo apt install --reinstall nvidia-driver-595-server-open

7.3 Secure Boot — moduł niepodpisany

Objaw: Po restarcie brak nvidia w lsmod, Secure Boot enabled.

Na tym serwerze Secure Boot jest wyłączony. Jeśli włączysz go później:

mokutil --sb-state
# wymagana rejestracja klucza MOK po instalacji sterownika
sudo reboot  # → menu MOK enrollment

7.4 ubuntu-drivers install — GUI nie działa

Na Ubuntu 26.04 zakładka „Additional Drivers” w GUI może być pusta — to znany problem. Używaj wyłącznie CLI (ten rozdział).

7.5 Po aktualizacji kernela — nvidia-smi przestaje działać

Po apt upgrade z nowym kernelem wymagany restart:

test -f /var/run/reboot-required && echo "Reboot required" || echo "OK"
sudo reboot

Ubuntu 26.04 na tym sprzęcie używa prebuilt modules (linux-modules-nvidia-*) — zwykle nie wymaga ręcznej rekompilacji DKMS.

7.6 Zła karta GPU używana przez aplikację

Jeśli w przyszłości pojawi się druga karta NVIDIA, wymuszaj:

export CUDA_VISIBLE_DEVICES=0

Dla RTX 3090 Ti jako jedynej karty NVIDIA w systemie domyślnie jest GPU 0.


8. Czego nie robimy w tym kroku

Element Rozdział
NVIDIA Container Toolkit (nvidia-ctk) 03
GPU w kontenerach Docker (--gpus all) 03
CUDA Toolkit na hoście niepotrzebne — CUDA w kontenerach
vLLM 04
ComfyUI 05
Firewall 06

9. Następny krok

Po przejściu checklisty z sekcji 6:

  1. Zgłoś w rozmowie z Cursorem, że krok 02 jest gotowy (lub opisz problemy).
  2. Przejdź do rozdziału 03 — NVIDIA Container Toolkit.

Podsumowanie wykonanych zmian

Po ukończeniu tego rozdziału na serwerze powinno być:

  • Zainstalowany sterownik nvidia-driver-595-server-open (lub 595-open)
  • Działające nvidia-smi z RTX 3090 Ti
  • Narzędzia nvidia-utils-595-server
  • Docker z rozdziału 01 nadal sprawny
  • (Opcjonalnie) włączony persistence mode