Kompletny przewodnik techniczny: flashowanie CMP 170HX i odblokowanie 64 GB HBM2e na Ubuntu 22.04 LTS
Udostępnij
# Kompletny przewodnik techniczny: flashowanie CMP 170HX & odblokowanie 64 GB HBM2e w Ubuntu 22.04 LTS
Ten przewodnik przeprowadza przez pełną procedurę obejścia fabrycznych ograniczeń OTP w karcie **NVIDIA CMP 170HX** (architektura GA100, Device ID `10de:20c2` / `10de:20b0`) przy użyciu **`CMPUnlocker`**. Przywraca ona wyłączone multiprocesory strumieniowe (SM) i odblokowuje uśpioną geometrię pamięci HBM2e (rozszerzając modele 8 GB do 64 GB VRAM).
---
## Wymagania techniczne i systemowe
Przed rozpoczęciem należy upewnić się, że serwer hosta spełnia następujące kryteria:
* **System operacyjny:** Ubuntu 22.04 LTS lub 24.04 LTS (x86_64).
* **Docelowy sterownik:** pakiet sterowników NVIDIA Open GPU Kernel Modules (gałąź v580.x).
* **Uprawnienia systemowe:** dostęp root / `sudo`.
* **Chłodzenie sprzętu:** wymuszony przepływ powietrza o wysokim ciśnieniu statycznym (wentylatory 4 000+ RPM w obudowie rack 4U), aby zapobiec wyłączeniu termicznemu na pasywnych radiatorach.
---
### Krok 1: audyt systemu i instalacja zależności
Najpierw należy potwierdzić, że karta jest wykrywana na magistrali PCIe, oraz zainstalować środowisko deweloperskie Pythona 3 i parser YAML wymagane przez skrypt odblokowujący.
```bash
# 1. Sprawdzenie obecności GA100 / CMP 170HX na magistrali PCI
lspci -nn | grep -i nvidia
# Oczekiwany wynik powinien pokazać Device ID 10de:20c2 lub 10de:20b0
# 2. Aktualizacja indeksów repozytoriów i instalacja zależności systemowych
sudo apt update && sudo apt install -y \
build-essential \
python3 \
python3-pip \
python3-yaml \
git \
pciutils \
wget
3. Weryfikacja instalacji PyYAML
python3 -c "import yaml; print(yaml.__version__)"
Krok 2: instalacja otwartoźródłowych sterowników jądra NVIDIA (gałąź 580.x)
CMPUnlocker opiera się na konkretnych nadpisaniach rejestrów w firmware NVIDIA GSP (GPU System Processor) ładowanym przez serię sterowników nvidia-open 580.
# 1. Dodanie oficjalnego PPA Graphics Drivers
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update
# 2. Instalacja sterownika GPU z otwartym jądrem i narzędzi CUDA
sudo apt install -y nvidia-driver-580-open nvidia-utils-580
# 3. Zablokowanie automatycznych aktualizacji, które psują moduły jądra
sudo apt-mark hold nvidia-driver-580-open
4. Weryfikacja obecności firmware GSP
ls -la /lib/firmware/nvidia/580.*/gsp_tu10x.bin
Krok 3: kopia zapasowa fabrycznego firmware GSP
Przed uruchomieniem łatki odblokowującej należy zawsze wykonać kopię zapasową niezmodyfikowanego pliku binarnego firmware (gsp_tu10x.bin).
# Ustalenie dokładnej ścieżki katalogu sterownika
GSP_DIR=$(dirname$(ls /lib/firmware/nvidia/580.*/gsp_tu10x.bin | head -n1))
Utworzenie trwałej kopii fabrycznej
sudo cp "${GSP_DIR}/gsp_tu10x.bin" "${GSP_DIR}/gsp_tu10x.bin.stock"
echo "Backup saved to ${GSP_DIR}/gsp_tu10x.bin.stock"
Krok 4: klonowanie CMPUnlocker i wybór profilu VRAM
Należy sklonować repozytorium źródłowe i ustawić docelową geometrię pamięci na unlocked_64gb dla wariantów z 8 GB fizycznej pamięci.
# 1. Klonowanie repozytorium do lokalnego katalogu roboczego
cd /opt
sudo git clone [https://github.com/amoghmunikote/cmpunlocker.git](https://github.com/amoghmunikote/cmpunlocker.git)
cd cmpunlocker
# 2. Sprawdzenie ustawień profilu w konfiguracji constants
# Dla kart z 8 GB fizycznej pamięci celujących w 64 GB VRAM:
sudo ./install.sh --profile=8gb
# (Uwaga: dla rzadkich rewizji 10 GB celujących w 40 GB/80 GB należy użyć --profile=10gb)
Krok 5: wykonanie zimnego restartu zasilania
W odróżnieniu od zwykłego przeładowania sterownika, pierwsze odblokowanie rejestru WPR2 i wyczyszczenie stanu kondensatorów SEC2 wymagają pełnego zimnego startu. Ciepłe, programowe restarty spowodują, że ładunek odblokowujący zawiedzie przy pierwszym uruchomieniu.
# 1. Całkowite wyłączenie systemu
sudo poweroff
Uwaga eksploatacyjna: po wyłączeniu serwera należy fizycznie odłączyć kable zasilania AC na 60 sekund, aby całkowicie rozładować napięcie standby z kondensatorów płyty głównej i karty GPU. Następnie podłączyć zasilanie ponownie i uruchomić Ubuntu.
Krok 6: uruchomienie procesu odblokowania i włączenie demona systemd
Ponieważ modyfikacje rejestrów nie przetrwają natywnie głębokich cykli zasilania, usługa działająca w tle CMPUnlocker monitoruje rejestry i automatycznie ponownie nakłada łatkę przy starcie oraz po przeładowaniu sterownika.
cd /opt/cmpunlocker
# 1. Uruchomienie skryptu instalacyjnego odblokowania z uprawnieniami roota
sudo ./install.sh
# 2. Sprawdzenie statusu usługi systemd
sudo systemctl status cmpunlocker.service
# 3. Podgląd logów demona w celu potwierdzenia nałożenia łatki
journalctl -u cmpunlocker -f -n 20
Krok 7: weryfikacja odblokowanej pamięci i stanu obliczeniowego
Należy odpytać nvidia-smi i uruchomić krótki skrypt inicjalizujący CUDA, aby potwierdzić pełną przepustowość obliczeniową i rozpoznanie VRAM.
# 1. Weryfikacja zdjęcia limitu zegara SM i raportowania VRAM
nvidia-smi --query-gpu=name,memory.total,clocks.max.sm --format=csv
# Oczekiwany wynik:
# name, memory.total [MiB], clocks.max.sm [MHz]
# NVIDIA Graphics Device, 65536 MiB, 1410 MHz
# 2. Uruchomienie testowego skryptu CUDA C-types w Pythonie
python3 -c "
import ctypes
cuda = ctypes.CDLL('libcuda.so.1')
init_res = cuda.cuInit(0)
print(f'CUDA Init Status: {init_res} (0 = SUCCESS)')
"
Rozwiązywanie problemów i tryby awarii
| Problem / objaw | Prawdopodobna przyczyna | Działanie naprawcze |
nvidia-smi nadal raportuje 8 GB VRAM |
Nadpisanie rejestru GSP-RM lub pominięty zimny restart. | Należy wykonać rygorystyczne 60-sekundowe fizyczne rozładowanie zasilania. Trzeba też upewnić się, że gsp_patch.py poprawnie zaktualizował sh_size podczas konfiguracji. |
| GPU znika z magistrali PCIe / throttling termiczny | Niewystarczający przepływ powietrza przez pasywny radiator. | Należy zapewnić, aby wentylatory obudowy o wysokim CFM tłoczyły powietrze bezpośrednio wzdłuż żeber radiatora GPU. Przepływ powietrza w zwykłym desktopie jest niewystarczający. |
| Awaria jądra przy dużym obciążeniu LLM | Defekt krzemu w odblokowanym stosie HBM2e. | Należy ponownie uruchomić ./install.sh --profile=40gb (lub edytować constants.yaml), aby ograniczyć alokację VRAM do stabilnych 32 GB/40 GB. |