Bug 480307

Summary: rawhide anaconda stage1 x86_64 images missing virtio drivers
Product: [Fedora] Fedora Reporter: Mark McLoughlin <markmc>
Component: anacondaAssignee: Anaconda Maintenance Team <anaconda-maint-list>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: low    
Version: rawhideCC: anaconda-maint-list, dcantrell
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2009-01-17 23:46:17 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 476773    
Attachments:
Description Flags
0001-Try-and-fix-expandModuleSet.patch none

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