Offline editor for NVIDIA Blackwell (GB20x) VBIOS images, for Linux and Windows, with a GTK editor window and a JSON command line. It edits power limits, voltage ceilings, clock offset ranges, 12 V input current and output OCP limits, fan PWM frequency and fan channels. Ada (AD10x) images get power limits, clock offset ranges, slot power, fans and, where they apply, voltage ceilings (experimental). Ampere (GA10x) images get power limits, power connector channels, clock offset ranges, slot power and fans (experimental).
Not affiliated with, endorsed by or sponsored by NVIDIA Corporation. NVIDIA and GeForce are trademarks of NVIDIA Corporation.
[!CAUTION] You use this software entirely at your own risk. Any modification you make with it, anything derived from it or from its output, and any damage that results, is solely your responsibility. See Read before using an edited image.
From the Releases page:
| File | Contents |
|---|---|
nvidia-vbios-vix-editor-<version>-linux-x86_64.tar.gz | Linux: editor window (nvbios-gui) and command line (nvbios) |
nvbios-<version>-linux-x86_64 | Linux: command line only, one file |
nvbios-gui.exe | Windows: editor window, one file with its own GTK 4 |
nvbios.exe | Windows: command line, one file |
SHA256SUMS | checksums: sha256sum -c SHA256SUMS, or Get-FileHash FILE in PowerShell |
Windows: Windows 10 or 11, x86_64. Nothing else; nvbios-gui.exe carries its own GTK 4.
Linux:
sudo apt install libgtk-4-1 libgirepository-1.0-1sudo dnf install gtk4 gobject-introspectionsudo pacman -S gtk4 gobject-introspection-runtimeThe editor does not include any VBIOS. You provide the image of your own card, for example:
nvflash --save card.rom (reading only; never write an edited image with
nvflash).Keep the original file: the editor never modifies it and always saves a new copy.
Linux:
tar xf nvidia-vbios-vix-editor-<version>-linux-x86_64.tar.gz
cd nvidia-vbios-vix-editor-<version>
./nvbios-gui # editor window (English)
./nvbios-gui --lang es card.rom # Spanish, with a ROM
./nvbios fields card.rom # JSON list of the fields
./nvbios edit card.rom out.rom --set power_max_w=700
Windows: double-click nvbios-gui.exe. The first start unpacks its GTK runtime to
%LOCALAPPDATA%\NVIDIA VBIOS Vix Editor (a few seconds); later starts reuse it. From a
terminal:
.\nvbios-gui.exe --lang es card.rom
.\nvbios.exe fields card.rom
.\nvbios.exe edit card.rom out.rom --set power_max_w=700
The programs are not code-signed, so Windows SmartScreen may warn the first time: choose More info, then Run anyway.
The editor window verifies each change while you type and saves a new ROM plus a JSON
manifest. The original file is never modified. On Windows it follows the light or dark app
mode; File options > Theme (or --theme light / --theme dark) changes it.
Shunt multiplier (x): on a shunt-modded card, type the shunt factor (for example 2) and the board power, PCIe slot and 12 V input current rows also show about the real limit, the value times the factor. It is display only: the saved ROM keeps the values in the fields. It assumes the same factor on every 12 V input shunt; NVVDD/MSVDD output current limits are measured by the VRM and are not scaled.
The compiled application isolates import search paths and disables site imports.
CPython still reads some startup variables before the application's recovery code
runs. Invalid PYTHONMALLOC or PYTHONHASHSEED values can therefore stop startup.
If those variables are set by another Python environment, launch with:
env -u PYTHONMALLOC -u PYTHONDEVMODE -u PYTHONHASHSEED ./nvbios --version
env -u PYTHONMALLOC -u PYTHONDEVMODE -u PYTHONHASHSEED ./nvbios-gui
![]() RTX 5090 (GB202): changes verified while typing | ![]() RTX 5080 (GB203): image just opened | ![]() RTX 5070 (GB205): single rail, current in A, fans |
<name>-loader.bin. From the command line:
nvbios normalize edited.rom payload.bin --representation ada-relocated-v2 (Ada desktop and
workstation) or --representation ampere-relocated-v1 (Ampere GA102–GA107). Both are experimental;
so far they have been loaded on an RTX 4090 and an RTX A2000.Python 3.11 or newer. The command line uses only the standard library; the editor window also needs PyGObject with GTK 4.10 or newer:
sudo apt install python3-gi gir1.2-gtk-4.0sudo dnf install python3-gobject gtk4sudo pacman -S python-gobject gtk4pacman -S mingw-w64-ucrt-x86_64-python mingw-w64-ucrt-x86_64-python-gobject mingw-w64-ucrt-x86_64-gtk4git clone https://github.com/Panchovix/nvidia-vbios-vix-editor
cd nvidia-vbios-vix-editor
./nvbios fields card.rom # Windows (MSYS2): python nvbios fields card.rom
./nvbios edit card.rom out.rom --set power_max_w=700 --dry-run
./nvbios gui --lang es card.rom
inspect, fields, verify, edit and normalize print one JSON document,
{"ok": true, "result": ...}, or {"ok": false, "error": {...}} with exit status 2. On Windows,
start the window with GSK_RENDERER=cairo python nvbios gui: GTK's OpenGL renderer aborts on some
NVIDIA desktops, and the release programs choose cairo for the same reason. Over SSH the window
uses its built-in file picker; see docs/gui.md.
To install it, give it a virtual environment of its own. The Linux loader installs the same
nvidia_vbios package and nvbios command, so the two cannot share one:
python3 -m venv --system-site-packages .venv # the system site-packages provide PyGObject
.venv/bin/pip install .
.venv/bin/nvbios --version
.venv/bin/nvbios-editor --lang es
The tests build small synthetic ROM structures; no VBIOS image is needed:
PYTHONPATH=src python3 -m unittest discover -s tests
The GTK window test is opt-in; see docs/gui.md. More documentation: docs/editor-api.md
(formats, editor API and limitations), docs/extended-fields.md (voltage, OCP, memory and fan
fields) and docs/gui.md (the window; in Spanish, docs/gui_es.md).
The release programs are compiled with Nuitka from this tree by the scripts in tools/release/.
Their version is __version__ in src/nvidia_vbios/__init__.py.
tools/release/build.sh X.Y.Z. It builds in an
Ubuntu 24.04 container (the oldest supported glibc and GTK), runs the tests first, and writes
the archive, the one-file nvbios and SHA256SUMS to dist/release-X.Y.Z/..github/workflows/windows.yml) builds
nvbios-gui.exe, nvbios.exe and their third-party notices as a workflow artifact. Only the
repository owner starts it, with Run workflow or by pushing a vX.Y.Z tag that matches the
version. To build locally: an MSYS2 UCRT64 shell with the packages that workflow installs,
Nuitka 4.2.2 and Zig 0.16.0 on PATH, then VERSION=X.Y.Z tools/release/build-windows.sh
(output in dist-windows/).Issues and pull requests are welcome. Run the tests before you open a pull request. The maintainers port accepted changes into the project themselves, so a merged change can land as a different commit from your branch. Contributions are licensed under GPL-3.0-or-later, like the rest of the project.
Pull requests, forks included, run the unit tests on Linux (.github/workflows/tests.yml).
Thanks to @pantsoftime (overclock.net), whose original GB202 VBIOS
editor and vbios_override patch this project builds on. Thanks also to @b00nza.
Copyright (C) 2026 panchovix. GNU General Public License v3.0 or later (GPL-3.0-or-later), see
LICENSE: you can use, study, change and share it, and changed versions you share must stay
under the same license. There is no warranty, to the extent permitted by law.
The source code is at https://github.com/Panchovix/nvidia-vbios-vix-editor; the tag v<version> matches
each release. The binaries also contain third-party components under their own licenses: see
THIRD_PARTY_NOTICES.md, which also says where to get their source code. Binary releases up to 0.1.13 were
distributed under a freeware license agreement.
Offline editor for NVIDIA Blackwell (GB20x) VBIOS images, for Linux and Windows, with a GTK editor window and a JSON command line. It edits power limits, voltage ceilings, clock offset ranges, 12 V input current and output OCP limits, fan PWM frequency and fan channels. Ada (AD10x) images get power limits, clock offset ranges, slot power, fans and, where they apply, voltage ceilings (experimental). Ampere (GA10x) images get power limits, power connector channels, clock offset ranges, slot power and fans (experimental).
Not affiliated with, endorsed by or sponsored by NVIDIA Corporation. NVIDIA and GeForce are trademarks of NVIDIA Corporation.
[!CAUTION] You use this software entirely at your own risk. Any modification you make with it, anything derived from it or from its output, and any damage that results, is solely your responsibility. See Read before using an edited image.
From the Releases page:
| File | Contents |
|---|---|
nvidia-vbios-vix-editor-<version>-linux-x86_64.tar.gz | Linux: editor window (nvbios-gui) and command line (nvbios) |
nvbios-<version>-linux-x86_64 | Linux: command line only, one file |
nvbios-gui.exe | Windows: editor window, one file with its own GTK 4 |
nvbios.exe | Windows: command line, one file |
SHA256SUMS | checksums: sha256sum -c SHA256SUMS, or Get-FileHash FILE in PowerShell |
Windows: Windows 10 or 11, x86_64. Nothing else; nvbios-gui.exe carries its own GTK 4.
Linux:
sudo apt install libgtk-4-1 libgirepository-1.0-1sudo dnf install gtk4 gobject-introspectionsudo pacman -S gtk4 gobject-introspection-runtimeThe editor does not include any VBIOS. You provide the image of your own card, for example:
nvflash --save card.rom (reading only; never write an edited image with
nvflash).Keep the original file: the editor never modifies it and always saves a new copy.
Linux:
tar xf nvidia-vbios-vix-editor-<version>-linux-x86_64.tar.gz
cd nvidia-vbios-vix-editor-<version>
./nvbios-gui # editor window (English)
./nvbios-gui --lang es card.rom # Spanish, with a ROM
./nvbios fields card.rom # JSON list of the fields
./nvbios edit card.rom out.rom --set power_max_w=700
Windows: double-click nvbios-gui.exe. The first start unpacks its GTK runtime to
%LOCALAPPDATA%\NVIDIA VBIOS Vix Editor (a few seconds); later starts reuse it. From a
terminal:
.\nvbios-gui.exe --lang es card.rom
.\nvbios.exe fields card.rom
.\nvbios.exe edit card.rom out.rom --set power_max_w=700
The programs are not code-signed, so Windows SmartScreen may warn the first time: choose More info, then Run anyway.
The editor window verifies each change while you type and saves a new ROM plus a JSON
manifest. The original file is never modified. On Windows it follows the light or dark app
mode; File options > Theme (or --theme light / --theme dark) changes it.
Shunt multiplier (x): on a shunt-modded card, type the shunt factor (for example 2) and the board power, PCIe slot and 12 V input current rows also show about the real limit, the value times the factor. It is display only: the saved ROM keeps the values in the fields. It assumes the same factor on every 12 V input shunt; NVVDD/MSVDD output current limits are measured by the VRM and are not scaled.
The compiled application isolates import search paths and disables site imports.
CPython still reads some startup variables before the application's recovery code
runs. Invalid PYTHONMALLOC or PYTHONHASHSEED values can therefore stop startup.
If those variables are set by another Python environment, launch with:
env -u PYTHONMALLOC -u PYTHONDEVMODE -u PYTHONHASHSEED ./nvbios --version
env -u PYTHONMALLOC -u PYTHONDEVMODE -u PYTHONHASHSEED ./nvbios-gui
![]() RTX 5090 (GB202): changes verified while typing | ![]() RTX 5080 (GB203): image just opened | ![]() RTX 5070 (GB205): single rail, current in A, fans |
<name>-loader.bin. From the command line:
nvbios normalize edited.rom payload.bin --representation ada-relocated-v2 (Ada desktop and
workstation) or --representation ampere-relocated-v1 (Ampere GA102–GA107). Both are experimental;
so far they have been loaded on an RTX 4090 and an RTX A2000.Python 3.11 or newer. The command line uses only the standard library; the editor window also needs PyGObject with GTK 4.10 or newer:
sudo apt install python3-gi gir1.2-gtk-4.0sudo dnf install python3-gobject gtk4sudo pacman -S python-gobject gtk4pacman -S mingw-w64-ucrt-x86_64-python mingw-w64-ucrt-x86_64-python-gobject mingw-w64-ucrt-x86_64-gtk4git clone https://github.com/Panchovix/nvidia-vbios-vix-editor
cd nvidia-vbios-vix-editor
./nvbios fields card.rom # Windows (MSYS2): python nvbios fields card.rom
./nvbios edit card.rom out.rom --set power_max_w=700 --dry-run
./nvbios gui --lang es card.rom
inspect, fields, verify, edit and normalize print one JSON document,
{"ok": true, "result": ...}, or {"ok": false, "error": {...}} with exit status 2. On Windows,
start the window with GSK_RENDERER=cairo python nvbios gui: GTK's OpenGL renderer aborts on some
NVIDIA desktops, and the release programs choose cairo for the same reason. Over SSH the window
uses its built-in file picker; see docs/gui.md.
To install it, give it a virtual environment of its own. The Linux loader installs the same
nvidia_vbios package and nvbios command, so the two cannot share one:
python3 -m venv --system-site-packages .venv # the system site-packages provide PyGObject
.venv/bin/pip install .
.venv/bin/nvbios --version
.venv/bin/nvbios-editor --lang es
The tests build small synthetic ROM structures; no VBIOS image is needed:
PYTHONPATH=src python3 -m unittest discover -s tests
The GTK window test is opt-in; see docs/gui.md. More documentation: docs/editor-api.md
(formats, editor API and limitations), docs/extended-fields.md (voltage, OCP, memory and fan
fields) and docs/gui.md (the window; in Spanish, docs/gui_es.md).
The release programs are compiled with Nuitka from this tree by the scripts in tools/release/.
Their version is __version__ in src/nvidia_vbios/__init__.py.
tools/release/build.sh X.Y.Z. It builds in an
Ubuntu 24.04 container (the oldest supported glibc and GTK), runs the tests first, and writes
the archive, the one-file nvbios and SHA256SUMS to dist/release-X.Y.Z/..github/workflows/windows.yml) builds
nvbios-gui.exe, nvbios.exe and their third-party notices as a workflow artifact. Only the
repository owner starts it, with Run workflow or by pushing a vX.Y.Z tag that matches the
version. To build locally: an MSYS2 UCRT64 shell with the packages that workflow installs,
Nuitka 4.2.2 and Zig 0.16.0 on PATH, then VERSION=X.Y.Z tools/release/build-windows.sh
(output in dist-windows/).Issues and pull requests are welcome. Run the tests before you open a pull request. The maintainers port accepted changes into the project themselves, so a merged change can land as a different commit from your branch. Contributions are licensed under GPL-3.0-or-later, like the rest of the project.
Pull requests, forks included, run the unit tests on Linux (.github/workflows/tests.yml).
Thanks to @pantsoftime (overclock.net), whose original GB202 VBIOS
editor and vbios_override patch this project builds on. Thanks also to @b00nza.
Copyright (C) 2026 panchovix. GNU General Public License v3.0 or later (GPL-3.0-or-later), see
LICENSE: you can use, study, change and share it, and changed versions you share must stay
under the same license. There is no warranty, to the extent permitted by law.
The source code is at https://github.com/Panchovix/nvidia-vbios-vix-editor; the tag v<version> matches
each release. The binaries also contain third-party components under their own licenses: see
THIRD_PARTY_NOTICES.md, which also says where to get their source code. Binary releases up to 0.1.13 were
distributed under a freeware license agreement.