aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEd Bartosh <ed.bartosh@linux.intel.com>2016-09-28 12:16:14 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-28 15:02:54 +0100
commit5100bb36502ef7c81220a3c4809eb1b3ac83801f (patch)
tree90ab2fb15f84d4b5cfbb40caf76a35ee52f96588
parenta11d0d8641b7dfb05c78645cf21f2c04a08c4822 (diff)
downloadopenembedded-core-contrib-5100bb36502ef7c81220a3c4809eb1b3ac83801f.tar.gz
openembedded-core-contrib-5100bb36502ef7c81220a3c4809eb1b3ac83801f.tar.bz2
openembedded-core-contrib-5100bb36502ef7c81220a3c4809eb1b3ac83801f.zip
runqemu: explicitly set image format
QEMU produces a warning if drive format is not specified: WARNING: Image format was not specified for 'tmp/deploy/images/qemux86-64/core-image-minimal-qemux86-64.wic' and probing guessed raw. Automatically detecting the format is dangerous for raw images, write operations on block 0 will be restricted. Specify the 'raw' format explicitly to remove the restrictions. Set image format to 'vmdk', 'qcow2' or 'vdi' for correspondent image types. Set it to 'raw' for the rest of image types. Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xscripts/runqemu11
1 files changed, 7 insertions, 4 deletions
diff --git a/scripts/runqemu b/scripts/runqemu
index 45bcad7a80..09b231bf98 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -817,11 +817,13 @@ class BaseConfig(object):
else:
self.setup_tap()
+ rootfs_format = self.fstype if self.fstype in ('vmdk', 'qcow2', 'vdi') else 'raw'
+
qb_rootfs_opt = self.get('QB_ROOTFS_OPT')
if qb_rootfs_opt:
self.rootfs_options = qb_rootfs_opt.replace('@ROOTFS@', self.rootfs)
else:
- self.rootfs_options = '-drive file=%s,if=virtio,format=raw' % self.rootfs
+ self.rootfs_options = '-drive file=%s,if=virtio,format=%s' % (self.rootfs, rootfs_format)
if self.fstype in ('cpio.gz', 'cpio'):
self.kernel_cmdline = 'root=/dev/ram0 rw debugshell'
@@ -835,14 +837,15 @@ class BaseConfig(object):
cmd2 = "grep -q 'root=/dev/hd' %s" % self.rootfs
if subprocess.call(cmd1, shell=True) == 0:
logger.info('Using scsi drive')
- vm_drive = '-drive if=none,id=hd,file=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd' % self.rootfs
+ vm_drive = '-drive if=none,id=hd,file=%s,format=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd' \
+ % (self.rootfs, rootfs_format)
elif subprocess.call(cmd2, shell=True) == 0:
logger.info('Using scsi drive')
- vm_drive = self.rootfs
+ vm_drive = "%s,format=%s" % (self.rootfs, rootfs_format)
else:
logger.warn("Can't detect drive type %s" % self.rootfs)
logger.warn('Tring to use virtio block drive')
- vm_drive = '-drive if=virtio,file=%s' % self.rootfs
+ vm_drive = '-drive if=virtio,file=%s,format=%s' % (self.rootfs, rootfs_format)
self.rootfs_options = '%s -no-reboot' % vm_drive
self.kernel_cmdline = 'root=%s rw highres=off' % (self.get('QB_KERNEL_ROOT'))