Message ID | 325b19bb936d7ebae11edad86aac8f0931e8abd9.1375719828.git.luto@amacapital.net (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Op 05-08-13 18:29, Andy Lutomirski schreef: > The systemd commit below can delay firmware loading by multiple > minutes if CONFIG_FW_LOADER_USER_HELPER=y. Unfortunately no one > noticed that the systemd-udev change would break new kernels as well > as old kernels. > > Since the kernel apparently can't count on reasonable userspace > support, turn this thing off by default. > > commit a3bd8447be4ea2ce230eb8ae0e815c04d85fa15a > Author: Tom Gundersen <teg@jklm.no> > Date: Mon Mar 18 15:12:18 2013 +0100 > > udev: make firmware loading optional and disable by default > > Distros that whish to support old kernels should set > --with-firmware-dirs="/usr/lib/firmware/updates:/usr/lib/firmware" > to retain the old behaviour. > methinks this patch should be reverted then, or a stub should be added to udev to always fail firmware loading so timeouts don't occur. ~Maarten -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Aug 6, 2013 at 10:20 AM, Maarten Lankhorst <m.b.lankhorst@gmail.com> wrote: > Op 05-08-13 18:29, Andy Lutomirski schreef: >> The systemd commit below can delay firmware loading by multiple >> minutes if CONFIG_FW_LOADER_USER_HELPER=y. Unfortunately no one >> noticed that the systemd-udev change would break new kernels as well >> as old kernels. >> >> Since the kernel apparently can't count on reasonable userspace >> support, turn this thing off by default. >> >> commit a3bd8447be4ea2ce230eb8ae0e815c04d85fa15a >> Author: Tom Gundersen <teg@jklm.no> >> Date: Mon Mar 18 15:12:18 2013 +0100 >> >> udev: make firmware loading optional and disable by default >> >> Distros that whish to support old kernels should set >> --with-firmware-dirs="/usr/lib/firmware/updates:/usr/lib/firmware" >> to retain the old behaviour. >> > methinks this patch should be reverted then, Well, all the code is still there, so it can be enabled if anyone wants it. > or a stub should be added to udev to always fail firmware loading so timeouts don't occur. I think the only use (if any) of a userspace firmware loader would be for anyone who wants a custom one (i.e., not udev), so we shouldn't just fail the loading from udev unconditionally. How about we just improve the udev documentation a bit, similar to Andy's kernel patch? Cheers, Tom -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Aug 6, 2013 at 11:11 AM, Tom Gundersen <teg@jklm.no> wrote: > On Tue, Aug 6, 2013 at 10:20 AM, Maarten Lankhorst > <m.b.lankhorst@gmail.com> wrote: >> Op 05-08-13 18:29, Andy Lutomirski schreef: >>> The systemd commit below can delay firmware loading by multiple >>> minutes if CONFIG_FW_LOADER_USER_HELPER=y. Unfortunately no one >>> noticed that the systemd-udev change would break new kernels as well >>> as old kernels. >>> >>> Since the kernel apparently can't count on reasonable userspace >>> support, turn this thing off by default. >>> >>> commit a3bd8447be4ea2ce230eb8ae0e815c04d85fa15a >>> Author: Tom Gundersen <teg@jklm.no> >>> Date: Mon Mar 18 15:12:18 2013 +0100 >>> >>> udev: make firmware loading optional and disable by default >>> >>> Distros that whish to support old kernels should set >>> --with-firmware-dirs="/usr/lib/firmware/updates:/usr/lib/firmware" >>> to retain the old behaviour. >>> >> methinks this patch should be reverted then, > > Well, all the code is still there, so it can be enabled if anyone wants it. > >> or a stub should be added to udev to always fail firmware loading so timeouts don't occur. > > I think the only use (if any) of a userspace firmware loader would be > for anyone who wants a custom one (i.e., not udev), so we shouldn't > just fail the loading from udev unconditionally. > > How about we just improve the udev documentation a bit, similar to > Andy's kernel patch? Sorry, I should first have checked. We already document this in the README: > Userspace firmware loading is deprecated, will go away, and > sometimes causes problems: > CONFIG_FW_LOADER_USER_HELPER=n -t -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Aug 6, 2013 at 2:17 AM, Tom Gundersen <teg@jklm.no> wrote: > On Tue, Aug 6, 2013 at 11:11 AM, Tom Gundersen <teg@jklm.no> wrote: >> On Tue, Aug 6, 2013 at 10:20 AM, Maarten Lankhorst >> <m.b.lankhorst@gmail.com> wrote: >>> Op 05-08-13 18:29, Andy Lutomirski schreef: >>>> The systemd commit below can delay firmware loading by multiple >>>> minutes if CONFIG_FW_LOADER_USER_HELPER=y. Unfortunately no one >>>> noticed that the systemd-udev change would break new kernels as well >>>> as old kernels. >>>> >>>> Since the kernel apparently can't count on reasonable userspace >>>> support, turn this thing off by default. >>>> >>>> commit a3bd8447be4ea2ce230eb8ae0e815c04d85fa15a >>>> Author: Tom Gundersen <teg@jklm.no> >>>> Date: Mon Mar 18 15:12:18 2013 +0100 >>>> >>>> udev: make firmware loading optional and disable by default >>>> >>>> Distros that whish to support old kernels should set >>>> --with-firmware-dirs="/usr/lib/firmware/updates:/usr/lib/firmware" >>>> to retain the old behaviour. >>>> >>> methinks this patch should be reverted then, >> >> Well, all the code is still there, so it can be enabled if anyone wants it. >> >>> or a stub should be added to udev to always fail firmware loading so timeouts don't occur. >> >> I think the only use (if any) of a userspace firmware loader would be >> for anyone who wants a custom one (i.e., not udev), so we shouldn't >> just fail the loading from udev unconditionally. >> >> How about we just improve the udev documentation a bit, similar to >> Andy's kernel patch? > > Sorry, I should first have checked. We already document this in the README: > >> Userspace firmware loading is deprecated, will go away, and >> sometimes causes problems: >> CONFIG_FW_LOADER_USER_HELPER=n TBH, the udev README is the last thing I'm going to check to figure out why I don't have wifi for a couple minutes after boot. Also, the message is missing the point. It's not that it's deprecated and sometimes causes problems -- it's that udev *changed behavior* and breaks your system if you have CONFIG_FW_LOADER_USER_HELPER=y. If udev logged something (for a couple of years), that would be a different story. --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Aug 06, 2013 at 11:17:17AM +0200, Tom Gundersen wrote: > On Tue, Aug 6, 2013 at 11:11 AM, Tom Gundersen <teg@jklm.no> wrote: > > On Tue, Aug 6, 2013 at 10:20 AM, Maarten Lankhorst > > <m.b.lankhorst@gmail.com> wrote: > >> Op 05-08-13 18:29, Andy Lutomirski schreef: > >>> The systemd commit below can delay firmware loading by multiple > >>> minutes if CONFIG_FW_LOADER_USER_HELPER=y. Unfortunately no one > >>> noticed that the systemd-udev change would break new kernels as well > >>> as old kernels. > >>> > >>> Since the kernel apparently can't count on reasonable userspace > >>> support, turn this thing off by default. > >>> > >>> commit a3bd8447be4ea2ce230eb8ae0e815c04d85fa15a > >>> Author: Tom Gundersen <teg@jklm.no> > >>> Date: Mon Mar 18 15:12:18 2013 +0100 > >>> > >>> udev: make firmware loading optional and disable by default > >>> > >>> Distros that whish to support old kernels should set > >>> --with-firmware-dirs="/usr/lib/firmware/updates:/usr/lib/firmware" > >>> to retain the old behaviour. > >>> > >> methinks this patch should be reverted then, > > > > Well, all the code is still there, so it can be enabled if anyone wants it. > > > >> or a stub should be added to udev to always fail firmware loading so timeouts don't occur. > > > > I think the only use (if any) of a userspace firmware loader would be > > for anyone who wants a custom one (i.e., not udev), so we shouldn't > > just fail the loading from udev unconditionally. > > > > How about we just improve the udev documentation a bit, similar to > > Andy's kernel patch? > > Sorry, I should first have checked. We already document this in the README: > > > Userspace firmware loading is deprecated, will go away, and > > sometimes causes problems: > > CONFIG_FW_LOADER_USER_HELPER=n ...And this patch is making the kernel default to the correct behavior, instead of the now-broken-by-udev behavior. I'm not sure I see the issue with it? :-) (Add me to the list of people that think udev is broken too, fwiw. But let's at least not leave *both* sides in a broken-by-default state.) -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Aug 6, 2013 at 5:24 PM, Tom Gundersen <teg@jklm.no> wrote: > > On 6 Aug 2013 18:32, "Bryan Kadzban" <bryan@kadzban.is-a-geek.net> wrote: >> >> On Tue, Aug 06, 2013 at 11:17:17AM +0200, Tom Gundersen wrote: >> > On Tue, Aug 6, 2013 at 11:11 AM, Tom Gundersen <teg@jklm.no> wrote: >> > > On Tue, Aug 6, 2013 at 10:20 AM, Maarten Lankhorst >> > > <m.b.lankhorst@gmail.com> wrote: >> > >> Op 05-08-13 18:29, Andy Lutomirski schreef: >> > >>> The systemd commit below can delay firmware loading by multiple >> > >>> minutes if CONFIG_FW_LOADER_USER_HELPER=y. Unfortunately no one >> > >>> noticed that the systemd-udev change would break new kernels as well >> > >>> as old kernels. >> > >>> >> > >>> Since the kernel apparently can't count on reasonable userspace >> > >>> support, turn this thing off by default. >> > >>> >> > >>> commit a3bd8447be4ea2ce230eb8ae0e815c04d85fa15a >> > >>> Author: Tom Gundersen <teg@jklm.no> >> > >>> Date: Mon Mar 18 15:12:18 2013 +0100 >> > >>> >> > >>> udev: make firmware loading optional and disable by default >> > >>> >> > >>> Distros that whish to support old kernels should set >> > >>> >> > >>> --with-firmware-dirs="/usr/lib/firmware/updates:/usr/lib/firmware" >> > >>> to retain the old behaviour. >> > >>> >> > >> methinks this patch should be reverted then, >> > > >> > > Well, all the code is still there, so it can be enabled if anyone >> > > wants it. >> > > >> > >> or a stub should be added to udev to always fail firmware loading so >> > >> timeouts don't occur. >> > > >> > > I think the only use (if any) of a userspace firmware loader would be >> > > for anyone who wants a custom one (i.e., not udev), so we shouldn't >> > > just fail the loading from udev unconditionally. >> > > >> > > How about we just improve the udev documentation a bit, similar to >> > > Andy's kernel patch? >> > >> > Sorry, I should first have checked. We already document this in the >> > README: >> > >> > > Userspace firmware loading is deprecated, will go away, and >> > > sometimes causes problems: >> > > CONFIG_FW_LOADER_USER_HELPER=n >> >> ...And this patch is making the kernel default to the correct behavior, >> instead of the now-broken-by-udev behavior. >> >> I'm not sure I see the issue with it? :-) > > Oh yeah this patch is totally the right thing to do, I was just arguing that > there is nothing to be done on the udev side. > >> (Add me to the list of people that think udev is broken too, fwiw. But >> let's at least not leave *both* sides in a broken-by-default state.) > > Well I don't think it is too much to ask that the kernel and udev should be > configured in a consistent way. Especially as thing still work even if you > get it wrong, albeit with a delay. Except that the current defaults are inconsistent and there is no explanation anywhere in the logs when this is screwed up. --Andy -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/base/Kconfig b/drivers/base/Kconfig index 5daa259..de3903e 100644 --- a/drivers/base/Kconfig +++ b/drivers/base/Kconfig @@ -146,13 +146,20 @@ config EXTRA_FIRMWARE_DIR config FW_LOADER_USER_HELPER bool "Fallback user-helper invocation for firmware loading" depends on FW_LOADER - default y + default n help This option enables / disables the invocation of user-helper (e.g. udev) for loading firmware files as a fallback after the - direct file loading in kernel fails. The user-mode helper is - no longer required unless you have a special firmware file that - resides in a non-standard path. + direct file loading in kernel fails. + + Since March 2013, a default udev build does not understand + firmware loading requests. These udev versions will not + even indicate failure; instead they cause long timeouts. + This can dramatically slow down the boot process. + + Say Y only if you have special firmware-loading requirements + and if you have a non-standard helper that will handle these + requests. config DEBUG_DRIVER bool "Driver Core verbose debug messages" diff --git a/drivers/firmware/Kconfig b/drivers/firmware/Kconfig index 07478728..9387630 100644 --- a/drivers/firmware/Kconfig +++ b/drivers/firmware/Kconfig @@ -64,7 +64,6 @@ config DELL_RBU tristate "BIOS update support for DELL systems via sysfs" depends on X86 select FW_LOADER - select FW_LOADER_USER_HELPER help Say m if you want to have the option of updating the BIOS for your DELL system. Note you need a Dell OpenManage or Dell Update package (DUP)