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

2013-12-12 Thread Andreas Cadhalpun

Control: reassign -1 udev 204-5

Hi,

On 12.12.2013 19:43, Ben Hutchings wrote:

Yes.  This is what is supposed to happen when firmware is missing:

1. The driver requests firmware.
2. The kernel tries to load a file under /lib/firmware, and fails.
(This is not implemented in the wheezy kernel.)
3. The kernel sends a request to udev to provide the firmware.
4. udev runs a firmware helper script, which records this request in
/run/udev/firmware-missing and then returns failure.
5. udev reports failure to the kernel.
6. The kernel logs the failure and reports it to the driver.

We know that step 6 has happened, and we can infer from that that
steps 1, 3 and 5 must have happened.  The problem is in step 4.


Since udev is responsible for the problematic step 4, I'm reassigning 
this bug to udev.


Best regards,
Andreas


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2013-12-12 Thread Andreas Cadhalpun

Hi,

On 12.12.2013 23:19, Kay Sievers wrote:
 On Thu, Dec 12, 2013 at 10:58 PM, Michael Biebl 
em...@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.


 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.


 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.

 Kay

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


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.

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

Best regards,
Andreas


--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2013-12-12 Thread Michael Biebl
Am 13.12.2013 00:12, schrieb Andreas Cadhalpun:
 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.
 Therefore I ask you to re-enable it until a replacement is written.

Could something like isenkram [1] be integrated into d-i and install
necessary (firmware) packages based on the modalias information?

Especially [2] looks like it could be a replacement.
That said, isenkram-autoinstall-firmware doesn't seem to use the
modalias info and instead greps through the modinfo output which looks
like a rather hackish approach on a cursory glance.

Kay, what's you opinion on something like this?

Michael


[1] http://anonscm.debian.org/gitweb/?p=collab-maint/isenkram.git;a=summary
[2]
http://anonscm.debian.org/gitweb/?p=collab-maint/isenkram.git;a=commitdiff;h=18d7085f4ca0ad4ea979b88cc14315f939d2d32c
-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?



signature.asc
Description: OpenPGP digital signature


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

2013-12-12 Thread Kay Sievers
On Fri, Dec 13, 2013 at 12:12 AM, Andreas Cadhalpun
andreas.cadhal...@googlemail.com wrote:
 On 12.12.2013 23:19, Kay Sievers wrote:
 On Thu, Dec 12, 2013 at 10:58 PM, Michael Biebl em...@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


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2013-12-12 Thread Kay Sievers
On Fri, Dec 13, 2013 at 12:26 AM, Michael Biebl em...@michaelbiebl.de wrote:
 Am 13.12.2013 00:12, schrieb Andreas Cadhalpun:
 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.
 Therefore I ask you to re-enable it until a replacement is written.

 Could something like isenkram [1] be integrated into d-i and install
 necessary (firmware) packages based on the modalias information?

 Especially [2] looks like it could be a replacement.
 That said, isenkram-autoinstall-firmware doesn't seem to use the
 modalias info and instead greps through the modinfo output which looks
 like a rather hackish approach on a cursory glance.

 Kay, what's you opinion on something like this?

It could work. The device modaliases of the running machine can
produce the list of modules that will be loaded on a machine. The
modules themselves carry the file names of the firmware files in the
module's metadata.

Kay


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2013-12-12 Thread Michael Biebl
Am 13.12.2013 00:26, schrieb Michael Biebl:
 Am 13.12.2013 00:12, schrieb Andreas Cadhalpun:
 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.
 Therefore I ask you to re-enable it until a replacement is written.
 
 Could something like isenkram [1] be integrated into d-i and install
 necessary (firmware) packages based on the modalias information?
 
 Especially [2] looks like it could be a replacement.
 That said, isenkram-autoinstall-firmware doesn't seem to use the
 modalias info and instead greps through the modinfo output which looks
 like a rather hackish approach on a cursory glance.

According to codesearch.d.n, hw-detect is the only tool using
/run/udev/firmware-missing. I'm inclined to re-assign this bug to
hw-detect and let the hw-detect maintainers decided how to handle this.
If something like the isenkram approach would be suitable for them


[1] http://codesearch.debian.net/search?q=firmware-missing

-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?



signature.asc
Description: OpenPGP digital signature


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

2013-12-12 Thread Michael Biebl
Am 13.12.2013 00:34, schrieb Michael Biebl:

 According to codesearch.d.n, hw-detect is the only tool using
 /run/udev/firmware-missing. I'm inclined to re-assign this bug to
 hw-detect and let the hw-detect maintainers decided how to handle this.
 If something like the isenkram approach would be suitable for them
 
 
 [1] http://codesearch.debian.net/search?q=firmware-missing
 

To be fair, there is also

http://sources.debian.net/src/gnome-settings-daemon/3.8.5-2/plugins/updates/gsd-updates-firmware.c?hl=50#L50

and related to that the relevant bits in gnome-packagekit.

