raspberrypi / pico-vscode

The official VS Code extension for Raspberry Pi Pico development. It includes several features to simplify project creation and deployment.
https://marketplace.visualstudio.com/items?itemName=raspberry-pi.raspberry-pi-pico
Mozilla Public License 2.0
131 stars 16 forks source link

Pre-compiled Picotool doesn't work on Bullseye #106

Open Markjanner opened 1 month ago

Markjanner commented 1 month ago

I'm quite new to VS code, and following the online guide to get Blink compiled on a Pi400. Compile stops, seems to be complaining about the library versions? The VScode extension is set to SDK v2.0.0.

I have checked the libc version installed in the path given in the terminal output and it says v2.3.1, which is the latest according version to synaptic. Do I need newer versions from somewhere or is the compiler looking in the wrong place?

image

Terminal window:

`/blink/build/blink.elf blink.uf2 --family rp2040 --abs-block
/home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool)
/home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool)
/home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool)
WARNING: Disassembly is not correct
/home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool)
/home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool)
/home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool)
ninja: build stopped: subcommand failed.`

If I set the SDK version in the VS code extension to v1.5.x the blink project builds fine, but then it complains when I go to 'Run' it:

`Executing task: /home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool load /home/pi400/blink/build/blink.elf -fx

/home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool: /lib/aarch64-linux-gnu/libc.so.6: version GLIBC_2.32' not found (required by /home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool) /home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool: /lib/aarch64-linux-gnu/libc.so.6: versionGLIBC_2.34' not found (required by /home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool) /home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/pi400/.pico-sdk/picotool/2.0.0/picotool/picotool)

Should I be able to build with version 2.0.0 of the SDK on a Pi400??: uname -a Linux pi400 6.1.21-v8+ #1642 SMP PREEMPT Mon Apr 3 17:24:16 BST 2023 aarch64 GNU/Linux

paulober commented 1 month ago

Thanks for reporting the issue.

I seems like picotool is compiled with a newer GLIBC version as currently included in your OS. Unfortunately you can't just update this library. What is the output of ldd --version and cat /etc/os-release on your system?

Markjanner commented 1 month ago

Ah, ok. So I could be looking at needing bookworm, instead of bullseye?

ldd --version: ldd (Debian GLIBC 2.31-13+rpt2+rpi1+deb11u11) 2.31

cat /etc/os-release: PRETTY_NAME="Debian GNU/Linux 11 (bullseye)" NAME="Debian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"

..... following up on the above, I installed the latest Raspberry Pi OS 64bit on an SDcard and installed vscode extension and blink example compiled and ran first time:

ldd (Debian GLIBC 2.36-9+rpt2+deb12u8) 2.36

cat /etc/os-release: PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" NAME="Debian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm ID=debian

So it looks like a bullseye issue?

will-v-pi commented 3 weeks ago

Yes, the pre-compiled picotool is built on Bookworm, so seems like it doesn't work with Bullseye