Bug#725714: udev firmware loading does not work in the Debian installer
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
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
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
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
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
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
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
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
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
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
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
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