You are currently viewing Windows-GPU-UNLOCK: đưa RTX 3090 lên boot thẳng Windows không qua reset

Windows-GPU-UNLOCK: đưa RTX 3090 lên boot thẳng Windows không qua reset

Repo này xử lý một việc rất hẹp nhưng khó chịu: làm sao để card RTX thế hệ Ampere hoạt động trong môi trường UEFI trước khi Windows khởi động, và bàn giao nguyên trạng sang Windows mà không cần reset máy. Nghe thì trừu tượng, nhưng với ai từng thử passthrough GPU hay làm headless workstation thì đây đúng là chỗ đau.

Cụ thể hơn, dự án cung cấp một bộ công cụ build EFI để “unlock” GPU (gỡ RTX GOP, đưa card về trạng thái sạch), rồi chuyển thẳng quyền điều khiển cho Windows Boot Manager trong cùng một lần boot. Có nhiều đường boot khác nhau: internal headless (màn hình cắm vào RTX, màn hình chính tạm gỡ ra), headless qua USB, và các biến thể giữ display của iGPU AMD. Mỗi đường có profile phần cứng riêng, có guide riêng, và có cả quy trình recovery nếu hỏng.

Vì sao 603 sao trong 6 ngày

Repo tạo ngày 20/10/2026, cập nhật ngày 26/10/2026, tức là mới 6 ngày mà đã 603 sao. Con số này không đến từ marketing. Nó đến từ một nhóm người dùng rất cụ thể: dân làm AI workstation, dân homelab, dân muốn dựng máy RTX 3090 headless chạy 24/7 mà không muốn cắm màn hình, và dân nghiên cứu passthrough GPU trên nền tảng consumer.

Điểm khác biệt so với các dự án GPU passthrough khác nằm ở chỗ: đây là port lên UEFI cho RTX 3090 FE, kèm theo bằng chứng benchmark thật (CUDA 12.6, cuBLAS 12.6, ma trận 4096 x 4096, median 3 lần chạy: 22.85 TFLOPS FP32 pedantic, 124.97 TFLOPS FP16 Tensor với FP32 accumulation). Không phải “trust me bro”. Có số.

Thêm nữa, README ghi rõ ranh giới giữa “maintainer test” và “contributor report”. Đây là chi tiết khiến tôi tin repo này hơn nhiều dự án cùng loại. Họ nói thẳng: kết quả thành công áp dụng cho từng card và từng hệ thống cụ thể, không phải cho cả dòng GPU. Có RTX 3060 12GB (GA104/GA106) báo thành công nhưng chỉ headless USB. RTX 3070 Ti 8GB thì internal headless. RTX 3090 FE 24GB là default profile. RTX 3090 Ti 24GB thì chỉ headless USB. RTX 3080 không có profile riêng trong port này, chỉ là target của upstream project.

Cài đặt và chạy thử

Đây không phải kiểu “git clone rồi chạy”. Bạn cần Python 3.9+, clang/lld-link phiên bản 20.1.8, dependencies pin trong repo, và 5 firmware asset tự kiếm. Chưa kể phải có sẵn một ESP FAT32 riêng tối thiểu 1 GiB (ví dụ mount vào U:), tách biệt với ESP hiện tại của Windows. Công cụ không tạo, không shrink, không format partition giúp bạn.

Điều kiện tiên quyết: Secure Boot tắt, Windows C: đã decrypt hoàn toàn, BitLocker protection off, có bàn phím cắm sẵn. Công cụ không tự tắt mã hóa.

Từ PowerShell admin trong thư mục repo:

