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:
- Apply patches to the 0.133+deb10u1 and create our fork for VyOS 1.3.
- 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.