Skip to main content
Topic: Latest linux-firmware upgrade breaks support for older kernels (Read 834 times) previous topic - next topic
0 Members and 3 Guests are viewing this topic.

Latest linux-firmware upgrade breaks support for older kernels

I upgraded to the newer version yesterday, but it's broken backwards compatibility with older kernels, it used to be the case you could go back years, much further than what I am using below. I don't know if this is some new intentional enforced security measure or an error.

linux-firmware-20230625.ee91452d-3-any.pkg.tar.zst
linux-firmware-20230625.ee91452d-4-any.pkg.tar.zst

Code: [Select]
$ uname -r
5.15.12-artix1-1
$ iw dev
$ sudo dmesg |grep -i firmware
[    0.131860] Spectre V2 : Enabling Restricted Speculation for firmware calls
[    0.200977] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    1.365924] i915 0000:00:02.0: Direct firmware load for i915/skl_dmc_ver1_27.bin failed with error -2
[    1.365928] i915 0000:00:02.0: [drm] Failed to load DMC firmware i915/skl_dmc_ver1_27.bin. Disabling runtime power management.
[    1.365930] i915 0000:00:02.0: [drm] DMC firmware homepage: https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/tree/i915
[    2.813528] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    3.072022] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-36.ucode failed with error -2
[    3.072111] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-35.ucode failed with error -2
[    3.072192] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-34.ucode failed with error -2
[    3.072273] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-33.ucode failed with error -2
[    3.072352] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-32.ucode failed with error -2
[    3.072429] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-31.ucode failed with error -2
[    3.072506] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-30.ucode failed with error -2
[    3.072583] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-29.ucode failed with error -2
[    3.072660] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-28.ucode failed with error -2
[    3.072737] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-27.ucode failed with error -2
[    3.072828] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-26.ucode failed with error -2
[    3.072903] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-25.ucode failed with error -2
[    3.072980] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-24.ucode failed with error -2
[    3.073060] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-23.ucode failed with error -2
[    3.073139] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-8000C-22.ucode failed with error -2
[    3.073148] iwlwifi 0000:01:00.0: no suitable firmware found!
[    3.073169] iwlwifi 0000:01:00.0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git


$ uname -r
6.4.2-zen1-1-zen
$ iw dev
phy#0
        Interface wlan0
                ifindex 2
                wdev 0x1
                addr 28:16:ad:13:5d:c6
                type managed
                txpower 0.00 dBm
                multicast TXQ:
                        qsz-byt qsz-pkt flows   drops   marks   overlmt hashcol tx-bytes        tx-packets
                        0       0       0       0       0       0       0       0               0
$ sudo dmesg |grep -i firmware
[    0.228692] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[    1.841944] i915 0000:00:02.0: [drm] Finished loading DMC firmware i915/skl_dmc_ver1_27.bin (v1.27)
[    4.673522] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    4.798026] iwlwifi 0000:01:00.0: loaded firmware version 36.ca7b901d.0 8000C-36.ucode op_mode iwlmvm



Re: Latest linux-firmware upgrade breaks support for older kernels

Reply #2
That's what happened using a Dell E7470 - I haven't tried other machines though. I did find some recent mentions online of kernel changes that might relate to the "Enabling Restricted Speculation" part:
https://www.phoronix.com/news/Red-Hat-Disable-IBRS-When-Idle
That article mentions the effect on a Xeon Skylake CPU, and an E7470 has an Intel i7-6600U Skylake CPU of that era. Could there have been related changes that affected the firmware package? I don't know.

Re: Latest linux-firmware upgrade breaks support for older kernels

Reply #3
You can try quickly with the lts branch, here you can find 5.15 and 5.10 https://download.opensuse.org/repositories/home:/curb:/ArchLinux/Arch/x86_64/
Too bad he doesn't build the firmware too, just kernel and headers, but should do, and it must be different from eol stuff I think.

Re: Latest linux-firmware upgrade breaks support for older kernels

Reply #4
I was using old kernels from here:
https://archive.artixlinux.org/packages/l/linux/
This is useful for finding when a problem started, and generally a better option for testing because other kernel builds can bring in issues because of different config to Artix, even closely related distros like Arch may not be identical. Now perhaps the firmware package will need to be downgraded in future along with the kernel to go back beyond some point if this is an intentional change. I tried that same kernel version on an M4500 and got the same result of no firmware being loaded, but without the Restricted Speculation error, so I think this must be a fairly widespread effect as that has a first generation i7 CPU and 2 different wifi adapters and neither loaded firmware with the latest linux-firmware package and old kernel.

Re: Latest linux-firmware upgrade breaks support for older kernels

Reply #5
Found the reason, xz compression has been swapped for zstd:
https://bugs.archlinux.org/task/78892

Kernels older than 5.19 need  linux-firmware-20230625.ee91452d-3-any.pkg.tar.zst and linux-firmware-whence-20230625.ee91452d-3-any.pkg.tar.zst or older unless you build your own modified package. Although these are not "supported" versions it's worth knowing about this change, as there are unofficial repos of old kernels and AUR packages that will be affected, and I don't see any announcement on the Arch news page.


Re: Latest linux-firmware upgrade breaks support for older kernels

Reply #7
It seems to boot fine in UEFI mode using the latest BIOS version, 1.36.3, without needing that workaround, unless I'm misunderstanding it's purpose. I had to go into the setup menu to add an entry to get it to find Artix Grub initially, the method was a bit obscure but I found instructions online from some Dell website guide. Interesting information though.
Checking the wiki page history, that advice was written before 1.36.3 was released:
 21:22, 25 January 2021‎ Hydranix talk contribs‎ 3,281 bytes +506‎ added workaround for failure to boot in UEFI mode
Dell BIOS update: 1.36.3 Release date 07 Nov 2022