# Replace the GUID and tool paths with your own values.
.\internal-boot\Configure.ps1 -UnlockDriveLetter U `
 -WindowsEspGuid 'YOUR-WINDOWS-ESP-GUID'
.\research\headless\build-unlock.ps1 `
 -Clang 'C:\TOOLS\LLVM20\bin\clang.exe' `
 -LldLink 'C:\TOOLS\LLVM20\bin\lld-link.exe'

# Stage and append a separate F8 test entry; retain existing boot priority.
.\internal-boot\Headless.ps1 -Assets '.\assets' -Register

Lưu ý là Headless.ps1 -Assets '.\assets' không kèm switch hành động thì chỉ stage file, không đăng ký boot entry. Configure và build cũng không đăng ký gì cả. Bạn phải chủ động chọn bước tiếp theo.

Quy trình test: lưu việc đang làm, tắt máy hoàn toàn. Trên firmware ASUS đã test, chọn F8 → GPU Headless UNLOCK – EXPERIMENTAL. Sau đó ngồi yên, không bấm T, U hay Enter. Nếu bấm Esc trong 5 giây đầu thì quá trình unlock bị skip và máy boot thẳng Windows. Màn hình sẽ đen trong lúc RTX GOP bị gỡ. Child process thử một lần, wrapper khởi động Windows trực tiếp. Không reset giữa chừng.

Chỉ sau khi test F8 thành công mới bật auto boot:

.\internal-boot\Headless.ps1 -EnableAutomatic -ConfirmedSuccess

Lệnh này đặt headless lên đầu, Windows Boot Manager xuống thứ hai, và tắt Windows Fast Startup. Nếu hỏng, quay về Windows bằng:

.\internal-boot\Headless.ps1 -RestoreWindowsFirst

Recovery này độc lập với artifact EFI thử nghiệm, chạy được cả khi không có saved state. Riêng việc khôi phục Fast Startup cũ thì cần saved state, nên giữ backup.

Có một chi tiết dễ bị bỏ qua: hai cửa sổ Esc có ý nghĩa khác nhau. Esc ở wrapper ban đầu thì boot Windows mà không release. Esc trong cửa sổ 3 giây của child, sau khi đã release, thì dừng lại, không khôi phục display và cũng không đi tiếp vào Windows. Đây là loại chi tiết mà nếu không đọc kỹ sẽ ngồi nhìn màn hình đen và tưởng hỏng card.

Ai nên dùng, ai nên tránh

Dùng nếu bạn có một trong các cấu hình được ghi nhận thành công cụ thể: ASUS B650M với RTX 3090 FE, B660M với RTX 3070 Ti, hoặc các cấu hình RTX 3060/3090 Ti chạy headless USB. Dùng nếu bạn cần máy chạy headless không màn hình, vẫn muốn CUDA hoạt động đầy đủ, và chấp nhận rằng mỗi lần đổi BIOS hay đổi card là phải build lại và test lại.

Tránh nếu bạn có X870, B660-PLUS, H610M và muốn dùng Configure.ps1 hay Headless.ps1. README ghi thẳng ba bo mạch này chưa được wire vào hai script đó, phải dùng USB guide. Tránh luôn nếu bạn không có ESP riêng, không muốn tắt BitLocker, hoặc đang chạy máy production không có cửa sổ downtime để recovery.

Và tránh nếu bạn tưởng đây là “cài xong là chạy”. Đây là research port, không phải sản phẩm.

So sánh nhanh

Tôi không tiện so trực tiếp với các dự án passthrough khác vì README không nhắc tên upstream cụ thể, chỉ nói RTX 3080 là “upstream project target”. Cái tôi so được là so với chính nhu cầu: nếu bạn chỉ cần GPU chạy trong VM thì có nhiều đường khác, nhưng nếu bạn cần GPU chạy bare-metal trước Windows, trong UEFI, không reset, thì đây là một trong số ít dự án làm được và có ghi chép benchmark đi kèm. Đó là lý do chính khiến nó đáng đọc.

Ưu, nhược và mấy chỗ cần để ý

Ưu: tài liệu cực kỳ chi tiết về ranh giới tin cậy (maintainer test vs contributor report). Có số đo benchmark thật. Có quy trình recovery rõ ràng, tách biệt khỏi artifact thử nghiệm. License GPL-2.0, thoải mái cho mục đích cá nhân và nghiên cứu. Viết bằng C, ít dependency, dễ audit hơn so với một đống script Python bọc firmware binary.

Nhược: bản release mới nhất v0.3.1 là source-only pre-release, và cây source hiện tại còn thay đổi sau tag đó (USB route, profile X870) chưa publish thành release mới. Nghĩa là bạn đang build từ main, không phải từ tag ổn định. Firmware asset và EFI binary riêng theo partition không được bundle, phải tự kiếm. Phần cứng phải khớp chính xác. Và câu này trong README đáng đọc lại: “later main-branch hardening has host/build checks, not a new physical boot or recovery test”. Tức là các thay đổi sau tag chưa được test boot vật lý lại.

Cần lưu ý: GPL-2.0 có nghĩa nếu bạn phân phối bản build kèm firmware, bạn phải tuân thủ GPL. Đây là repo nghiên cứu, không phải sản phẩm có support. Đừng chạy trên máy có dữ liệu chưa backup. Đừng bật auto boot trước khi test F8 thành công. Và nhớ: kết quả của người khác trên cùng model GPU không đảm bảo kết quả cho bạn, vì phụ thuộc mainboard, BIOS và card cụ thể.

Kết

603 sao trong 6 ngày cho một repo C về UEFI GPU handoff là tín hiệu rõ ràng: có một nhóm người dùng đang rất cần đúng thứ này và không có nhiều lựa chọn. Nếu cấu hình của bạn nằm trong danh sách được ghi nhận, đọc hết guide recovery trước khi gõ lệnh đầu tiên. Nếu không nằm trong danh sách, đừng thử. Repo ở đây: impacifist/Windows-GPU-UNLOCK.

Câu hỏi thường gặp

Windows-GPU-UNLOCK có cần tắt Secure Boot và BitLocker không?

Có. Điều kiện tiên quyết của repo là Secure Boot tắt, Windows C: đã decrypt hoàn toàn và BitLocker protection off, kèm bàn phím cắm sẵn. Công cụ không tự tắt mã hóa, nên bạn phải chủ động xử lý trước khi chạy.

Card nào được ghi nhận chạy thành công với repo này?

Theo README, RTX 3090 FE 24GB là default profile; RTX 3060 12GB (GA104/GA106) báo thành công nhưng chỉ headless USB; RTX 3070 Ti 8GB chạy internal headless; RTX 3090 Ti 24GB chỉ headless USB. RTX 3080 không có profile riêng trong port này, chỉ là target của upstream project.

Làm sao quay về Windows nếu quá trình unlock thất bại?

Chạy .\internal-boot\Headless.ps1 -RestoreWindowsFirst. Recovery này độc lập với artifact EFI thử nghiệm và chạy được cả khi không có saved state; riêng việc khôi phục Fast Startup cũ thì cần saved state nên phải giữ backup.

Chia sẻ bài này

TelegramXFacebookZalo
Đăng ngày 26/10/2026 · Cập nhật 27/10/2026
Giang Na
Về tác giả: Giang Na
Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.

Giang Na

Người lập ra blog từ 2015 với những bài về Blogspot. Giờ tập trung vào cách đưa AI vào việc thường ngày, theo hướng thực dụng và dễ làm theo.