[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#725714: udev firmware loading does not work in the Debian installer



On Fri, Dec 13, 2013 at 12:12 AM, Andreas Cadhalpun
<andreas.cadhalpun@googlemail.com> wrote:
> On 12.12.2013 23:19, Kay Sievers wrote:
>> On Thu, Dec 12, 2013 at 10:58 PM, Michael Biebl <email@michaelbiebl.de>
>> wrote:
>>> This was removed upstream [1] and is highly unlikely to be added back.
>>> Especially considering that the user space firmware loader is scheduled
>>> to be removed sooner rather then later.
>>>
>>> This most likely means d-i needs to be updated to use some kind of
>>> different mechanism to detect missing firmware.
>>>
>>> Kay, what is the recommended approach nowadays to detect such missing
>>> firmware?
>>
>> There is no replacement for that. Userspace is no longer in the loop
>> any more regarding firmware loading, it's all the kernel's job only.
>> Hence, there will be no facility in udev for handling firmware, or
>> getting notified about that.
> According to Ben Hutchings the kernel still thinks udev is responsible for
> handling missing firmware.

Recent udev does not even have the code to handle firmware enabled.
It's gone since a while already.

>> The only possible solution would be to add explicit messages to the
>> kernel drivers in case a firmware is really *missing* and the device
>> does not just probe for stuff until it finds something.
>>
>> There are quite a lot devices which just look for *updates* and do not
>> need anything to function.
> In this case the WLAN devices really need the firmware to work, but since
> the firmware is non-free, it is not included in the Debian installer.

Which is not a technical problem, udev can or should try to solve.

>> Such an explicit message would probably use printk_emit() and pass
>> structured data with the filename and the ides from the kernel to
>> userspace, and on systemd systems the journal would pick up the
>> MESSAGE_ID and do something with it, or provide the data to other
>> consumers.

> The better approach would have been to write a replacement *before* dropping
> the udev missing-firmware handling.

There have been many technical reasons to let the kernel do the job,
and that is how it works today, and it works well and reliably.

> The Debian installer needs a way to load the firmware during installation,
> otherwise the netinst.iso is pretty useless for WLAN devices with non-free
> firmware.
> Since a majority of the WLAN devices need non-free firmware, just dropping
> this functionality without replacement is a serious regression.

It is not, only if firmware is not installed, which seem to be a
Debian-only problem but not a general one. Hence Debian needs to
adopt/patch the software to do what it needs, and should not ask
upstream to work around issues which seem to be a Debian-only problem.

The in-kernel firmware loader solved years old serious problems, and
it was worth to do it, and there is no reason to put back that fragile
hack, just to solve a non-technical problem.

> Therefore I ask you to re-enable it until a replacement is written.

Udev will never load firmware again, the entire idea to use the driver
core to create fake devices in userspace and let the kernel wait to
them to be handled, was wrong at so many aspects, it will not come
back from upstream udev.

Kay


Reply to: