[gnome-continuous-yocto/gnomeostree-3.28-rocko: 5608/8267] runqemu: do not rely on grepping images
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 5608/8267] runqemu: do not rely on grepping images
- Date: Sun, 17 Dec 2017 03:40:43 +0000 (UTC)
commit f57393b386499c607e01ce1b3f1503b2cdca73d9
Author: Robert Yang <liezhi yang windriver com>
Date: Tue Apr 11 02:21:28 2017 -0700
runqemu: do not rely on grepping images
Fixed when the image is large and not enough memory:
grep: memory exhausted
Aborted
[YOCTO #11073]
(From OE-Core rev: a99deb30a0138594147ae28aab016fe4b74b8959)
Signed-off-by: Robert Yang <liezhi yang windriver com>
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
meta/classes/qemuboot.bbclass | 3 +++
scripts/runqemu | 19 +++++++++++--------
2 files changed, 14 insertions(+), 8 deletions(-)
---
diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass
index 3ca97ca..2870388 100644
--- a/meta/classes/qemuboot.bbclass
+++ b/meta/classes/qemuboot.bbclass
@@ -64,6 +64,9 @@ QB_DEFAULT_FSTYPE ?= "ext4"
QB_OPT_APPEND ?= "-show-cursor"
QB_NETWORK_DEVICE ?= "-device virtio-net-pci,netdev=net0,mac=@MAC@"
+# This should be kept align with ROOT_VM
+QB_DRIVE_TYPE ?= "/dev/sd"
+
# Create qemuboot.conf
addtask do_write_qemuboot_conf after do_rootfs before do_image
IMGDEPLOYDIR ?= "${WORKDIR}/deploy-${PN}-image-complete"
diff --git a/scripts/runqemu b/scripts/runqemu
index 51ed9de..803b205 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -980,23 +980,26 @@ class BaseConfig(object):
self.kernel_cmdline = 'root=/dev/ram0 rw debugshell'
self.rootfs_options = '-initrd %s' % self.rootfs
else:
+ vm_drive = ''
if self.fstype in self.vmtypes:
if self.fstype == 'iso':
vm_drive = '-cdrom %s' % self.rootfs
- else:
- cmd1 = "grep -q 'root=/dev/sd' %s" % self.rootfs
- cmd2 = "grep -q 'root=/dev/hd' %s" % self.rootfs
- if subprocess.call(cmd1, shell=True) == 0:
+ elif self.get('QB_DRIVE_TYPE'):
+ drive_type = self.get('QB_DRIVE_TYPE')
+ if drive_type.startswith("/dev/sd"):
logger.info('Using scsi drive')
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:
+ elif drive_type.startswith("/dev/hd"):
logger.info('Using ide drive')
vm_drive = "%s,format=%s" % (self.rootfs, rootfs_format)
else:
- logger.warn("Can't detect drive type %s" % self.rootfs)
- logger.warn('Trying to use virtio block drive')
- vm_drive = '-drive if=virtio,file=%s,format=%s' % (self.rootfs, rootfs_format)
+ logger.warn("Unknown QB_DRIVE_TYPE: %s" % drive_type)
+
+ if not vm_drive:
+ logger.warn("Failed to figure out drive type, consider define or fix QB_DRIVE_TYPE")
+ logger.warn('Trying to use virtio block drive')
+ 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'))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]