Pi-Top Hardware with Raspbian Bullseye

Hi,

I know the recommendation is to use the Pi-Top OS, but I’m quite fond of Raspbian. I normally follow the article on the Pi-Top KB to get the drivers to work. https://knowledgebase.pi-top.com/knowledge/pi-top-and-raspberry-pi-os

I recently attempted to reconfigure my PiTop from Buster to Bullseye and it seems there is a problem with pt-sys-oled and pt-firmware-updater. I tried two times with a fresh image and the result is the same. As far as I can tell, it needs python 3.7, but Bullseye comes with python 3.9. I tried to uninstall python and reinstall 3.7 but it won’t install. Downgrading python also seems to break the Raspbian desktop.

Please see the result below:

pi@raspberrypi:~ $ echo "deb http://apt.pi-top.com/pi-top-os sirius main contrib non-free" | sudo tee /etc/apt/sources.list.d/pi-top.list &> /dev/null
curl https://apt.pi-top.com/pt-apt.asc | sudo apt-key add
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).
100  3358  100  3358    0     0   5643      0 --:--:-- --:--:-- --:--:--  5643
OK
pi@raspberrypi:~ $ sudo apt update
Hit:2 http://raspbian.raspberrypi.org/raspbian bullseye InRelease              
Hit:3 http://archive.raspberrypi.org/debian bullseye InRelease                 
Get:1 https://apt.pi-top.com/pi-top-os sirius InRelease [7,813 B]
Get:4 https://apt.pi-top.com/pi-top-os sirius/main armhf Packages [103 kB]
Fetched 111 kB in 2s (54.8 kB/s)  
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.
pi@raspberrypi:~ $ sudo apt install --no-install-recommends -y pt-device-manager pt-sys-oled pt-firmware-updater
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python3-pitop : Depends: python3-dlib (< 19.23.0) but it is not going to be installed
                 Depends: python3-dlib (>= 19.22.0) but it is not going to be installed
                 Depends: python3-flask (< 1.1) but 1.1.2-2 is to be installed
                 Depends: python3-gevent (< 1.4) but 20.9.0-2 is to be installed
                 Depends: python3-imutils (< 0.6.0) but it is not going to be installed
                 Depends: python3-imutils (>= 0.5.4) but it is not going to be installed
                 Depends: python3-matplotlib (< 3.1) but 3.3.4-1 is to be installed
                 Depends: python3-opencv (< 3.3) but 4.5.1+dfsg-5 is to be installed
                 Depends: python3-scipy (< 1.2) but 1.6.0-2 is to be installed
                 Depends: python3-zmq (< 17.2.0) but 20.0.0-1 is to be installed
 python3-pycrc : Depends: python3.7 but it is not installable
 python3-pyftdi : Depends: python3-pyserial (>= 3.0) but it is not going to be installed
                  Depends: python3-pyusb (>= 1.0.0) but it is not going to be installed
                  Depends: python3.7 but it is not installable
 python3-smbus2 : Depends: python3.7 but it is not installable
E: Unable to correct problems, you have held broken packages.

It seems that sudo apt install --no-install-recommends -y pt-device-manager works without errors and after reboot the battery monitor works, but nothing else. If I try cd /usr/lib/pt-device-manager sudo ./pt-device-manager then I get the following:

[17:30:55.106033 I] Idletime retrieved from config: 300
[17:30:55.196881 I] Starting device manager...
[17:30:55.199193 E] Error starting the publish server: Address already in use
[17:30:55.207220 I] Traceback (most recent call last):
  File "/usr/lib/pt-device-manager/ptdm_publish_server.py", line 28, in start_listening
    self._zmq_socket.bind("tcp://*:3781")
  File "/usr/lib/python3/dist-packages/zmq/sugar/socket.py", line 173, in bind
    super().bind(addr)
  File "zmq/backend/cython/socket.pyx", line 542, in zmq.backend.cython.socket.Socket.bind
  File "zmq/backend/cython/checkrc.pxd", line 28, in zmq.backend.cython.checkrc._check_rc
zmq.error.ZMQError: Address already in use

[17:30:55.209787 E] Unable to start listening on publish server
[17:30:55.210228 E] Unable to start pi-top device manager's central controller
[17:30:55.210520 I] Stopping device manager...
[17:30:55.210812 I] Closing responder socket...
[17:30:55.211863 I] Stopping idle time monitor...
[17:30:55.212363 I] Stopping peripheral manager...
[17:30:55.212705 I] Stopping hub manager...
[17:30:55.213001 I] Closing publisher socket...

Are there any known compatibility issues with Python3.9 or Raspbian Bullseye, or does anyone know how to fix this?

Thanks in advance!

hey @MVDM !

As you can see, our buster packages don’t really like being installed in bullseye. Most of them have version-locked dependencies that are only available on buster.

The error you’re seeing when running the device manager leads me to believe that the service pt-device-manager is already running (you can check with systemctl status pt-device-manager)… same thing with pt-sys-oled: systemctl status pt-sys-oled … if you post the output of those commands here, we can maybe help you to get them running

Also -we’re working to release our packages for bullseye soon!