btop GPU Missing: Check GPU_SUPPORT, Drivers, and Permissions
When btop runs but a GPU panel, CPU temperature, or wattage value is blank, changing the layout is rarely the first fix. The missing metric usually belongs to one of four boundaries: the binary was built without GPU support, a driver library is unavailable, the operating system does not expose a compatible sensor, or the current user cannot read the required data.
This guide gives you a short way to separate those cases. It focuses on Linux because the upstream project documents different GPU support for Linux and Apple Silicon macOS. For broader installation and configuration, the existing btop installation guide covers the basic setup; this article starts where the dashboard is already running but the numbers are missing.
Identify which boundary is failing
Start by recording the binary and testing the same command as your normal user and, only for diagnosis, with sudo:
command -v btopbtop --versionbtopsudo -n btopDo not leave the root session running as the permanent fix. The comparison is useful because it separates an access problem from a missing build dependency or unsupported hardware path.
| Symptom | Check first | What the result means |
|---|---|---|
| The GPU section is absent | GPU support in the binary | The package or upstream archive may have been built without the required feature |
| NVIDIA is working but btop is blank | NVIDIA driver and NVML library | btop needs the official driver and nvidia-ml dynamic library |
| AMD is blank | ROCm SMI availability | btop queries AMD GPU data through rocm_smi_lib |
Intel GPU appears only under sudo | SYSFS access | The normal user lacks permission to read the data |
| CPU wattage is missing | Extended capabilities or setuid | The upstream build instructions require an access setup for wattage |
| CPU temperature is blank or wrong | Available sensors and cpu_sensor | btop can only select a sensor that the operating system exposes |
The upstream btop README is the source of these support boundaries. Treat the table as a routing tool, not as proof that every distribution package has the same feature set.
Check the binary’s distribution boundary first
The current upstream README says that binaries from the release page and continuous builds do not have GPU support enabled. That means btop can start normally while the GPU panel is absent; a working vendor tool such as nvidia-smi does not change a binary that was built without GPU_SUPPORT.
Record where the running binary comes from before changing drivers or permissions:
command -v btopbtop --versionIf the binary came from an upstream archive without GPU support, use a package that explicitly documents the feature or build btop from source with the flag enabled. Do not treat a version upgrade as a GPU-support upgrade unless the package’s build options say so.
Confirm that the binary has GPU support
btop’s upstream documentation says GPU monitoring on Linux requires a binary built with GPU support. For a source build, make that feature explicit instead of relying on the package’s defaults:
git clone https://github.com/aristocratos/btop.gitcd btopmake GPU_SUPPORT=truesudo make installThe exact build toolchain and optional libraries still depend on the GPU vendor. A successful compile does not guarantee that btop can query a GPU at runtime, so check the matching dependency next.
NVIDIA
The upstream project requires an official NVIDIA driver and the nvidia-ml dynamic library. Check the driver independently before changing btop settings:
nvidia-smildconfig -p | grep -i nvidia-mlIf nvidia-smi cannot see the device, fix the driver or host first. If the driver works but the library lookup is empty, inspect how your distribution packaged the NVIDIA runtime libraries. Do not treat a working CUDA application as proof that the btop binary can load the library it needs.
AMD
For AMD GPUs, btop queries data through ROCm SMI. Check whether the library or package is present in the environment used to run btop:
command -v rocm-smi || trueldconfig -p | grep -i rocmThe upstream README notes that rocm_smi_lib may not be packaged by every distribution. If your distribution does not provide it, a source build can use the project’s documented RSMI_STATIC=true path, but that is a build decision rather than a runtime configuration toggle.
Check permissions without making sudo the solution
Intel GPU monitoring and CPU wattage are the two cases where the upstream instructions explicitly call out additional access setup. The source installation flow documents make setcap as the preferred option, with make setuid or running btop with sudo as alternatives.
For a source installation, run the capability step after make install and use the same PREFIX if you installed into a custom directory:
sudo make setcapThen start a new normal-user session and run btop again. If you installed from a distribution package, do not copy a source-build command blindly. First inspect the package’s policy and the actual binary path:
command -v btopgetcap "$(command -v btop)" 2>/dev/null || trueThe distinction matters because file capabilities are part of how the binary is installed and maintained. A Debian bug report about btop GPU statistics records an open packaging discussion rather than a universal command that applies to every Debian-based system. That is a reason to check the package’s current guidance, not a reason to grant a broad capability without review.
An upstream issue also documents an Intel integrated GPU that appeared for root but not for the regular user. That is useful evidence for the diagnosis pattern, but it does not prove that the same capability or path is correct for your hardware. Use root only to confirm the boundary, then apply the smallest supported access change for your installation method.
Select a real CPU temperature sensor
Temperature is a separate path from GPU access. btop’s configuration exposes cpu_sensor so you can select one of the sensors detected by the system. If the list is empty or the values are obviously wrong, inspect the sensor layer first:
sensorsIf the command is unavailable, install and configure the lm-sensors package using your distribution’s documentation. If it runs but does not expose a CPU package or core sensor, btop cannot select a value that the operating system has not made available. If several candidates exist, open btop’s options and choose the sensor that matches your hardware instead of assuming Auto is correct.
The upstream configuration describes both check_temp and cpu_sensor, and its issue tracker shows why sensor names matter: btop searches for known names and can fall back when the expected CPU sensor is absent. A blank temperature is therefore not automatically a btop rendering bug.
Verify the fix in the same environment
After changing a build, driver library, capability, or sensor choice, verify the result as the account that will actually use btop:
idcommand -v btopbtop --versiongetcap "$(command -v btop)" 2>/dev/null || truesensors 2>/dev/null || truenvidia-smi 2>/dev/null || trueThen open btop without sudo and check one metric at a time:
- Does the GPU section exist?
- Does the vendor’s independent tool see the GPU?
- Does the metric appear only as root?
- Does a different CPU sensor produce a plausible temperature?
- Does the value remain after opening a new terminal or logging in again?
This order prevents an access change from hiding a missing driver library, and it prevents a sensor-selection change from being mistaken for a GPU fix. If the metric still fails, keep the output of btop --version, the package source, the GPU vendor, and the non-root/root comparison together when reporting the problem.
The practical rule is to treat a missing btop metric as a support, dependency, sensor, or permission boundary. Confirm which boundary you have first, then fix only that layer; running the whole monitor as root should remain a diagnostic comparison rather than the operating model.
FAQ
Q: Why does btop not show my GPU even though nvidia-smi works?
A: Check whether the btop binary was built with GPU_SUPPORT and whether it can load the nvidia-ml dynamic library. Upstream release-page and continuous-build binaries are documented without GPU support, so nvidia-smi can work while that btop binary still has no GPU panel.
Q: Should I always run btop with sudo to see CPU wattage or Intel GPU data?
A: No. Running with sudo can confirm that the missing value is an access problem, but it is a poor permanent workaround. For source builds, follow the upstream make setcap or make setuid instructions; for distribution packages, check the package’s current capability policy before changing the installed binary.
Q: Why is the btop CPU temperature blank when the program starts normally?
A: btop can only select a sensor exposed by the operating system. Run sensors, then choose a matching value through btop’s cpu_sensor option. If no compatible sensor is exposed, changing the btop layout will not create one.
Q: Does every btop installation support GPU monitoring?
A: No. The upstream project documents GPU monitoring requirements for Linux and Apple Silicon macOS, including a GPU-enabled build and vendor-specific drivers or libraries. Package builds, operating systems, and hardware can therefore expose different metric sets.
References:
btop README: GPU monitoring, installation, and capabilities
Report a typo or broken link, or suggest a related topic.