HardwareNewsOpen Source Software

Bug in AMD firmware causing systemd to break?

An interesting bug report was opened a couple of days ago in the public systemd repositories on GitHub. Interestingly the issue seems to break systemd, the default init system on most Linux distributions these days, when using an AMD Ryzen 9 processor.

The symptom? Several systemd processes would not successfully start and even a Linux boot would (in most cases) not correctly work. Logs would show similar entries to these:

Jan 08 21:47:40 archlinux systemd[1]: dev-ttyS27.device: Failed to set invocation ID for unit: File exists
Jan 08 21:47:40 archlinux systemd[1]: sys-devices-platform-serial8250-tty-ttyS27.device: Failed to set invocation ID for unit: File exists
Jan 08 21:47:40 archlinux systemd[1]: dev-ttyS29.device: Failed to set invocation ID for unit: File exists
Jan 08 21:47:40 archlinux systemd[1]: sys-devices-platform-serial8250-tty-ttyS29.device: Failed to set invocation ID for unit: File exists
Jan 08 21:47:40 archlinux systemd[1]: dev-ttyS28.device: Failed to set invocation ID for unit: File exists
Jan 08 21:47:40 archlinux systemd[1]: sys-devices-platform-serial8250-tty-ttyS28.device: Failed to set invocation ID for unit: File exists
Jan 08 21:47:40 archlinux systemd[1]: dev-ttyS3.device: Failed to set invocation ID for unit: File exists
Jan 08 21:47:40 archlinux systemd[1]: dev-ttyS31.device: Failed to set invocation ID for unit: File exists
Jan 08 21:49:03 office01 systemd[1]: sys-kernel-tracing.mount: Failed to set invocation ID for unit: File exists
Jan 08 21:49:03 office01 systemd[1]: Failed to mount Kernel Trace File System.

The discussion between developers first suspected a bug in systemd but the systemd author and main developer Lennart Poettering suspected a microcode bug in the AMD processor, whenever the processor would be instructed to generate random numbers using RDRAND.

A workaround for the user affected (running a Ryzen 9 5900X processor) was to start Linux with the following boot parameter: SYSTEMD_RDRAND=0.

Later in the discussion, the focus changes to the reporter's motherboard. Is this AMD Ryzen processor supported by the motherboard? The affected dmotherboard is a Gigabyte X570 I AORUS PRO WIFI and yes, the processor is listed in the CPU support table. However an important information was mentioned:

you claim to have F31B installed as your BIOS, which is not listed on the support page

User SantiagoTorres

Another user shades some light into the firmware numbering of Gigabyte motherboards:

Gigabyte labels unstable bios versions with letters. So F31b is the second test release for F31, and F31 with no letter is the final, much more recent, version.

User bearoso

Once the reporter replaced the current F31B firmware with the stable F31 version, the issues with systemd were reportedly gone.

Therefore: Fore once systemd is not to blame ;-). The bug, appearing in F31B firmware obviously was fixed in the stable F31 firmware. Unfortunately we were unable to find a changelog between Gigabyte's F31B and F31 versions, however our research indicates that Gigabyte detected themselve that F31B had an issue and pulled the release (source):

F31b was pulled and F31 will be out today.

User Undying
Claudio Kuenzler
Claudio has been writing way over 1000 articles on his own blog since 2008 already. He is fascinated by technology, especially Open Source Software. As a Senior Systems Engineer he has seen and solved a lot of problems - and writes about them.

Leave a reply

Your email address will not be published.

More in:Hardware