Pi-Top Boot Issues with Current Pi-OS, but Other OS (Sirius, Raspbian) Work Fine

Good day,

I am currently facing an issue with my more than 50 Pi-Tops, where two devices suddenly won’t boot with the current Pi-OS anymore. These devices used to work flawlessly for years. To be more specific, they show the boot logo on the OLED display. On the HDMI output, the screen goes gray, then black, but no Pi-Top logo appears, and nothing else happens. There’s no access to the storage medium, no further activity. The device doesn’t shut down; it just keeps running while the display continuously shows a black screen.

Here’s what I’ve tested so far, none of which made any difference:

  • Different USB sticks (ranging from 16 GB to 128 GB, including SSDs)
  • SD cards (ranging from 8 GB to 64 GB)
  • Different software for flashing (Raspberry Pi Imager and Balena Etcher)
  • Different bootloaders (I tried bootloaders from every year available on the official Raspberry Pi GitHub repository)
  • Different Pi-Top-OS versions, all releases I could find, roughly the last five versions
  • Different Pi-Top cases (even tried running without the case)

None of these approaches worked. However, if I use the current or any other 32-bit or 64-bit version of Raspbian, it boots just fine and runs perfectly without any issues. The same applies when I use Pi-Top Sirius—everything works without problems.

What’s strange about Sirius, though, is that every time it boots, it claims the bootloader needs to be updated and that there are software updates available. When I update the bootloader, the system restarts, but the bootloader remains the same, and it keeps prompting for an update. This happens even if I’ve already installed the latest or an older bootloader. The software it constantly tries to update is “Code,” and no matter how often I update it, it prompts for the same update after every reboot.

For now, I’ve swapped the Raspberry Pi boards in the two Pi-Top cases, and the new ones boot just fine with the old cases and USB sticks.

I’m running out of ideas at this point. Does anyone have any suggestions on what else I could try? Alternatively, these two Raspberry Pis will just become “regular” Raspberry Pis and won’t get Pi-Top cases anymore. I still have around 10 Pi-Top DIY cases and would really like to use them.

Have a nice day!
Best regards,
Knorbert

hi @Knorbert,

if I understood correctly, only 2 devices out of the 50 have this boot issue; what happens if you try inserting the SD card of one of the devices that works into the ones that don’t boot?

The behavior you describe where on Sirius it says that it needs to update the bootloader happens on these 2 units or on all of them? What happens if you try to manually update the packages? In a terminal, run sudo apt update && sudo apt dist-upgrade -y; it’d be great if you could share the output of this command with us.

It’d also be interesting to learn about the bootloader configuration on these units; we modify a few parameters for the pi-top to work properly. Could you please run vcgencmd bootloader_version && vcgencmd bootloader_config in a terminal and share the output with us?

Do you perform any changes to the config.txt or cmdline.txt files from the boot partition on the pi-topOS SD card?

Finally, could you share the output of the command mount?

The answer to these questions should help us to identify the issue with these units.

Please excuse my delayed response; I hadn’t had a chance to revisit the affected device until now.

It concerns exactly two out of more than 50 devices; all the others work without any problems. The case, that is, the Pi-Tops themselves – also function perfectly with other Raspberry Pis. When I install the two Pis in a DIY Pi-Tops enclosure, the problem occurs exactly the same way. However, the Pis work flawlessly without Pi-Top OS—for example, with Raspbian—and are completely usable. Now, regarding your questions:

if I understood correctly, only 2 devices out of the 50 have this boot issue; what happens if you try inserting the SD card of one of the devices that works into the ones that don’t boot?

When I insert the SD cards, USB sticks, or even external hard drives into another Pi-Top, it boots normally and functions perfectly. The issue occurs only with these two.

The behavior you describe where on Sirius it says that it needs to update the bootloader happens on these 2 units or on all of them?

That happens on all devices, or at least I have also tested it on another Pi-Top which otherwise boots normally.

What happens if you try to manually update the packages? In a terminal, run sudo apt update && sudo apt dist-upgrade -y; it’d be great if you could share the output of this command with us.


Of course, here is the output:
— output — URLs changed because of forum
pi@pi-top:~ $ sudo apt-get update
Get:2 raspbian.raspberrypi.or/raspbian buster InRelease [15.0 kB]
Get:3 archive.raspberrypi.or/debian buster InRelease [54.2 kB]
Hit:1 apt.pi-top.c/pi-top-os sirius InRelease
Get:4 archive.raspberrypi.or/debian buster/main armhf Packages [400 kB]
Fetched 470 kB in 2s (206 kB/s)
Reading package lists… Done
pi@pi-top:~ $ sudo apt dist-upgrade -y
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
— output —

It’d also be interesting to learn about the bootloader configuration on these units; we modify a few parameters for the pi-top to work properly. Could you please run vcgencmd bootloader_version && vcgencmd bootloader_config in a terminal and share the output with us?

