1435 words
7 minutes

btop GPU Missing: Check GPU_SUPPORT, Drivers, and Permissions

2026-08-03
2026-08-22
Tools
btop
/
Linux
/
Troubleshooting
/
System Monitoring

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:

Terminal window
command -v btop
btop --version
btop
sudo -n btop

Do 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.

SymptomCheck firstWhat the result means
The GPU section is absentGPU support in the binaryThe package or upstream archive may have been built without the required feature
NVIDIA is working but btop is blankNVIDIA driver and NVML librarybtop needs the official driver and nvidia-ml dynamic library
AMD is blankROCm SMI availabilitybtop queries AMD GPU data through rocm_smi_lib
Intel GPU appears only under sudoSYSFS accessThe normal user lacks permission to read the data
CPU wattage is missingExtended capabilities or setuidThe upstream build instructions require an access setup for wattage
CPU temperature is blank or wrongAvailable sensors and cpu_sensorbtop 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:

Terminal window
command -v btop
btop --version

If 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:

Terminal window
git clone https://github.com/aristocratos/btop.git
cd btop
make GPU_SUPPORT=true
sudo make install

The 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:

Terminal window
nvidia-smi
ldconfig -p | grep -i nvidia-ml

If 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:

Terminal window
command -v rocm-smi || true
ldconfig -p | grep -i rocm

The 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:

Terminal window
sudo make setcap

Then 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:

Terminal window
command -v btop
getcap "$(command -v btop)" 2>/dev/null || true

The 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:

Terminal window
sensors

If 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:

Terminal window
id
command -v btop
btop --version
getcap "$(command -v btop)" 2>/dev/null || true
sensors 2>/dev/null || true
nvidia-smi 2>/dev/null || true

Then open btop without sudo and check one metric at a time:

  1. Does the GPU section exist?
  2. Does the vendor’s independent tool see the GPU?
  3. Does the metric appear only as root?
  4. Does a different CPU sensor produce a plausible temperature?
  5. 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

btop issue #1040: Intel integrated GPU permissions

Debian bug #1121422: btop GPU stats as a regular user

btop GPU Missing: Check GPU_SUPPORT, Drivers, and Permissions
https://laplusda.com/en/posts/btop-missing-gpu-temperature-wattage/
Author
Zero
Published at
2026-08-03
License
CC BY-NC-SA 4.0
Was this article useful?

Report a typo or broken link, or suggest a related topic.