Bug 480307 - rawhide anaconda stage1 x86_64 images missing virtio drivers
Summary: rawhide anaconda stage1 x86_64 images missing virtio drivers
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: anaconda
Version: rawhide
Hardware: All
OS: Linux
low
medium
Target Milestone: ---
Assignee: Anaconda Maintenance Team
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F11Alpha, F11AlphaBlocker
TreeView+ depends on / blocked
 
Reported: 2009-01-16 12:05 UTC by Mark McLoughlin
Modified: 2013-01-10 05:00 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2009-01-17 23:46:17 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
0001-Try-and-fix-expandModuleSet.patch (2.28 KB, patch)
2009-01-16 18:39 UTC, Mark McLoughlin
no flags Details | Diff

Description Mark McLoughlin 2009-01-16 12:05:33 UTC
Tested with 20090116 rawhide - no network available to x86_64 guest with virtio devices, works fine with non-virtio:

x86_64 initrd.img:

$> find . -name virtio*
./modules/2.6.29-0.35.rc1.git4.fc11.x86_64/kernel/drivers/virtio
./modules/2.6.29-0.35.rc1.git4.fc11.x86_64/kernel/drivers/virtio/virtio_pci.ko.gz
./modules/2.6.29-0.35.rc1.git4.fc11.x86_64/kernel/drivers/virtio/virtio.ko.gz
./modules/2.6.29-0.35.rc1.git4.fc11.x86_64/kernel/drivers/virtio/virtio_ring.ko.gz

i386 initrd.img:

$> find . -name virtio*
./modules/2.6.29-0.35.rc1.git4.fc11.i586/kernel/drivers/char/hw_random/virtio-rng.ko.gz
./modules/2.6.29-0.35.rc1.git4.fc11.i586/kernel/drivers/net/virtio_net.ko.gz
./modules/2.6.29-0.35.rc1.git4.fc11.i586/kernel/drivers/virtio
./modules/2.6.29-0.35.rc1.git4.fc11.i586/kernel/drivers/virtio/virtio_pci.ko.gz
./modules/2.6.29-0.35.rc1.git4.fc11.i586/kernel/drivers/virtio/virtio_balloon.ko.gz
./modules/2.6.29-0.35.rc1.git4.fc11.i586/kernel/drivers/block/virtio_blk.ko.gz

So, x86_64 is missing virtio_net and virtio_blk at least. I've checked and they are present in the kernel RPM.

Comment 1 Mark McLoughlin 2009-01-16 12:42:10 UTC
Well, this looks a little strange:

  INITRDMODS="... =net ..."

  if [ -e $MBD_DIR/lib/modules/$kernel/modules.$NAME ]; then
      SET="$SET $(cat $MBD_DIR/lib/modules/$kernel/modules.$NAME |\
                     sed -e 's/.ko//')"
  fi

but we don't have modules.net, but rather modules.networking

(Wouldn't explain why we have virtio_net on 32 bit and not 64 bit, though)

Comment 2 Mark McLoughlin 2009-01-16 12:43:41 UTC
(In reply to comment #1)

> (Wouldn't explain why we have virtio_net on 32 bit and not 64 bit, though)

And virtio_blk should be getting pulled in by =scsi

Comment 3 Mark McLoughlin 2009-01-16 18:23:15 UTC
Okay, looking through a bash -x of mk-images:

++ NAME=scsi
++ '[' scsi = ata ']'
++ '[' scsi = scsi ']'
+++ cat /tmp/makebootdisk.dir.30663/lib/modules//modules.block
cat: /tmp/makebootdisk.dir.30663/lib/modules//modules.block: No such file or directory
++ SET=' ohci-hcd uhci-hcd ehci-hcd hid mousedev usb-storage sd_mod sr_mod ub appletouch ohci1394 sbp2 fw-ohci fw-sbp2 firewire-sbp2 firewire-ohci ide-cd ide-cd_mod sr_mod sg st sd_mod scsi_mod iscsi_tcp iscsi_ibft fat msdos vfat ext2 ext3 ext4 reiserfs jfs xfs gfs2 cifs dm-mod dm-zero dm-snapshot dm-mirror dm-multipath dm-round-robin dm-crypt raid0 raid1 raid5 raid6 raid456 raid10 linear sha256_generic cbc xts lrw aes_generic crypto_blkcipher crc32c ecb arc4 fat vfat nfs sunrpc lockd floppy cramfs loop edd pcspkr squashfs ipv6 virtio_pci yenta_socket i82365 tcic pcmcia mmc-block sdhci sdhci-pci  |sed -e '\''s/.k\
o//'\'')'

Two things look broken there:

  1) $kernel isn't set
  2) the "|sed ..." bit is ending up in the string

++ NAME=net
++ '[' net = ata ']'
++ '[' net = scsi ']'
++ '[' -e /tmp/makebootdisk.dir.30663/lib/modules//modules.net ']'
++ for name in '$1'

It's not find modules.net because $kernel isn't set

Also note, it's actually modules.networking rather than modules.net

I think a heap of modules are actually being pulled in by this:

+++ awk -F : '/|sed.ko: / { print gensub(".*/|sed.ko: ","","g") }' /tmp/updboot.kernel.30663/x86_64/lib/modules/2.6.29-0.35.rc1.git4.fc11.x86_64/modules.dep

i.e. resdeps is hitting the "|sed" bit and pulling in a whole heap of stuff

Comment 4 Mark McLoughlin 2009-01-16 18:39:20 UTC
Created attachment 329239 [details]
0001-Try-and-fix-expandModuleSet.patch

Comment 5 Chris Lumens 2009-01-16 22:11:34 UTC
Thanks for the patch.  With some minor modifications (killing cat, ignoring the =net stuff Jeremy already did), I have applied this.  It should be in the next build of anaconda.

Comment 6 Jesse Keating 2009-01-17 02:05:04 UTC
We had to modify it a bit more, the .modules files we were looking for existed in a different path.  Suddenly we got a whole lot more modules, including the virtio modules for disks on x86-64.

Comment 7 Jesse Keating 2009-01-17 23:46:17 UTC
Confirmed fixed in rawhide 20090117


Note You need to log in before you can comment on or make changes to this bug.