Kernel parameters and module options
More actions
Reference for every kernel command-line and nvidia module option that appears in the unlock work. The
modprobe lines usually live in /etc/modprobe.d/cmp-pcie-gen2.conf (or -gen3), written by the
installer; kernel-cmdline options go in GRUB or /etc/kernel/cmdline.
Kernel command line
| Option | What it does | Source |
|---|---|---|
iomem=relaxed |
Required for 170hx-rir-tool to read BAR0 fuse registers at all; also needed on EndeavourOS-type distros. | Source: @lycorascence, 2026-10-20 |
intel_iommu=on / amd_iommu=on plus iommu=pt |
IOMMU in passthrough mode; appended by the cmpunlocker installer by default (backs up the boot file). Must also enable VT-d / AMD-Vi in BIOS. | cmpunlocker install.sh |
systemd.mask=gen2.service |
Recovery boot option: skip the early-boot Gen2 link retrain hammer if it misbehaves. | cmpunlocker install output |
NVreg_EnableGpuFirmware=0 (as nvidia.NVreg_EnableGpuFirmware=0) |
Disable GSP; with a dual-stack driver the unlock survives a proprietary-driver reload with no GSP panics. Needs the closed/CPU-RM driver. See VBIOS and firmware. | Source: @zarknoth, 2026-10-27 |
LTS kernel plus the oldest cmpunlocker-supported driver avoids CONFIG_IO_DEVMEM_STRICT blocking the RIR
tool. Source: @lycorascence, 2026-10-23
nvidia module options (NVreg_RegistryDwords)
Warning These registry dwords are global: they affect every NVIDIA GPU in the host. Do not use the Gen2/P2P lines on a mixed rig (e.g. with an RTX 4080), or you force that card to Gen2 too. Source: @ybryany, 2026-10-14
| Key | Meaning | Where it comes from |
|---|---|---|
RmForceEnableGen2=1 |
The dword that enables PCIe Gen2 on the 170HX. The one that matters for Gen2. | cmpunlocker cmp-pcie-gen2.conf
|
RMPcieLinkSpeed=0x1 |
Gen2 link-speed bitfield (not "gen 1"). Shipped in the Gen2 conf. | cmpunlocker |
RMPcieLinkSpeed=0x5 |
Gen3 link-speed bitfield used by the 10 GB Gen3 patch (not "gen 5"). | lixiangwuxian/170hx_tips |
CmpGen3=1 |
Custom registry key read by the Gen3 patch; does nothing on a stock driver. | lixiangwuxian/170hx_tips |
ForceP2P=0x11 |
Arms the mailbox P2P trap (Morrowmake fork / ropuls gist). | Source: @68x0, 2026-10-13 |
RMForceStaticBar1=1 |
Static BAR1 (ropuls gist, with the P2P set). | ropuls gist |
RMPcieP2PType=1;RMForceP2PType=1 |
Force the P2P type (ropuls gist). | ropuls gist |
Two full lines in use:
# cmpunlocker Gen2 (both cards)
options nvidia NVreg_RegistryDwords="RmForceEnableGen2=1;RMPcieLinkSpeed=0x1"
# Morrowmake P2P fork
options nvidia NVreg_RegistryDwords="RmForceEnableGen2=1;RMPcieLinkSpeed=0x1;ForceP2P=0x11"
# 10 GB Gen3 (lixiangwuxian/170hx_tips), with the patched module
options nvidia NVreg_RegistryDwords="RmForceEnableGen2=1;RMPcieLinkSpeed=0x5;CmpGen3=1" cmp_fuse_gen3=0
# ropuls gist (GLOBAL, 170HX-only rigs; forces all GPUs to Gen2)
options nvidia NVreg_RegistryDwords="RmForceEnableGen2=1;RMPcieLinkSpeed=0x1;RMForceStaticBar1=1;RMPcieP2PType=1;RMForceP2PType=1;ForceP2P=0x11"
Patched-module parameters (not stock)
These only exist on a patched nvidia module; check with
modinfo -p nvidia | grep -E 'cmp_fuse|CmpGen3'. Adding them to a stock driver does nothing.
| Parameter | Meaning |
|---|---|
cmp_fuse_gen3=0 |
Clear the Gen3-disabled fuse state at probe (10 GB Gen3). Set only this for Gen3; do not add cmp_fuse_gpc=0, cmp_fuse_tpc*=0 or cmp_fuse_flr=1.
|
cmp_fuse_bdf=0000:03:00.0 |
Restrict the fuse override to one card. |
asm64 fork installer flags (compile-time)
--mclk-ndiv=N (HBM clock = N x 27 MHz, baked into the module), --mclk-timings=N (-50..+50 %),
--p2p, --no-gen2, --no-iommu, --no-persist. Warning
A baked --mclk-ndiv makes 170tune refuse to tune; --mclk-timings tCCD_L=3
hard-hangs the controller (reboot to recover). See cmpunlocker forks and Cooling and power.