See also
http://lists.freedesktop.org/archives/systemd-devel/2013-November/014771.html

But that thread just echoes what Kay already said, that user-space
firmware loading is deprecated and on it's way out.



-- 
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?



signature.asc
Description: OpenPGP digital signature


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

2013-12-12 Thread Kay Sievers
On Fri, Dec 13, 2013 at 12:34 AM, Michael Biebl em...@michaelbiebl.de wrote:
 Am 13.12.2013 00:26, schrieb Michael Biebl:
 Am 13.12.2013 00:12, schrieb Andreas Cadhalpun:
 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.
 Therefore I ask you to re-enable it until a replacement is written.

 Could something like isenkram [1] be integrated into d-i and install
 necessary (firmware) packages based on the modalias information?

 Especially [2] looks like it could be a replacement.
 That said, isenkram-autoinstall-firmware doesn't seem to use the
 modalias info and instead greps through the modinfo output which looks
 like a rather hackish approach on a cursory glance.

 According to codesearch.d.n, hw-detect is the only tool using
 /run/udev/firmware-missing. I'm inclined to re-assign this bug to
 hw-detect and let the hw-detect maintainers decided how to handle this.
 If something like the isenkram approach would be suitable for them

PackageKit used it too.

General note: the entire idea of blindly recording firmware requests
is flawed. It makes not much sense to make assumptions about drivers
and that the files they ask for are *missing*, they are not in many
cases.

Many drivers just request things to check for updates which in many
cases never exist. Or they request multiple files in a row, to fall
back to older versions they find.

The only sensible way to produce information about *missing* firmware
would be to add explicit messages to the kernel when things are really
*missing*. Blindly tracing firmware requests and guessing around never
really made sense.

Also: That all this is gone now is a side-effect of moving firmware
loading into the kernel where it belongs. There is nothing userspace
can do about, the information is just no longer available to
userspace.

Kay


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2013-12-12 Thread Kay Sievers
On Fri, Dec 13, 2013 at 12:42 AM, Michael Biebl em...@michaelbiebl.de wrote:
 Am 13.12.2013 00:34, schrieb Michael Biebl:

 See also
 http://lists.freedesktop.org/archives/systemd-devel/2013-November/014771.html

 But that thread just echoes what Kay already said, that user-space
 firmware loading is deprecated and on it's way out.

Right, it's gone, and upstream does not support it any more because it
is technically the wrong solution and in-kernel loading the only
supported option.

It can all pretty trivially be made to run in userspsce like it did
(unreliably in some cases) in the past, but the kernel and udev will
need to be patched to do that.

Kay


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



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

2013-12-12 Thread Ben Hutchings
On Fri, 2013-12-13 at 00:32 +0100, Kay Sievers wrote:
 On Fri, Dec 13, 2013 at 12:26 AM, Michael Biebl em...@michaelbiebl.de wrote:
  Am 13.12.2013 00:12, schrieb Andreas Cadhalpun:
  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.
  Therefore I ask you to re-enable it until a replacement is written.
 
  Could something like isenkram [1] be integrated into d-i and install
  necessary (firmware) packages based on the modalias information?
 
  Especially [2] looks like it could be a replacement.
  That said, isenkram-autoinstall-firmware doesn't seem to use the
  modalias info and instead greps through the modinfo output which looks
  like a rather hackish approach on a cursory glance.
 
  Kay, what's you opinion on something like this?
 
 It could work. The device modaliases of the running machine can
 produce the list of modules that will be loaded on a machine. The
 modules themselves carry the file names of the firmware files in the
 module's metadata.

We use that static approach in initramfs-tools and it seems to work
pretty well, though I don't know how many people actually depend on
firmware in their initramfs.  I've occasionally had to fix the metadata
in drivers.

Ben.

-- 
Ben Hutchings
Knowledge is power.  France is bacon.


signature.asc
Description: This is a digitally signed message part


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

2013-12-12 Thread Ben Hutchings
On Fri, 2013-12-13 at 00:28 +0100, Kay Sievers wrote:
[...]
  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.
[...]

For the record, 3.12 still has:

config FW_LOADER_USER_HELPER
bool Fallback user-helper invocation for firmware loading
depends on FW_LOADER
default y

But at this point I suppose there is no point leaving it enabled.

Ben.

-- 
Ben Hutchings
Knowledge is power.  France is bacon.


signature.asc
Description: This is a digitally signed message part


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

2013-12-12 Thread Kay Sievers
On Fri, Dec 13, 2013 at 4:29 AM, Ben Hutchings b...@decadent.org.uk wrote:
 On Fri, 2013-12-13 at 00:28 +0100, Kay Sievers wrote:
 [...]
  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.
 [...]

 For the record, 3.12 still has:

 config FW_LOADER_USER_HELPER
 bool Fallback user-helper invocation for firmware loading
 depends on FW_LOADER
 default y

 But at this point I suppose there is no point leaving it enabled.

Yeah, not sure, if it could be removed.
Fedora has that option disabled since a while.

Kay


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org