Guia técnico completo: flashar a CMP 170HX e desbloquear 64 GB HBM2e no Ubuntu 22.04 LTS
Partilhar
# Guia técnico completo: flashar a CMP 170HX & desbloquear 64 GB de HBM2e em Ubuntu 22.04 LTS
Este guia percorre o procedimento completo para contornar as restrições OTP de fábrica da **NVIDIA CMP 170HX** (arquitetura GA100, Device ID `10de:20c2` / `10de:20b0`) com o **`CMPUnlocker`**. Isto repõe os Streaming Multiprocessors (SM) desativados e desbloqueia a geometria de memória HBM2e adormecida (expandindo os modelos de 8 GB até 64 GB de VRAM).
---
## Pré-requisitos técnicos & requisitos de sistema
Antes de começar, certifique-se de que o seu servidor anfitrião cumpre os seguintes critérios:
* **SO:** Ubuntu 22.04 LTS ou 24.04 LTS (x86_64).
* **Driver alvo:** pacote de drivers NVIDIA Open GPU Kernel Modules (ramo v580.x).
* **Privilégios de sistema:** acesso root / `sudo`.
* **Arrefecimento do hardware:** fluxo de ar forçado de alta pressão estática (ventoinhas de 4.000+ RPM num chassis de rack 4U) para evitar o encerramento térmico nos dissipadores passivos.
---
### Passo 1: auditoria do sistema e instalação de dependências
Comece por confirmar que a placa é detetada no barramento PCIe e instale o ambiente de desenvolvimento Python 3 e o parser YAML exigidos pelo script do unlocker.
```bash
# 1. Procurar a GA100 / CMP 170HX no barramento PCI
lspci -nn | grep -i nvidia
# O resultado esperado deve mostrar o Device ID 10de:20c2 ou 10de:20b0
# 2. Atualizar os índices do repositório e instalar as dependências de sistema
sudo apt update && sudo apt install -y \
build-essential \
python3 \
python3-pip \
python3-yaml \
git \
pciutils \
wget
3. Verificar a instalação do PyYAML
python3 -c "import yaml; print(yaml.__version__)"
Passo 2: instalar os drivers de kernel open-source da NVIDIA (ramo 580.x)
O CMPUnlocker depende de substituições de registo específicas no firmware NVIDIA GSP (GPU System Processor) carregado pela série de drivers nvidia-open 580.
# 1. Adicionar o PPA oficial dos Graphics Drivers
sudo add-apt-repository ppa:graphics-drivers/ppa -y
sudo apt update
# 2. Instalar o driver de GPU open-kernel e os utilitários CUDA
sudo apt install -y nvidia-driver-580-open nvidia-utils-580
# 3. Impedir que as atualizações automáticas quebrem os módulos de kernel
sudo apt-mark hold nvidia-driver-580-open
4. Verificar a presença do firmware GSP
ls -la /lib/firmware/nvidia/580.*/gsp_tu10x.bin
Passo 3: cópia de segurança do firmware GSP de origem
Crie sempre uma cópia de segurança do ficheiro binário de firmware não modificado (gsp_tu10x.bin) antes de executar o patch de desbloqueio.
# Localizar o caminho exato da pasta do driver
GSP_DIR=$(dirname$(ls /lib/firmware/nvidia/580.*/gsp_tu10x.bin | head -n1))
Criar uma cópia de segurança permanente do original
sudo cp "${GSP_DIR}/gsp_tu10x.bin" "${GSP_DIR}/gsp_tu10x.bin.stock"
echo "Backup saved to ${GSP_DIR}/gsp_tu10x.bin.stock"
Passo 4: clonar o CMPUnlocker e escolher o perfil de VRAM
Clone o repositório de origem e defina a geometria de memória alvo por omissão como unlocked_64gb para as variantes físicas de 8 GB.
# 1. Clonar o repositório para o espaço de trabalho local
cd /opt
sudo git clone [https://github.com/amoghmunikote/cmpunlocker.git](https://github.com/amoghmunikote/cmpunlocker.git)
cd cmpunlocker
# 2. Rever as definições de perfil na configuração de constantes
# Para placas físicas de 8 GB com alvo de 64 GB de VRAM:
sudo ./install.sh --profile=8gb
# (Nota: para as raras placas da revisão de 10 GB com alvo de 40 GB/80 GB, use --profile=10gb)
Passo 5: executar um ciclo de arranque a frio
Ao contrário dos recarregamentos normais do driver, o desbloqueio inicial do registo WPR2 e a descarga do estado dos condensadores SEC2 exigem um arranque a frio completo. Reinícios a quente fazem falhar a carga de desbloqueio na primeira execução.
# 1. Desligar o sistema por completo
sudo poweroff
Nota operacional: assim que o servidor desligar, desligue fisicamente os cabos de alimentação AC durante 60 segundos para descarregar totalmente a tensão de standby dos condensadores da placa-mãe e da placa gráfica. Volte a ligar a alimentação e arranque o Ubuntu.
Passo 6: correr o pipeline de desbloqueio & ativar o serviço systemd
Como as alterações de registo não sobrevivem nativamente a ciclos de alimentação profundos, o serviço em segundo plano do CMPUnlocker monitoriza os registos e volta a aplicar automaticamente o patch no arranque e em cada recarregamento do driver.
cd /opt/cmpunlocker
# 1. Executar o script de instalação do desbloqueio com privilégios root
sudo ./install.sh
# 2. Verificar o estado do serviço systemd
sudo systemctl status cmpunlocker.service
# 3. Acompanhar os registos do serviço para confirmar a aplicação do patch
journalctl -u cmpunlocker -f -n 20
Passo 7: validar a memória desbloqueada e o estado de computação
Consulte o nvidia-smi e corra um pequeno script de inicialização CUDA para confirmar o débito de computação total e o reconhecimento da VRAM.
# 1. Verificar a remoção do limite de frequência dos SM e a VRAM reportada
nvidia-smi --query-gpu=name,memory.total,clocks.max.sm --format=csv
# Resultado esperado:
# name, memory.total [MiB], clocks.max.sm [MHz]
# NVIDIA Graphics Device, 65536 MiB, 1410 MHz
# 2. Executar o script de teste CUDA com ctypes em Python
python3 -c "
import ctypes
cuda = ctypes.CDLL('libcuda.so.1')
init_res = cuda.cuInit(0)
print(f'CUDA Init Status: {init_res} (0 = SUCCESS)')
"
Resolução de problemas & modos de falha
| Problema / sintoma | Causa provável | Ação corretiva |
O nvidia-smi continua a indicar 8 GB de VRAM |
Substituição do registo GSP-RM falhada ou arranque a frio ignorado. | Faça uma descarga física rigorosa de 60 segundos. Confirme que o gsp_patch.py atualizou corretamente o sh_size durante a instalação. |
| A GPU desaparece do barramento PCIe / throttling térmico | Fluxo de ar insuficiente sobre o dissipador passivo. | Garanta que as ventoinhas de alto CFM do chassis puxam ar diretamente através das alhetas da GPU. O fluxo de ar de uma torre de secretária não chega. |
| Falha do kernel sob carga intensa de LLM | Defeito de silício na pilha HBM2e desbloqueada. | Volte a correr ./install.sh --profile=40gb (ou edite o constants.yaml) para restringir a alocação de VRAM a um valor estável de 32 GB/40 GB. |