Debian 13, STM32CubeIDE und libncurses


Wer wie ich den „generic“ Installer des STM32CubeIDE verwendet und das auf einem Debian 13 (trixie) System installiert, wird mit dem libncurses5 Fehler konfroniert, sobald er die elf-Datei flashen will.

Die Fehlermeldung in der IDE sieht dann so aus:

Could not determine GDB version using command: arm-none-eabi-gdb –version
arm-none-eabi-gdb: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory

Das kommt daher, dass das Paket libncurses5 nicht installiert ist.

Ein ldd auf den gdb zeigt:

​linux-vdso.so.1 (0x00007fcdef7b5000)
/usr/local/lib/AppProtection/libAppProtection.so (0x00007fcdee800000)
libncurses.so.5 => not found
libtinfo.so.5 => not found
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fcdef78c000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fcdee400000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcdeeb10000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fcdef75d000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fcdef758000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcdee20a000)
libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007fcdee6b8000)
libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fcdeeae5000)
libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007fcdef742000)
/lib64/ld-linux-x86-64.so.2 (0x00007fcdef7b7000)
libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007fcdef73d000)
libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fcdeeadd000)
libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007fcdeeac8000)

Sieht so aus, als ob libncurses5 und libtinfo5 fehlen würden. Debian 13 kommt mit libncurses6 und libtinfo6 daher…

Also selbst die Hand anlegen:

wget http://ftp.debian.org/debian/pool/main/n/ncurses/libncurses5_6.4-4_amd64.deb

wget http://ftp.debian.org/debian/pool/main/n/ncurses/libtinfo5_6.4-4_amd64.deb

Und anschließend mit dpkg –install libncurses5_6.4-4_amd64.deb libtinfo5_6.4-4_amd64.deb installieren:

root@hades:~/ncurses# dpkg –install libncurses5_6.4-4_amd64.deb libtinfo5_6.4-4_amd64.deb
Vormals nicht ausgewähltes Paket libncurses5:amd64 wird gewählt.
(Lese Datenbank … 347715 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von libncurses5_6.4-4_amd64.deb …
Entpacken von libncurses5:amd64 (6.4-4) …
Vormals nicht ausgewähltes Paket libtinfo5:amd64 wird gewählt.
Vorbereitung zum Entpacken von libtinfo5_6.4-4_amd64.deb …
Entpacken von libtinfo5:amd64 (6.4-4) …
libtinfo5:amd64 (6.4-4) wird eingerichtet …
libncurses5:amd64 (6.4-4) wird eingerichtet …
Trigger für libc-bin (2.41-12) werden verarbeitet …
root@hades:~/ncurses#

Anschließender Test mit ldd:

root@hades:/opt/st/stm32cubeide_1.19.0# ldd ./plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.13.3.rel1.linux64_1.0.0.202410170706/tools/bin/arm-none-eabi-gdb
linux-vdso.so.1 (0x00007f3a801e6000)
/usr/local/lib/AppProtection/libAppProtection.so (0x00007f3a7f200000)
libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007f3a8019c000)
libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f3a8016b000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f3a80166000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f3a7ee00000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f3a7f510000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f3a80137000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3a7f50b000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3a7ec0a000)
libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f3a7f0b8000)
libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007f3a7f4de000)
libXi.so.6 => /lib/x86_64-linux-gnu/libXi.so.6 (0x00007f3a7f4ca000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3a801e8000)
libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007f3a7f4c5000)
libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007f3a7f4bd000)
libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007f3a7f4a8000)
root@hades:/opt/st/stm32cubeide_1.19.0#

So soll es sein, passt.