Blog

 

Configuration changes in Linux 5.4

The last years, most of the distributions have been using Linux 4.x kernels. In the last months, the Raspberry Pi foundation’s developers have been working hard to get Linux 5.x working on the Raspberry Pi. Today, while Linux 4.19 is still used on many distributions, Raspberry Pi OS can be upgraded to Linux 5.4.

Some of you might notice a problem when upgrading to Linux 5.4 – the HiFiBerry sound card might not be detected anymore.

We analysed this issue and found a change in latest Linux 5.4 releases that caused this. The root cause is a different hardware description in the so-called “device tree”.

What is an overlay?

It’s basically a hardware description of the card. It allows Linux to load the correct sound card drivers. There are two ways where this is stored:

  • In the SD card – usually in /boot/overlays. These files will be loaded by adding dtoverlay=xxxx in /boot/config.txt
  • On the memory (EEPROM) on the sound card. These will be loaded automatically

What’s the issue?

The hardware description has changed a bit from Linux 4.x to the latest Linux 5.4 version. The overlay files located in /boot/config.txt have been updated to the new version. However, the configuration stored on the card is still for Linux 4.x. Therefore, automatic loaded of the driver won’t work anymore.

What do I have to do?

You need to configure the sound card in /boot/config.txt. Check out our configuration guide. However, to make sure, the configuration from the EEPROM isn’t loaded during startup, you have to the the line

force_eeprom_read=0

Can I re-program the memory on the sound card?

Yes. We will provide a flash utility in the future. However, it’s not needed. It will basically do the same as adding the dtoverlay line to /boot/config.txt.

When will updated cards be available in shops?

As Linux 4.19 is still commonly in use (even with our own HiFiBerryOS), we won’t change the default configuration in the EEPROM soon. Unfortunately it’s not possible to have setup that would work with both older and newer Linux kernels.

July 28, 2020

Subscribe to new blog posts