To have most recent btop feature like support for Intel Graphics in btop

Checked on Ubuntu 24.04 and Ubuntu 25.10

Execute (as root):

apt install make lowdown g++-14 gcc-14 -y
snap remove btop
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 1
update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-14 1
update-alternatives --install /usr/bin/cc cc /usr/bin/cpp-14 1
apt remove -y btop

git clone https://github.com/aristocratos/btop.git
cd btop/
make GPU_SUPPORT=true
make install
update-alternatives --install /usr/bin/btop btop /usr/local/bin/btop 1

#apt remove -y binutils binutils-common binutils-x86-64-linux-gnu cpp cpp-13 cpp-13-x86-64-linux-gnu g++-14 gcc-14 cpp-x86-64-linux-gnu g++ g++-13 g++-13-x86-64-linux-gnu g++-x86-64-linux-gnu gcc gcc-13 gcc-13-base gcc-13-x86-64-linux-gnu gcc-x86-64-linux-gnu libasan8 libatomic1 libbinutils libcc1-0 libctf-nobfd0 libctf0 libgcc-13-dev libgomp1 libgprofng0 libhwasan0 libisl23 libitm1 liblsan0 libmpc3 libquadmath0 libsframe1 libstdc++-13-dev libtsan2 libubsan1 make lowdown

Execution example

 ██████╗ ████████╗ ██████╗ ██████╗
 ██╔══██╗╚══██╔══╝██╔═══██╗██╔══██╗   ██╗    ██╗
 ██████╔╝   ██║   ██║   ██║██████╔╝ ██████╗██████╗
 ██╔══██╗   ██║   ██║   ██║██╔═══╝  ╚═██╔═╝╚═██╔═╝
 ██████╔╝   ██║   ╚██████╔╝██║        ╚═╝    ╚═╝
 ╚═════╝    ╚═╝    ╚═════╝ ╚═╝      Makefile v1.6
PLATFORM     ?| Linux
ARCH         ?| x86_64
GPU_SUPPORT  :| true
CXX          ?| g++ (14.2.0)
CC           ?| cc (13.3.0)
THREADS      :| 22
REQFLAGS     !| -std=c++23
WARNFLAGS    :| -Wall -Wextra -pedantic
OPTFLAGS     :| -O2
LDCXXFLAGS   :| -pthread -DFMT_HEADER_ONLY -D_GLIBCXX_ASSERTIONS -D_LIBCPP_HARDENING_MODE=_LIBCPP_HARDENING_MODE_DEBUG -D_FILE_OFFSET_BITS=64 -fexceptions -fstack-clash-protection -fcf-protection -fstack-protector -DGPU_SUPPORT
CXXFLAGS     +| $(REQFLAGS) $(LDCXXFLAGS) $(OPTFLAGS) $(WARNFLAGS)
LDFLAGS      +| $(LDCXXFLAGS) $(OPTFLAGS) $(WARNFLAGS)

Building btop++ (v1.4.6) Linux x86_64

