diff options
| author | David Cantrell <dcantrell@redhat.com> | 2007-08-30 17:11:34 +0000 |
|---|---|---|
| committer | David Cantrell <dcantrell@redhat.com> | 2007-08-30 17:11:34 +0000 |
| commit | a8bb810e9eeefca20473051fef8a759105ff6c4e (patch) | |
| tree | b8ad5c69c66dfe47d3115f1428ee0c1e157d446c | |
| parent | 01a7ca6925a777d56b5501d100ed5488cdad3ae1 (diff) | |
* loader2/net.c (chooseNetworkInterface): Skip devices that do not
have firmware loaded (#251941).
* scripts/upd-instroot: Add *-firmware to PACKAGES for now. We'll
change this later once the kernel provides us with more
info (#177452).
* scripts/mk-images (makeinitrd): Remove arch test for copying over
firmware files. Just check the module list and copy firmware, also
add atmel and iwl4965 (#177452).
| -rw-r--r-- | ChangeLog | 17 | ||||
| -rw-r--r-- | loader2/net.c | 13 | ||||
| -rwxr-xr-x | scripts/mk-images | 59 | ||||
| -rwxr-xr-x | scripts/upd-instroot | 6 |
4 files changed, 64 insertions, 31 deletions
@@ -1,3 +1,16 @@ +2007-08-30 David Cantrell <dcantrell@redhat.com> + + * loader2/net.c (chooseNetworkInterface): Skip devices that do not + have firmware loaded (#251941). + + * scripts/upd-instroot: Add *-firmware to PACKAGES for now. We'll + change this later once the kernel provides us with more + info (#177452). + + * scripts/mk-images (makeinitrd): Remove arch test for copying over + firmware files. Just check the module list and copy firmware, also + add atmel and iwl4965 (#177452). + 2007-08-29 Chris Lumens <clumens@redhat.com> * kickstart.py (Network): Inherit from the correct pykickstart @@ -19,10 +32,10 @@ 2007-08-27 David Cantrell <dcantrell@redhat.com> * scripts/upd-instroot: Add wifi firmware packages to i386/x86_64 - instroot list. + instroot list (#177452). * scripts/mk-images (makeinitrd): Copy firmware files over if we - have them and if we are including the driver. + have them and if we are including the driver (#177452). 2007-08-27 Jeremy Katz <katzj@redhat.com> diff --git a/loader2/net.c b/loader2/net.c index 227ed9b0d..720b54c8b 100644 --- a/loader2/net.c +++ b/loader2/net.c @@ -1727,6 +1727,13 @@ int chooseNetworkInterface(struct loaderData_s * loaderData) { for (i = 0; devs[i]; i++) { if (!devs[i]->device) continue; + + /* if kudzu hands us a device name of 'eth', we lack firmware */ + /* skip the device as an option for installation (#251941) */ + if ((strlen(devs[i]->device) == 3) && + (!strncmp(devs[i]->device, "eth", 3))) + continue; + if (devs[i]->desc) { deviceNames[deviceNums] = alloca(strlen(devs[i]->device) + strlen(devs[i]->desc) + 4); @@ -1734,12 +1741,14 @@ int chooseNetworkInterface(struct loaderData_s * loaderData) { devs[i]->device, devs[i]->desc); if (strlen(deviceNames[deviceNums]) > max) max = strlen(deviceNames[deviceNums]); - devices[deviceNums++] = devs[i]->device; + devices[deviceNums] = devs[i]->device; } else { devices[deviceNums] = devs[i]->device; - deviceNames[deviceNums++] = devs[i]->device; + deviceNames[deviceNums] = devs[i]->device; } + deviceNums++; + /* this device has been set and we don't really need to ask * about it again... */ if (loaderData->netDev && (loaderData->netDev_set == 1)) { diff --git a/scripts/mk-images b/scripts/mk-images index 80c6d171f..e1276b23a 100755 --- a/scripts/mk-images +++ b/scripts/mk-images @@ -585,30 +585,41 @@ makeinitrd() { cp $IMGPATH/usr/sbin/cmsfs* $MBD_DIR/sbin/ fi - if [ "$BUILDARCH" = "i386" -o "$BUILDARCH" = "x86_64" ]; then - for module in $INITRDMODULES ; do - case $module in - ipw2100) - mkdir -p $MBD_DIR/lib/firmware - cp $IMGPATH/lib/firmware/ipw2100* $MBD_DIR/lib/firmware - ;; - ipw2200) - mkdir -p $MBD_DIR/lib/firmware - cp $IMGPATH/lib/firmware/ipw-2.4* $MBD_DIR/lib/firmware - cp $IMGPATH/lib/firmware/ipw2200* $MBD_DIR/lib/firmware - ;; - iwl3945) - mkdir -p $MBD_DIR/lib/firmware - cp $IMGPATH/lib/firmware/iwlwifi-3945* $MBD_DIR/lib/firmware - ;; - zd1211) - mkdir -p $MBD_DIR/lib/firmware/zd1211 - cp $IMGPATH/lib/firmware/zd1211/* \ - $MBD_DIR/lib/firmware/zd1211 - ;; - esac - done - fi + # Copy in driver firmware we want during installation. NOTE: This isn't + # the ideal solution, but we'll do this for now. What we really want is + # for the kernel modules to include a modinfo field that names the firmware + # file we should have. If we can get that it would make it even easier to + # push the kernel people to depend on the firmware packages in the kernel, + # but we have to take small steps first. + for module in $INITRDMODULES ; do + case $module in + ipw2100) + mkdir -p $MBD_DIR/lib/firmware + cp $IMGPATH/lib/firmware/ipw2100* $MBD_DIR/lib/firmware + ;; + ipw2200) + mkdir -p $MBD_DIR/lib/firmware + cp $IMGPATH/lib/firmware/ipw-2.4* $MBD_DIR/lib/firmware + cp $IMGPATH/lib/firmware/ipw2200* $MBD_DIR/lib/firmware + ;; + iwl3945) + mkdir -p $MBD_DIR/lib/firmware + cp $IMGPATH/lib/firmware/iwlwifi-3945* $MBD_DIR/lib/firmware + ;; + iwl4965) + mkdir -p $MBD_DIR/lib/firmware + cp $IMGPATH/lib/firmware/iwlwifi-4965* $MBD_DIR/lib/firmware + ;; + atmel) + mkdir -p $MBD_DIR/lib/firmware + cp $IMGPATH/lib/firmware/atmel_*.bin $MBD_DIR/lib/firmware + ;; + zd1211rw) + mkdir -p $MBD_DIR/lib/firmware/zd1211 + cp $IMGPATH/lib/firmware/zd1211/* $MBD_DIR/lib/firmware/zd1211 + ;; + esac + done if [ -n "$INITRDMODULES" ]; then MODSET=`expandModuleSet "$INITRDMODULES"` diff --git a/scripts/upd-instroot b/scripts/upd-instroot index 0b2b0dec6..ffe3b00fd 100755 --- a/scripts/upd-instroot +++ b/scripts/upd-instroot @@ -252,11 +252,11 @@ PACKAGES="glibc glibc-common setup openssl python newt slang libselinux yum-metadata-parser gfs2-utils libvolume_id nash yum-fedorakmod libdhcp libnl libdhcp6client libdhcp4client newt-python device-mapper device-mapper-libs dmraid keyutils-libs libsemanage-python - python-pyblock mkinitrd libbdevid libbdevid-python nss nspr" + python-pyblock mkinitrd libbdevid libbdevid-python nss nspr + *-firmware" if [ $ARCH = i386 -o $ARCH = x86_64 ]; then - PACKAGES="$PACKAGES pcmciautils ipw2100-firmware ipw2200-firmware - iwl3945-firmware zd1211-firmware" + PACKAGES="$PACKAGES pcmciautils" fi if [ $ARCH = i386 -o $ARCH = x86_64 -o $ARCH = ia64 ]; then |
