Skip to content

CMP unlock

0xHashRaptor edited this page Aug 14, 2026 · 1 revision

CMP hardware unlock — CMP 50HX and CMP 90HX

TL;DR — put --cmp-install at the end of your flight-sheet line, launch forge once as root, let the rig reboot. Both cards will run at full speed after boot.

CMP 50HX and CMP 90HX ship with a hardware throttle that keeps their hashrate at a small fraction of what the chip can actually do. ForgeMiner v1.5.15 and later can install a hardware-unlock helper directly on the rig — one command, one reboot, both cards then run at full speed (roughly 20× higher than the stock throttled hashrate).


Contents


Requirements

Item Value
OS Linux (HiveOS is the easy path — kernel and driver are prebuilt for it; other distros work if you can install the same kernel + driver)
Kernel 6.10.0-hiveos — exactly this version
NVIDIA driver 610.43.03 — exactly this version
Root Yes. Every --cmp-* subcommand needs root.
Cards affected CMP 50HX (PCI ID 10de:1e09), CMP 90HX (PCI ID 10de:220d)
Cards untouched Every other GPU on a mixed rig runs exactly as before
Disk space ~35 MB for helper modules + backup
Internet at install time Not needed. The helper is embedded in the miner binary.

If your kernel or driver do not match, --cmp-install refuses to proceed and prints exactly what it saw. Do not try to force it — mismatched drivers can leave the rig without a working NVIDIA module until you reinstall.


Installing the required kernel and driver

HiveOS (easiest)

The 6.10.0-hiveos kernel is not in current HiveOS repos — HiveOS moved on to 6.12+. The way to get it is the HiveOS beta image 0.6-229-beta-jammy@241231 (Dec 30 2024), which ships with kernel 6.10.14-hiveos built in. Once the rig is on that image, nvidia-driver-update --force installs the exact driver.

The 610.43.03 driver isn't in nvidia-driver-update's "supported" list anymore either, but the script still downloads it from the NVIDIA site — that's what --force unlocks.

