Debugging picockpit-client problems

Problem #1: Pi is shown as offline

Check whether the picockpit-client service is active on your Raspberry Pi. Please open a terminal and write:

sudo service picockpit-client status

This will give you the following output, if picockpit-client is active and working correctly:

service picockpit-client status, active (running)

Investigate the log output next.

You can dump it to a file with the following command to send it to us, so we can analyze the problem:

sudo journalctl -u picockpit-client.service -n 1000 > /tmp/log.txt

This will output a log provided by journalctl, which will look something like this:

part of the log provided by journalctl

You can then contact us through the PiCockpit Contact page and send us the log.

Problem #2: GLIBC Error

While trying to install / run picockpit-client, you see a message similar to the following:

/usr/share/picockpit-client/bin/python: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.28' not found (required by /usr/share/picockpit-client/bin/python)
/usr/share/picockpit-client/bin/python: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.25' not found (required by /usr/share/picockpit-client/bin/python)
/usr/share/picockpit-client/bin/python: /lib/arm-linux-gnueabihf/libc.so.6: version `GLIBC_2.26' not found (required by /usr/share/picockpit-client/bin/python)

This issue shows that you are running an incompatible operating system version.

For example, it can occur if you run picockpit-client on Raspbian Stretch, the previous Raspbian release.

At the moment only the current major release of Raspberry Pi OS “Buster” is supported.

Technical explanation: the Python which is shipped with picockpit-client depends upon a certain version of the library GLIBC, which is 2.28. Other releases of Raspbian ship with older / other versions of GLIBC.

“The interface between any app and libc is forward compatible to newer releases, but it is not backward compatible to older releases.”

Workaround for GLIBC error

The following information is not tested, but we’re providing it for community members who are willing to experiment.

Your feedback on this solution is highly welcome, please let us know what works for you on which OS.

Using a tool called patchelf, you can modify binaries to use custom versions of shared (dynamically linked) libraries. Thereby, you can add the required libraries to a custom folder in your directory tree, and modify picockpit-client’s Python (located in /usr/share/picockpit-client/bin/python ) to use them.

The following links should be useful (note they are not specific to Debian or the Raspberry Pi OS):

If you go down this path and meet with success, please let us know so we can share the solution with everyone.

In the future, I’m planning to port picockpit-client to the Go language, and link it statically against musl instead of glibc; this way it should be portable across a bigger variety of systems.

Reporting problems

When reporting a different problem, or one which can’t be resolved with the tips on this page, please be sure to include screenshots of the PiCockpit webinterface, and the logs of the web interface and the picockpit-client.

Log for picockpit-client

Here are instructions of how to access the picockpit-client log on Raspberry Pi OS on the Raspberry Pi’s command line:

sudo su
journalctl -u picockpit-client --since "4 days ago" > /tmp/picockpit-client2.txt

Please attach the log output to your email.

Log for the Web Interface

To support us with further debugging, please also open the Developer Tools (on Chrome: Ctrl + Shift + I), and send us the output of the JavaScript console. Right-click one of the log lines, and select “Save as” to save a log file.

Note: if you use Firefox, Edge, or another browser, the way to access the log output will vary.

To report a problem, please contact us through the PiCockpit Contact page.