4.14.0: built-in drivers now require built-in firmware?

From: Bob Tracy
Date: Sat Dec 02 2017 - 01:39:15 EST


The subject question is due to trouble encountered on a DEC Alpha
getting the 4.14.0 kernel to see the machine's SCSI disks at boot time.

I'm using the standard kernel source tree, and have long made it a
practice to build-in the drivers for devices required at boot time (such
as for the video card and local disks). For as far back as I can
remember, I've had to build-in the firmware for the video card to get
the console working properly. Up through kernel version 4.13, I had not
had to build-in the firmware for my machine's Qlogic ISP1020 host
adapter.

Beginning with 4.14, the host adapter was no longer being detected and
initialized. Adding the appropriate firmware file to the list of
built-in firmware fixed the issue.

Is there a way to adjust the kernel configuration process to account for
this evidently new dependency? The immediate problem I see is the
mapping between drivers and associated firmware files is not necessarily
one-to-one. In the case of the "qla1280" driver, there are three
associated firmware images: the image corresponding to the host adapter
present at boot time is required to be built-in if the "qla1280" driver
is built-in. The "radeon" video driver has a *much* longer list of
firmware files to select from.

Since the presence of appropriate firmware files on the kernel build
system isn't guaranteed, perhaps the best thing to do is have the
configuration script/program issue a warning message about firmware for
devices whose drivers are built-in rather than built as modules.

This is presumably a non-issue for people who run distro-provided
kernels where everything is modularized.

--Bob