stepping up to ubuntu 25.04 on my raspberry pi 5

I decided to upgrade my Ubuntu 24.04.2 installation on my Raspberry Pi 5 to Ubuntu 25.04. I had to upgrade to Ubuntu 24.10 before I could upgrade to 25.04, so be advised if you want to follow the same path. My updates went without drama. I forced the final update to 25.04 at the command line with sudo do-release-upgrade -d and then waited for everything to finish. I had to force the 25.04 update because the regular 25.04 update was causing Kubuntu systems to restart with a broken desktop, and Canonical had halted regular updates. I don’t know the reason why, but the issue was with Kubuntu, not main line Ubuntu.

The upgrade to Ubuntu 25.04 provided me with up-to-date tools such as Python 3.13, fish 4.0.1, and GCC 14.2. The other tools I depend upon and allow the distribution to provide are reasonably up-to-date, such as git which is at version 2.48.1 as installed. The latest git version is 2.49.0, just released. I think I’ll let 2.49 marinate for a while, being a dot zero release, and with a number of big changes involved.

One interesting fix that the upgrade provided is that it fixed the issue with the screen saver. On all my other Linux installations, when the screen save starts it completely turns off the screen. With Ubuntu 24.04 on the Raspberry Pi 5, all it did was blank the screen. It never turned off the screen to truly put the screen in power saver mode.

So the general consensus is that 25.04 is solid.

Now, let’s talk about how it negatively impacted my Python environment. As I said this release has Python version 3.13.3, the absolute latest. That’s a good thing. However, in the process of upgrading, I lost a number of my important Python libraries I depend upon, which included powerline-shell for my fish shell, luma.led_matrix.device for my silly clock (driving the external SPI 4 x 64 (8 x 8) display) and libraries for I2C control. I had to reinstall powerline-shell, luma.led_matrix.device to get the clock working again, and gpiozero as well as lgpio for I2C. I then noticed that the version of lgpio wasn’t the latest version, and I had to force pip to try to install the upgrade. That’s when I discovered I also needed to install swig, setuptools, python-gettext and liblgpio-dev. I then decided to perform a full upgrade of the existing libraries and discovered I also needed to install libcairo2-dev, libgirepository-2.0-dev and pkg-config. After that everything worked nearly flawlessly except the I2C libraries. Every time I ran the small application I wrote to flash some LEDs, I got the following:

.local/lib/python3.13/site-packages/gpiozero/devices.py:300: PinFactoryFallback: Falling back from lgpio: 'can not open gpiochip'

but the application still worked. I looked at the specific Python library file sending out the message:

Line 300 in the warning is highlighted in the source, and you can see the surrounding source for context. Whatever was happening, the warning was delivered in the exception block. In spite of the warning the application worked. I suppose I’ll need to dig in and try to understand a little more what is happening. A very cursory examination of the device tree shows no difference with the gpio devices, nor the permissions, with earlier Ubuntu versions and kernel versions.

What I’m experiencing is a very corner case. Ubuntu 25.04 is definitely not a sanctioned installation the way Raspberry Pi OS is, and I’m fine with that. I can take care of myself and eventually fix the little problems I come across. The reward is an operating system on my Pi that is head and shoulders above Raspberry Pi OS.

I’m also appreciative of using the current Ubuntu release. Sticking with the long term support (LTS) releases means being stuck with increasingly out-of-date tools, which I want and need for my experimentation and general tinkering. LTS might be just fine for the business side of things, but it’s not fine for me. And that’s OK, because I can make that decision. Choice is good, especially in operating systems.

Links

new method for updating python packages

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.