Generating man page btop.1...
Configuring obj/config.h
Compiling src/linux/intel_gpu_top/igt_perf.c
Compiling src/linux/intel_gpu_top/intel_device_info.c
Compiling src/linux/intel_gpu_top/intel_name_lookup_shim.c
Compiling src/linux/intel_gpu_top/intel_gpu_top.c
Compiling src/btop_cli.cpp
Compiling src/btop.cpp
Compiling src/btop_config.cpp
Compiling src/btop_menu.cpp
Compiling src/btop_input.cpp
Compiling src/btop_draw.cpp
Compiling src/btop_log.cpp
Compiling src/btop_shared.cpp
Compiling src/btop_theme.cpp
Compiling src/main.cpp
Compiling src/btop_tools.cpp
Compiling src/linux/btop_collect.cpp
11%  -> obj/intel_device_info.c.o     (32KiB) (00s)
11%  -> obj/intel_name_lookup_shim.c.o(8.0KiB) (00s)
16%  -> obj/igt_perf.c.o              (8.0KiB) (00s)
22%  -> obj/intel_gpu_top.c.o         (20KiB) (00s)
28%  -> obj/main.o                    (4.0KiB) (00s)
33%  -> obj/btop_cli.o                (264KiB) (08s)
39%  -> obj/btop_tools.o              (580KiB) (08s)
45%  -> obj/btop_log.o                (304KiB) (09s)
50%  -> obj/btop_input.o              (584KiB) (09s)
56%  -> obj/btop_shared.o             (584KiB) (09s)
61%  -> obj/btop_theme.o              (632KiB) (09s)
67%  -> obj/btop_menu.o               (920KiB) (11s)
73%  -> obj/btop_config.o             (672KiB) (13s)
78%  -> obj/btop.o                    (788KiB) (14s)
84%  -> obj/btop_draw.o               (1.3MiB) (20s)
90%  -> obj/linux/btop_collect.o      (1.3MiB) (28s)

Linking and optimizing binary...
100% -> bin/btop                      (2.2MiB) (00s)

Build complete in (29s)
Installing binary to: /usr/local/bin/btop
Installing doc to: /usr/local/share/doc/btop
Installing themes to: /usr/local/share/btop/themes
Installing desktop entry to: /usr/local/share/applications/btop.desktop
Installing PNG icon to: /usr/local/share/icons/hicolor/48x48/apps/btop.png
Installing SVG icon to: /usr/local/share/icons/hicolor/scalable/apps/btop.svg
Installing man page to: /usr/local/share/man/man1/btop.1


Intel 285H

1.4.6


1.4.5

With both GPU and CPU Power in Watts (since btop version: 1.4.4+65c7d0b)

Options

1.4.4

To get GPU Load for Intel Graphics


1.3.0

1.4.0

root@server6:~/btop# cat CHANGELOG.md
## v1.4.6

References | Description | Author(s)
--- | --- | ---
#1272 | Skip 'H' and 'HX' suffix in AMD cpu name trimming | @ramdomPTM
#1268 | feature: add process renice functionality | @goddamnparticle
#1285 | Revert "Use /sys/dev/block/MAJOR:MINOR instead of /sys/block/NAME for disk I/O" #1270 | @deckstose
#1277 | feat: Introduce cpu frequency display modes | @emiliopedrollo
#1282 | Fix CPU frequency detection for LoongArch CPUs | @Twopic2
#1275 | fix arrow keys that send 'O' instead of '[' | @vandabbin
#1251 | OpenBSD: battery: add support for watthour and watts sensors | @shtrophic
#1208 | Add Gotham theme | @jrebs
#1291 | Fix macOS deadlocks and race conditions in collector threads #1292 | @kuzmeech
#1296 | fix: btop crash on arm cpu | @emiliopedrollo @zenofile
#984 | Added ability to set which gpu vendors to enable | @thedustinmiller
#1274 | added tree toggle of expand/collapse for children of process | @irabrine
#1300 | Use right key codes to match f1 and f2 keys | @vandabbin
#1305 | Handle missing SMC gracefully on macOS | @achille
#1309 | Fix redraw in proc list when changing sort order | @vandabbin
#1304 | Fix load average and GPU watts leaking past box border | @vandabbin
#1220 | feat: respect effective cpus from cgroup | @deckstose
#1218 | feat: display container engine | @deckstose
#1315 | feat: raise cpp standard to c++23 | @deckstose
d0cbaf7 | Add configuration toggle for terminal synchronization | @aristocratos
#1306 | Implement feat Process list pausing | @vandabbin
#1322 | flip name, command, and user sorting | @vandabbin
#1334 | fix tty theme for pause banner | @vandabbin
#1325 | test: add test harness with ctest | @deckstose
#1339 | fix: skip first argument of argv | @AlvaroParker
#1357 | feat: add --themes-dir flag | @adeci
#1359 | fix: don't over-/underflow when parsing --update argument | @yinghao-w
#1362 | fix segfault on musl systems | @v1cont
#1363 | Pass only static duration strings to Config::set in Config::apply_preset | @yinghao-w
#1366 | fix: cpu per-thread totals not reaching 100% | @Tom94
#1367 | Fix: Align boxes when Cpu bottom and Gpu on | @yinghao-w
#1372 | Minor fixes and improvements for NetBSD | @fraggerfox
#1377 | Fixed GPU rendering | @TheSovietPancakes
#1379 | Fix: Always collect GPU data when cpu_graph_lower = "Auto" | @yinghao-w
#1393 | Fix: humanized units shortening | @yinghao-w
#1401 | Feat: add mouse dragging of scrollbar | @yinghao-w
#1399 | feat: add cli option to dump default config | @deckstose
e969f43 | Added "save_config_on_exit" option to configuration | @aristocratos

