Message ID | 200904182153.n3ILrP6j027453@pilspetsen.it.uu.se |
---|---|
State | Not Applicable, archived |
Delegated to: | David Miller |
Headers | show |
From: Mikael Pettersson <mikpe@it.uu.se> Date: Sat, 18 Apr 2009 23:53:25 +0200 (MEST) > The ixp4xx_eth driver for my IXP420 XScale box (Synology DS101) > worked fine in kernel 2.6.29. Now trying to boot 2.6.30-rc2 I'm > greeted with the following failure during init: > > Bringing up interface eth0: RTNETLINK answers: No such file or directory > Failed to bring up eth0. > [FAILED] > > There's a fairly long (at least 10 seconds) delay between the 'Bringing up' > message and the RTNETLINK error. > > A diff between the 2.6.29 and 2.6.30-rc2 boot logs indicates that > the firmware doesn't get loaded: Please make sure CONFIG_FIRMWARE_IN_KERNEL is set in your configuration if this driver is being built statically into your kernel. Otherwise, if modular, make sure the firmware files get installed into the correct location and are available in the filesystem when the driver loads. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
David Miller writes: > From: Mikael Pettersson <mikpe@it.uu.se> > Date: Sat, 18 Apr 2009 23:53:25 +0200 (MEST) > > > The ixp4xx_eth driver for my IXP420 XScale box (Synology DS101) > > worked fine in kernel 2.6.29. Now trying to boot 2.6.30-rc2 I'm > > greeted with the following failure during init: > > > > Bringing up interface eth0: RTNETLINK answers: No such file or directory > > Failed to bring up eth0. > > [FAILED] > > > > There's a fairly long (at least 10 seconds) delay between the 'Bringing up' > > message and the RTNETLINK error. > > > > A diff between the 2.6.29 and 2.6.30-rc2 boot logs indicates that > > the firmware doesn't get loaded: > > Please make sure CONFIG_FIRMWARE_IN_KERNEL is set in your > configuration if this driver is being built statically > into your kernel. ixp4xx_eth is built as a module and I have CONFIG_FIRMWARE_IN_KERNEL unset. > Otherwise, if modular, make sure the firmware files get installed into > the correct location and are available in the filesystem when the > driver loads. The firmware isn't shipped with the kernel but is something users have to download from Intel, build, and install themselves; once installed they work across kernel versions. The files reside in /lib/firmware/'s top-level directory, and they are available since firmware loading (triggered by init's attempt to up eth0) occurs after / has been mounted. My userspace uses oldish firmware-aware hotplug since udev's too heavy-weight. This all works with 2.6.29 and older 2.6.2x kernels. I'll do a bisect. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Mikael Pettersson <mikpe@it.uu.se> writes: > The ixp4xx_eth driver for my IXP420 XScale box (Synology DS101) > worked fine in kernel 2.6.29. Now trying to boot 2.6.30-rc2 I'm > greeted with the following failure during init: > > Bringing up interface eth0: RTNETLINK answers: No such file or directory > Failed to bring up eth0. > [FAILED] Thanks for the info, will look at it.
Mikael Pettersson writes: > David Miller writes: > > From: Mikael Pettersson <mikpe@it.uu.se> > > Date: Sat, 18 Apr 2009 23:53:25 +0200 (MEST) > > > > > The ixp4xx_eth driver for my IXP420 XScale box (Synology DS101) > > > worked fine in kernel 2.6.29. Now trying to boot 2.6.30-rc2 I'm > > > greeted with the following failure during init: > > > > > > Bringing up interface eth0: RTNETLINK answers: No such file or directory > > > Failed to bring up eth0. > > > [FAILED] > > > > > > There's a fairly long (at least 10 seconds) delay between the 'Bringing up' > > > message and the RTNETLINK error. > > > > > > A diff between the 2.6.29 and 2.6.30-rc2 boot logs indicates that > > > the firmware doesn't get loaded: > > > > Please make sure CONFIG_FIRMWARE_IN_KERNEL is set in your > > configuration if this driver is being built statically > > into your kernel. > > ixp4xx_eth is built as a module and I have CONFIG_FIRMWARE_IN_KERNEL unset. > > > Otherwise, if modular, make sure the firmware files get installed into > > the correct location and are available in the filesystem when the > > driver loads. > > The firmware isn't shipped with the kernel but is something users have to > download from Intel, build, and install themselves; once installed they work > across kernel versions. The files reside in /lib/firmware/'s top-level > directory, and they are available since firmware loading (triggered by init's > attempt to up eth0) occurs after / has been mounted. My userspace uses oldish > firmware-aware hotplug since udev's too heavy-weight. > > This all works with 2.6.29 and older 2.6.2x kernels. > > I'll do a bisect. Bisection identified Arjan's f520360d93cdc37de5d972dac4bf3bdef6a7f6a7 "kobject: don't block for each kobject_uevent" as the culprit. Hugh Dickins reverted that change a few days ago in commit 05f54c13cd0c33694eec39a265475c5d6cf223cf, noting that it was buggy and broke CONFIG_UEVENT_HELPER_PATH by prematurely releasing memory needed when exec:ing the helper program. I tested 2.6.30-rc2 + Hugh's patch and with that everything works again. Krzysztof: you can relax, ixp4xx_eth was just an innocent bystander. Hugh: thanks for the revert, consider this a late Acked-by. /Mikael -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
--- dmesg-2.6.29 2009-04-18 23:26:30.000000000 +0200 +++ dmesg-2.6.30-rc2 2009-04-18 23:24:03.000000000 +0200 @@ -221,11 +222,9 @@ kjournald starting. Commit interval 5 seconds EXT3 FS on sda8, internal journal EXT3-fs: mounted filesystem with ordered data mode. -net eth0: firmware: requesting NPE-C -NPE-C: firmware functionality 0x0, revision 0x2:1 -NET: Registered protocol family 17 -eth0: link up, speed 100 Mb/s, full duplex Adding 2000336k swap on /dev/sda5. Priority:-1 extents:1 across:2000336k +NET: Registered protocol family 17 +net eth0: firmware: requesting NPE-C RPC: Registered udp transport module. RPC: Registered tcp transport module. warning: `dbus-daemon' uses 32-bit capabilities (legacy support in use)