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
part of the log provided by journalctl

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 I’m 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 could 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 Debian / Raspberry Pi OS specific):

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.