Repository navigation
Releases: xrip/cmp50hx-unlock
Release list
CMP 50HX unlock v1.1.22
One-click installer for the CMP 50HX (TU102, 10de:1e09):
Linux — download cmp50hx-unlock-linux.run, then:
chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.runWindows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install
Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on. Secure Boot can stay on: sign the EFI
with your key and enroll its signer in firmware db; see the
Secure Boot section in the included README. Linux kernel module
signing is separate from signing the EFI application.
CMP 50HX unlock v1.1.21
One-click installer for the CMP 50HX (TU102, 10de:1e09):
Linux — download cmp50hx-unlock-linux.run, then:
chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.runWindows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install
Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x over the
locked stock driver, zero Xid). Requires UEFI boot with Above 4G Decoding
on and Secure Boot off.
Changes since v1.1.20 (Windows Gen2, tool v3.1.3)
Follow-up to the issue #48 field report — two Stage2 bugs the reporter
diagnosed precisely:
- False
gate OPEN 0 ms: a lost device reads0xFFFFFFFFat every
BAR0 offset, so the post-restart poll mistook a gone GPU for an open
XP3G gate. It now waits forBOOT_0to be a real value before trusting
0x8E1B0, and logs device back / gate closed distinctly. pnputilfallback never ran: the WMI PnP script printedPnP-OK
even when Disable/Enable-PnpDevice threw non-terminating0x80041001,
so the more robustpnputil /restart-devicewas skipped. The WMI path
now uses-ErrorAction Stop+ try/catch and only reports success when
it truly succeeded.
The -gen2 -hard log is now honest about whether the device recovers and
whether the gate ever opens on Windows — run it and post the log.
CMP 50HX unlock v1.1.20
One-click installer for the CMP 50HX (TU102, 10de:1e09):
Linux — download cmp50hx-unlock-linux.run, then:
chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.runWindows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install
Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.
Changes since v1.1.19
- Boot hang on Linux/GRUB hosts fixed (issue #25, X299/Debian 12):
the unlock succeeded, then the firmware hung on the first
SimpleFileSystem call of the chainload fallback. That fallback is now
gone entirely — the whole flow (loader preload, FAT16/FAT32
parsing, handover) runs on BlockIo only; if no loader is preloaded,
the app returns to firmware and BDS continues BootOrder without a
POST, preserving the unlock. - The loader ladder gains
\EFI\debian\{shimx64,grubx64}.efi, and after
a ladder miss the ESP is walked recursively, matching loaders by
file name — prioritybootmgfw.efi→shimx64.efi→grubx64.efi
→systemd-bootx64.efi→bootx64.efi(Windows first, then Linux;
any distro, no more hardcoded\EFI\<distro>paths). Own binary is
skipped by size (issue #36 stays fixed). - Diagnostics:
BootOrdercollection now prints how many entries were
readable/active/collected — on the #25 host zero paths came out of
NVRAM with no error; the next log names the culprit.
Not related to the recent Gen2 changes: the unlock completed before the
hang; the [gen2] probe line is a read-only diagnostic.
CMP 50HX unlock v1.1.19
One-click installer for the CMP 50HX (TU102, 10de:1e09):
Linux — download cmp50hx-unlock-linux.run, then:
chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.runWindows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install
Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.
Changes since v1.1.18
Follow-up to the issue #48 field report (tool v3.1.2):
- read-back verify fixed — RMW fields whose set-bits overlap the
clear-mask (LINK_CONFIG_0 bit19, PL_LINK_RATE bit18) were flagged
[warn]even on perfect read-backs; fields are now compared against
the computed value (reporter's suggestion — thanks!) - Stage2 ordering fixed — the policy + TLS targets are now written
before the Root Link Disable; with the link down every BAR0 read is
0xffffffff, so the old during-disable writes were noise - policy writes to a lost/down device are skipped with a single
BAR0 unreachableline instead of[warn]spam - PnP restore falls back to
pnputil /restart-devicewhen the WMI
cmdlets fail withHRESULT 0x80041001on a lost device - after the PnP restart the tool fast-polls the XP3G gate (
0x8E1B0)
for 10 s — the GPU re-initializes (GSP reboots) and that is the
window where the Linux service catches the gate open; the log now
shows whether it ever opens on Windows
If Gen2 still does not come up, post the full -gen2 -hard log —
the gate trace answers where the blocker is.
CMP 50HX unlock v1.1.18
One-click installer for the CMP 50HX (TU102, 10de:1e09):
Linux — download cmp50hx-unlock-linux.run, then:
chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.runWindows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install
Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.
Changes since v1.1.17
- Windows Gen2 rework (tool v3.1.1, issue #48): the
-gen2path now
waits for the XP3G privilege gate (BAR0+0x8E1B0 = 0xFFFFFFFF) before
writing the policy, skips the one-shot LTSSM kick when a field fails
read-back (a kick on an unlatched policy burns the adoption for the
whole power cycle), and — when adoption still fails — actually runs the
Stage 2 fallback (Root Link Disable with PL0+TLS held + PnP restore)
with-hardor the defaultGen2AutoHard, instead of returning early.
Read-back verification of the policy registers is also fixed: good
writes no longer print[warn], so logs show the real failures. - Gen2 troubleshooting table added to
efi-unlock-windows/README.md
(log line → meaning → action). - If Gen2 does not come up: run
50HXInstaller.exe -gen2 -hardand post
the full output — the log now pinpoints whether the gate, the policy
writes, or the retrain is the blocker.
CMP 50HX unlock v1.1.17
chainload fix: the OS loader is found again — the pre-unlock BlockIo preload lost its call site in a refactor, so every boot since then fell into the SimpleFileSystem path that hangs on AMI firmwares. The loader is now also taken from the firmware BootOrder entries, FAT16 ESPs work, and our own boot volume is probed first.
One-click installer for the CMP 50HX (TU102, 10de:1e09):
Linux — download cmp50hx-unlock-linux.run, then:
chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.runWindows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install
Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.
CMP 50HX unlock v1.1.16
One-click installer for the CMP 50HX (TU102, 10de:1e09):
Linux — download cmp50hx-unlock-linux.run, then:
chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.runWindows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install
Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.
CMP 50HX unlock v1.1.15
One-click installer for the CMP 50HX (TU102, 10de:1e09):
Linux — download cmp50hx-unlock-linux.run, then:
chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.runWindows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install
Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.
CMP 50HX unlock v1.1.14
One-click installer for the CMP 50HX (TU102, 10de:1e09):
Linux — download cmp50hx-unlock-linux.run, then:
chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.runWindows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install
Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.
CMP 50HX unlock v1.1.13
Experimental ReBAR activation support!
One-click installer for the CMP 50HX (TU102, 10de:1e09):
Linux — download cmp50hx-unlock-linux.run, then:
chmod +x cmp50hx-unlock-linux.run
sudo ./cmp50hx-unlock-linux.runWindows — download cmp50hx-unlock-windows.zip, unzip, then:
right-click 50HXInstaller.exe → Run as administrator → Install
Both ship the same UEFI compute unlock (FP32 31.7x / DP4A 28.4x
over the locked stock driver, zero Xid; A/B matrix:
efi-unlock/runs/20260910-ab-stock-vs-efi.md). Requires UEFI boot
with Above 4G Decoding on and Secure Boot off.