## v1.4.5

References | Description | Author(s)
--- | --- | ---
#1254 | Bump bundled fmt to 12.0.0 | @deckstose
#1242 | Enable vim movement in help menu | @botantony
#948 | Remove reduntant symbols in tree view | @Denizantip
#1249 | Use /sys/dev/block/MAJOR:MINOR instead of /sys/block/NAME for disk I/O | @CountBleck
#1227 | feat: display CPU power draw & fix GPU+load avg overwriting core info | @Tom94 and @YuriiShkrobut
4f5abbb | Fix locale issues | @aristocratos
#1165 | Add encode and decode meters on Nvidia GPUs | @sam-kirby
#1197 | linux: Battery Time-to-full | @RadsammyT
#1203 | Convert ascii escape codes in mountpoint names before reading statvfs | @deckstose
#1198 | Fix presets erroring with gpu* usage | @entropylost
#1191 | Fix --tty/--no-tty flag having no effect | @deckstose

## v1.4.4

References | Description | Author(s)
--- | --- | ---
#1185 | Fix auto-detection of CPU temp on Ampere boards | @bexcran
589c133 | Fixed floating_humanizer() to work correctly when numeric delimiter isn't a dot. | @aristocratos
#1157 | Add command line option to set an inital filter | @imwints
#1172 | Make 100ms the minimal refresh rate. Exit gracefully if integer conversion in CLI parser fails. | @imwints
#1031 | Lock/unlock config to avoid infinite recursion | @Jacajack
#1156 | Fix incorrect positioning and start symbol of second title introduced in 2538d89 | @xDMPx
ffcd064 | Fix dangling reference warnings for GCC 13 and later | aristocratos

## v1.4.3

References | Description | Author(s)
--- | --- | ---
c3b225f | Revert e266ccd which broke str_to_upper() and str_to_lower() | @aristocratos
#1137 | Enable additional checks in libc++ with the new hardening mode | @imwints
#1135 | Remove redundant optimization flag | @imwints
#1139 | Ignore incomplete filter regex, issue #1133 | @imwints

## v1.4.2

References | Description | Author(s)
--- | --- | ---
f1482fe | Fix process arguments appearing outside proc box by replacing ASCII control codes with blankspace, issue #1080 | @aristocratos
#1130 | Fix problems shown by clang-tidy's performance checks | @imwints
#1120 | Fix wrong error message and documentation of renamed option --utf-force | @t-webber @imwints
#1128 | Flatten cmake module path | @imwints
#1129 | CMake: Remove option to use mold  | @imwints
#1047 | Update Terminus font link, fix typo, spelling, and grammar | @QinCai-rui
#929 | Please clang with sanitizers | @bad-co-de
#1126 | Fix MacOS tree-mode + aggregate memory/thread scaling issue | @xaskii
#993 | Fix typo: Mhz -> MHz | @NyCodeGHG

## v1.4.1