Step-by-step (all commands from the rig's shell — ssh or Hive Shell):

# 1. Check what you have right now
uname -r                                            # target: 6.10.0-hiveos
modinfo -F version nvidia                           # target: 610.43.03

If both already match — skip straight to --cmp-install. Otherwise:

# 2. Reflash the rig to the HiveOS beta image with 6.10.14-hiveos built in.
#
# IMPORTANT: hive-replace reinstalls the OS on the disk. Your rig.conf (farm_hash)
# is preserved automatically, but any locally-installed packages are wiped and the
# flight sheet reapplies from scratch after boot. Do this on a rig you're OK to
# reprovision.
#
sudo hive-replace -y "https://download.hiveos.farm/history/hiveos-0.6-229-beta-jammy@241231.img.xz"
# expected md5: bf1724fbea4999ec7e85367a1f4899eb
# image size:  ~1.06 GB (~10 min download on a fast link)

# The rig reboots automatically when the flash finishes.

After boot the rig is on kernel 6.10.14-hiveos and driver 550.142 (whatever ships in that image). Now upgrade the driver to the exact 610.43.03:

# 3. Install the exact required driver.
#    --force lets nvidia-driver-update pull a version that isn't in its "supported"
#    list; it still downloads the .run from download.nvidia.com.
sudo nvidia-driver-update --force 610.43.03
sudo reboot

# 4. Confirm after boot
uname -r                                            # → 6.10.0-hiveos
modinfo -F version nvidia                           # → 610.43.03

That's it — you're on the exact combination the unlock helper needs. Now sudo forge --cmp-install.

If HiveOS ever removes that image from download.hiveos.farm/history/, ping us in Telegram or Discord and we'll host a mirror.

Other Linux distributions (Ubuntu, Debian, …)

The same unlock helper works on any Linux with kernel 6.10.0-hiveos and driver 610.43.03, but you have to bring both yourself:

  • Kernel 6.10.0-hiveos — this is a HiveOS-branded build. The easiest path is to reuse HiveOS's kernel package for your distribution (see apt-cache search linux-image-6.10.0-hiveos on a HiveOS host to find the exact package name, or dpkg -l | grep hiveos), install it, and add it to GRUB.
  • NVIDIA driver 610.43.03 — use the nvidia-open 610 branch. The corresponding source tarball / .deb packages are on the NVIDIA site under "unified driver 610.43.03". DKMS will rebuild the module against the 6.10.0-hiveos headers when both are installed.

This is not a supported path — if you can install the same kernel + driver pair, the unlock helper installs and runs identically to HiveOS; if any version drifts, --cmp-install will refuse. When in doubt, install HiveOS on a spare USB drive and use that — it is a free flashable image.


Command overview

Command What it does Reboots?
sudo forge --cmp-install install unlock helper, then reboot the rig ✓ (10-second cancel window)
sudo forge --cmp-install --no-reboot install only; you reboot the rig ✗ (exit 42 = reboot required)
sudo forge --cmp-verify print live unlock status per detected CMP card
sudo forge --cmp-rollback restore the previous NVIDIA driver from backup, then reboot ✓ (10-second cancel window)
sudo forge --cmp-rollback --no-reboot rollback only; you reboot ✗ (exit 42)

Any of these can be combined with the normal mining flags — --cmp-install is safe to leave on the flight-sheet command line permanently.


Recommended: put it in the flight sheet

The intended workflow is to leave --cmp-install at the end of the flight-sheet command line and forget about it. Forge decides per-boot whether anything needs doing:

  1. First run on a fresh rig. Forge sees the cards are throttled → installs the helper → reboots (10-second cancel window) → HiveOS restarts forge after boot → the cards are now unlocked → mining begins.
  2. Every subsequent restart. Forge sees the helper is already installed → prints one line ("CMP hardware unlock already in place ... Proceeding to mining.") → drops straight into mining. No reinstall, no reboot loop.

In HiveOS Extra config:

--cmp-install

Ready-made flight sheets on forgeminer.org/#flightsheets already include it.


Ad-hoc use from a terminal

If you prefer to do it manually (say, to test rollback / re-install once) — stop the currently-running miner first so two forge processes don't fight over the cards, then run:

# 1. Stop the flight-sheet miner
miner stop

# 2. Verify what the cards look like right now
sudo forge --cmp-verify

# 3. Install the unlock (10-second cancel window, then automatic reboot)
sudo forge --cmp-install

# After the rig comes back up:
sudo forge --cmp-verify         # confirm status
miner start                     # restart the flight-sheet miner

Substitute your own forge path if the binary is not in $PATH, e.g. sudo /home/user/forge.


What each subcommand does

--cmp-install

  1. Checks the environment (kernel = 6.10.0-hiveos, driver = 610.43.03). Refuses to proceed on any other combination.
  2. Detects CMP 50HX / 90HX on the PCI bus. Refuses if none are found.
  3. Fast path — if the unlock is already active, prints one line and returns to normal mining. No reinstall.
  4. Otherwise: extracts the embedded helper bundle into a private temp directory (mode 0700), verifies its sha256 checksums, backs up the currently-loaded NVIDIA driver, installs the helper, regenerates initramfs, cleans up the temp directory.
  5. Prints a 10-second countdown, then reboots the rig via systemctl reboot. Ctrl+C during the countdown cancels the reboot.

After boot, the helper loads automatically via a depmod.d override. The next forge run sees both cards unlocked.

--cmp-install --no-reboot

Same as above but skips the countdown and reboot. Forge exits with code 42 ("reboot required" per dpkg / needrestart convention). Reboot the rig yourself when convenient.

--cmp-verify

Reads the unlock status register of every detected CMP card and prints one line per card.

Possible per-card lines:

[OK] CMP 90HX @ 02:00.0  unlocked
[i ] CMP 50HX @ 05:00.0  status not observable on this SKU — check the miner TUI hashrate for live unlock state
[!!] CMP 90HX @ 02:00.0  throttled (stock default)
[??] CMP 50HX @ 05:00.0  status indeterminate — retry with the miner running
[!!] CMP 90HX @ 02:00.0  device status unreadable (needs root)

Important: CMP 50HX always prints the [i ] status not observable line even when it is unlocked and mining at full speed. The NVIDIA driver walls off the relevant register on the 50HX PCI ID — there is no way to read the flag from userspace on this SKU. The only live source of truth for CMP 50HX is the miner's per-card hashrate: the unlocked hashrate is roughly 20× higher than the stock throttled hashrate. For 90HX and 170HX the register reads correctly.

--cmp-rollback

Undoes the install: removes the helper modules and the depmod.d override, restores the previously-installed NVIDIA driver from /root/forge-cmp-backup/, regenerates initramfs, then reboots (10-second cancel window). After boot both CMP cards return to the throttled stock state.

Add --no-reboot to skip the reboot and exit with code 42.


Exit codes

Code Meaning
0 Success — includes the fast-path case ("already unlocked, dropped into mining")
1 --cmp-verify found at least one card definitively throttled
2 Not running as root
3 Environment mismatch (wrong kernel or wrong NVIDIA driver)
4 No CMP 50HX / 90HX detected on the bus
5 Failed to extract the embedded helper bundle
6 Installer / rollback script returned an error
42 Operation succeeded, reboot required (either --no-reboot was passed or auto-reboot failed)

What actually happens on disk

  • Helper modules installed to /lib/modules/6.10.0-hiveos/updates/forge-cmp/
  • depmod.d override written to /etc/depmod.d/forge-cmp.conf
  • Previously-installed NVIDIA driver backed up under /root/forge-cmp-backup/<timestamp>/
  • /root/forge-cmp-backup/latest.txt points at the newest backup — this is what rollback restores from
  • initramfs regenerated for kernel 6.10.0-hiveos
  • Temp extract directory (/tmp/forge-cmp-<pid>-<rand>/, mode 0700) removed as soon as the operation ends

Nothing else on the system is touched.


Verifying it worked

Fastest check — look at the per-card hashrate in the forge TUI (or the HiveOS worker page). The unlocked hashrate is roughly 20× higher than the stock throttled hashrate on the same card and pool. If a CMP card comes up at what looks like the stock throttled number after a reboot, the helper did not load.

Register check (90HX only)sudo forge --cmp-verify should show [OK] CMP 90HX @ ... unlocked. On 50HX this register is not readable from userspace, so the tool prints an informational line — see the note in the --cmp-verify section above.

Persistence check — after any subsequent reboot, sudo modinfo -n nvidia should still resolve to /lib/modules/6.10.0-hiveos/updates/forge-cmp/nvidia.ko. The depmod.d override makes this survive reboots automatically.


Rollback

To return the rig to stock:

sudo forge --cmp-rollback        # auto-reboot after 10-second countdown
# or
sudo forge --cmp-rollback --no-reboot
sudo reboot                      # when you're ready

After boot both CMP cards are back at the throttled stock hashrate. The backup at /root/forge-cmp-backup/ stays on disk so you can re-install later without needing the original assets.

To re-install after a rollback, just run sudo forge --cmp-install again.


FAQ / troubleshooting

environment mismatch — CMP unlock bundle only supports: kernel = 6.10.0-hiveos (have ...)
You're on a different kernel or a different NVIDIA driver. The helper is signed against the exact combination above. Follow Installing the required kernel and driver and try again.

no CMP 50HX or CMP 90HX detected on this rig
lspci -nn | grep -iE '10de:(1e09|220d)' should list at least one card. If it doesn't, the rig has neither. Nothing for forge to unlock.

must run as root
Prefix the command with sudo. On HiveOS the user account has passwordless sudo by default.

--cmp-verify prints [i ] status not observable for my 50HX but the card is definitely mining slow
The 50HX's status register is always walled off by the driver, whether the card is unlocked or throttled — you can't tell from --cmp-verify alone. Compare the card's live hashrate against a mining calculator for that pool; if it's stuck at the throttled figure, run sudo forge --cmp-install and reboot.

The 90HX shows unlocked but the 50HX still runs at the throttled hashrate
The helper is a single module that handles both cards; when it loads, both cards get the treatment. If 90HX is unlocked but 50HX isn't, the module didn't load for the 50HX at boot — check sudo modinfo -n nvidia (should point at updates/forge-cmp/) and reboot again.

After the reboot the flight-sheet miner starts but hashrate is still at the throttled figure on both CMP cards
The composite module didn't load — usually because a stale nvidia.ko from a manual DKMS build is winning the depmod race. Check sudo modinfo -n nvidia — it should end in updates/forge-cmp/nvidia.ko. If it points somewhere else, run sudo forge --cmp-install again (the installer will fail loud if depmod still resolves to the wrong path).

I want to keep the rig on the helper across kernel updates
Don't kernel-update this rig. The helper is signed against 6.10.0-hiveos — a newer kernel from HiveOS will not have a compatible helper build. hive-replace to another image is fine after --cmp-rollback + reboot.

Can I set persistence mode / OC / power limit as usual?
Yes. The helper only affects the throttle flag. All normal HiveOS controls (autofan, --cclk / --coff / --mclk / --moff / --plimit, nvidia-oc) work the same on the unlocked cards.

Will this brick my card?
No. The helper doesn't touch VBIOS or flash any firmware — it's a runtime kernel-side module that gates the throttle differently. Every operation is reversible via --cmp-rollback + reboot back to the stock DKMS driver.

Can I run it on a card I bought new / at retail?
Yes. There's no "was this card modded before" state — the helper works on any CMP 50HX / 90HX regardless of history.

Is anything written to the card's ROM / VBIOS?
No. Nothing is flashed. --cmp-rollback + reboot returns the driver stack to the pre-install state.

Clone this wiki locally