Page MenuHomeVyOS Platform

initramfs-tools ignores firmware from updates directory
Closed, ResolvedPublicBUG

Description

Fort some devices adding a new or updated driver may be required. In this case, a common way to do this is to put kernel modules to the /lib/modules/<KERNEL_VERSION>/updates and firmware to /lib/firmware/updates/. This guarantees that the installed version will have precedence over in-kernel modules.

A simple example is NIC drivers.

The firmware search procedure is described in https://docs.kernel.org/driver-api/firmware/fw_search_path.html

The problem is that initramfs-tools with version < 0.137 ignore updates folder and in VyOS 1.3 we have now 0.133+deb10u1. The commit which adds proper firmware paths is here: https://salsa.debian.org/kernel-team/initramfs-tools/-/commit/857042c99134cc2aa5d2959def37d0ae28cd555e

There are two solutions:

  1. Apply patches to the 0.133+deb10u1 and create our fork for VyOS 1.3.
  2. Use initramfs-tools >= 0.137 version.

I prefer the second one. I tested VyOS 1.3 with initramfs-tools v0.140, from bullseye and it works fine.
From important changes between 0.133+deb10u1 and v0.140:

  • firmware support that we need
  • support for firmware for built-in modules in Linux 5.2+
  • better support for some classes of devices (without framebuffer, with f2fs, arm64 platforms, Mac)
  • improved fsck logic
  • more compression algorithms
  • improved panic= option processing
  • added a timeout to network devices initialization

I think it is safe to reuse v0.140 in VyOS 1.3.

Details

Difficulty level
Normal (likely a few hours)
Version
1.3.2
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)

Related Objects

Mentioned In
1.3.6