References | Description | Author(s)
--- | --- | ---
#1111 #1112 | Various code fixes | @imwints
#930 #931 | Various code fixes | @bad-co-de
#1061 | Fixed typo | @polluks
#1110 | Move the config parser in it's own module  | @imwints
#1101 | Adding a menu option to show bitrates in base 10 separate from the setting to show bytes/bits in base 10 | @georgev93
#1079 | Allow MidnightBSD to build btop using the existing freebsd support. | @laffer1
#1098 | Use XDG_STATE_HOME to save logs | @imwints
#1092 | Bump CMake version to 3.25 required for LINUX variable | @imwints
#1058 | Replace brackets with arrows in net and proc box | @taha-yassine
#1091 | Bump bundled fmt to 11.1.4 | @imwints
#725 | cmake:  link to CMAKE_DL_LIBS | @alalazo
#990 | Fix phoenix-night.theme marked as executable | @sertonix
#1034 | Add Kanagawa-lotus and Kanagawa-wave themes | @philikarus
#973 | Bump NetBSD version to 10.1 and FreeBSD version to 14.2. | @fraggerfox
#1072 | Add dark version of adwaita theme: adwaita-dark | @k0tran
#1036 | Resetting last selection on page navigation in optionsMenu to avoid unordered_map error | @seth-wood
#1029 | Share the CPU name trimming code between platforms | @yarrick
#1033 | Update Ryzen name trimming | @yarrick
#1030 | Drop macos 12 build, add v14 and v15 | @yarrick
#1028 | Fix cmake-macos workflow | @yarrick
#1027 | Bump version of deprecated upload-artifact step | @yarrick
#1025 | Update obsolete egrep call | @tywkeene
b52069c | Fix menu crash when GPU_SUPPORT=false, issue #989 | @aristocratos
#961 | Add 'Everforest Ligth Medium' theme | @mstuttgart
#960 | Support intel GPUs before Gen-6 (patch from upstream) | @w8jcik
#958 | intel_name_lookup_shim.c (get_intel_device_name): Fix SEGFAULT | @artyom-poptsov
2e7208d | Fix rsmi_measure_pcie_speeds not saving, issue #934 | @aristocratos
f3446ed | Show GPU Watt fractions when below 100W | @aristocratos

| + more from @imwints @aristocratos

Big thanks to @imwints for helping out with project maintenance, PR reviews and merging!

## v1.4.0

References | Description | Author(s)
--- | --- | ---
#703 | NetBSD Support | @fraggerfox
#903 | Intel GPU support | @bjia56
161e8f4 | Added warnings when toggling boxes and terminal size is to small | @aristocratos
4210f5f | Fix missing core percentages, issue #792 | @aristocratos
35857f8 | Various fixes for drawing GPU related information | @aristocratos
#879 | fix divide 0 error when caculating disk usage percentage (#791) | @flylai
#884 | fix io_graph_speeds parsing | @feihtthief
#863 | V1 of Phoenix Night theme | @Firehawke
3f384c0 | Fixed missing CPU core temps when too small to show core temp graphs, issues #792 #867 | @aristocratos
97d2fb5 | Fixed missing IO graphs in IO mode, issue #867 | @aristocratos
#840 | fix zero temp (#467) | @joske
#850 | Fix comments (parsing) in theme files | @acidghost
#806 | Add regex filtering | @imwints
#836 | Fix typo in file existences check for voltage_now | @vsey
#835 | Show time in days when remaining battery exceeds an estimation of 24h | @imwints
#819 | (AMD Gpu) fix pwr_usage not being defined correctly during rsmi collection | @kalkafox
#831 | macOS: fix crash if there exists a uid not associated with any user | @thecoder-001
#796 | Fix rsmi device name buffer size | @davc0n
#807 | Add gruvbox_light theme | @kk9uk
#724 | Create man page for btop in Markdown | @ottok
#734 | Include metadata in binary version output `btop --version` | @imwints
#771 | collect: Fix reading of battery power draw on Linux | @Derppening



  • No labels