Of course, here is the output:
— output —
pi@pi-top:~ $ vcgencmd bootloader_version
2023/01/11 17:40:52
version 8ba17717fbcedd4c3b6d4bce7e50c7af4155cba9 (release)
timestamp 1673458852
update-time 1674059736
capabilities 0x0000007f

pi@pi-top:~ $ vcgencmd bootloader_config
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
ENABLE_SELF_UPDATE=1
BOOT_ORDER=0xf14
--- output ---

Do you perform any changes to the config.txt or cmdline.txt files from the boot partition on the pi-topOS SD card?

No, no modifications whatsoever. I have tested dozens of hard drives, SD cards, USB sticks, etc. from various manufacturers, always with a freshly flashed pi-top OS or even with pi-top OS that has been in use for a long time.

Finally, could you share the output of the command mount?
Of course, here is the output:

pi@pi-top:~ $ mount
/dev/sdb6 on / type ext4 (rw,noatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=1773668k,nr_inodes=84275,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
none on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=31,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/sdb5 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
/dev/sdb1 on /recovery type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=387704k,mode=700,uid=1000,gid=1000)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda2 on /media/pi/Volume type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)

I also performed the entire procedure on another functioning Pi. Here are the outputs: (URLs changed because of forum)
pi@pi-top:~ $ sudo apt-get update
Hit:1 raspbian.raspberrypi.or/raspbian buster InRelease
Hit:3 archive.raspberrypi.or/debian buster InRelease
Hit:2 apt.pi-top.c/pi-top-os sirius InRelease
Reading package lists… Done
pi@pi-top:~ $ sudo apt dist-upgrade -y
Reading package lists… Done
Building dependency tree
Reading state information… Done
Calculating upgrade… Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

pi@pi-top:~ $ vcgencmd bootloader_version
2023/01/11 17:40:52
version 8ba17717fbcedd4c3b6d4bce7e50c7af4155cba9 (release)
timestamp 1673458852
update-time 1674059736
capabilities 0x0000007f

pi@pi-top:~ $ vcgencmd bootloader_config
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
ENABLE_SELF_UPDATE=1
BOOT_ORDER=0xf14

pi@pi-top:~ $ mount
/dev/sdb6 on / type ext4 (rw,noatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=1773668k,nr_inodes=84275,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
none on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=34,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
mqueue on /dev/mqueue type mqueue (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/sdb5 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
/dev/sdb1 on /recovery type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=387704k,mode=700,uid=1000,gid=1000)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
/dev/sda2 on /media/pi/Volume type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)

The output of the other functioning Pi after an update of the bootloader: URLs changed because of forum
pi@pi-top:~ $ sudo apt-get update
Hit:2 raspbian.raspberrypi.or/raspbian buster InRelease
Hit:3 archive.raspberrypi.or/debian buster InRelease
Hit:1 apt.pi-top.c/pi-top-os sirius InRelease
Reading package lists… Done

pi@pi-top:~ $ sudo apt dist-upgrade -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

pi@pi-top:~ $ vcgencmd bootloader_version
2023/01/11 17:40:52
version 8ba17717fbcedd4c3b6d4bce7e50c7af4155cba9 (release)
timestamp 1673458852
update-time 1674059736
capabilities 0x0000007f

pi@pi-top:~ $ vcgencmd bootloader_config
[all]
BOOT_UART=0
WAKE_ON_GPIO=1
ENABLE_SELF_UPDATE=1
BOOT_ORDER=0xf14

pi@pi-top:~ $ mount
/dev/sdb6 on / type ext4 (rw,noatime)
devtmpfs on /dev type devtmpfs (rw,relatime,size=1773668k,nr_inodes=84275,mode=755)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,relatime)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /run/lock type tmpfs (rw,nosuid,nodev,noexec,relatime,size=5120k)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup2 on /sys/fs/cgroup/unified type cgroup2 (rw,nosuid,nodev,noexec,relatime,nsdelegate)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,name=systemd)
none on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=33,pgrp=1,timeout=0,minproto=5,maxproto=5,direct)
mqueue on /dev/mqueue type mqueue (rw,relatime)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
sunrpc on /run/rpc_pipefs type rpc_pipefs (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/sdb5 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
/dev/sdb1 on /recovery type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=387704k,mode=700,uid=1000,gid=1000)
fusectl on /sys/fs/fuse/connections type fusectl (rw,relatime)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,relatime,user_id=1000,group_id=1000)
/dev/sda2 on /media/pi/Volume type fuseblk (rw,nosuid,nodev,relatime,user_id=0,group_id=0,default_permissions,allow_other,blksize=4096,uhelper=udisks2)

I hope you can help me; in any case, thank you very much.

Have a nice day!
Best regards,
Knorbert