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>
9.4 KiB
02 — Sterowniki NVIDIA
Cel rozdziału: zainstalować sterownik NVIDIA dla RTX 3090 Ti na headless serwerze Ubuntu 26.04, tak aby
nvidia-smidziałało na hoście przed konfiguracją GPU w Dockerze.
Szacowany czas: 15–30 minut (zależy od pobierania pakietów i ewentualnego DKMS)
Wymagania: ukończony rozdział 01 — Aktualizacja systemu i Docker CE
Spis treści
- Weryfikacja punktu startowego
- Wybór sterownika
- Instalacja sterownika
- Restart i pierwsze uruchomienie
- Konfiguracja serwerowa (opcjonalna)
- Weryfikacja
- Troubleshooting
- Czego nie robimy w tym kroku
- 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 wlspci nvidia-sminiedostępneubuntu-driverspokazuje m.in.nvidia-driver-595-openjako 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ę przezapt upgradei 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
3.4 Alternatywa — sterownik desktop recommended
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-smidziała bez błędów- Widoczna RTX 3090 Ti (24 GB VRAM)
- Driver Version 595.x
cat /proc/driver/nvidia/versionzwraca wersję- Docker nadal działa (
hello-worldOK) - (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:
- Zgłoś w rozmowie z Cursorem, że krok 02 jest gotowy (lub opisz problemy).
- 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(lub595-open) - Działające
nvidia-smiz RTX 3090 Ti - Narzędzia
nvidia-utils-595-server - Docker z rozdziału 01 nadal sprawny
- (Opcjonalnie) włączony persistence mode