diff options
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/runqemu | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/scripts/runqemu b/scripts/runqemu index 51ed9de22c..803b205690 100755 --- a/scripts/runqemu +++ b/scripts/runqemu | |||
@@ -980,23 +980,26 @@ class BaseConfig(object): | |||
980 | self.kernel_cmdline = 'root=/dev/ram0 rw debugshell' | 980 | self.kernel_cmdline = 'root=/dev/ram0 rw debugshell' |
981 | self.rootfs_options = '-initrd %s' % self.rootfs | 981 | self.rootfs_options = '-initrd %s' % self.rootfs |
982 | else: | 982 | else: |
983 | vm_drive = '' | ||
983 | if self.fstype in self.vmtypes: | 984 | if self.fstype in self.vmtypes: |
984 | if self.fstype == 'iso': | 985 | if self.fstype == 'iso': |
985 | vm_drive = '-cdrom %s' % self.rootfs | 986 | vm_drive = '-cdrom %s' % self.rootfs |
986 | else: | 987 | elif self.get('QB_DRIVE_TYPE'): |
987 | cmd1 = "grep -q 'root=/dev/sd' %s" % self.rootfs | 988 | drive_type = self.get('QB_DRIVE_TYPE') |
988 | cmd2 = "grep -q 'root=/dev/hd' %s" % self.rootfs | 989 | if drive_type.startswith("/dev/sd"): |
989 | if subprocess.call(cmd1, shell=True) == 0: | ||
990 | logger.info('Using scsi drive') | 990 | logger.info('Using scsi drive') |
991 | vm_drive = '-drive if=none,id=hd,file=%s,format=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd' \ | 991 | vm_drive = '-drive if=none,id=hd,file=%s,format=%s -device virtio-scsi-pci,id=scsi -device scsi-hd,drive=hd' \ |
992 | % (self.rootfs, rootfs_format) | 992 | % (self.rootfs, rootfs_format) |
993 | elif subprocess.call(cmd2, shell=True) == 0: | 993 | elif drive_type.startswith("/dev/hd"): |
994 | logger.info('Using ide drive') | 994 | logger.info('Using ide drive') |
995 | vm_drive = "%s,format=%s" % (self.rootfs, rootfs_format) | 995 | vm_drive = "%s,format=%s" % (self.rootfs, rootfs_format) |
996 | else: | 996 | else: |
997 | logger.warn("Can't detect drive type %s" % self.rootfs) | 997 | logger.warn("Unknown QB_DRIVE_TYPE: %s" % drive_type) |
998 | logger.warn('Trying to use virtio block drive') | 998 | |
999 | vm_drive = '-drive if=virtio,file=%s,format=%s' % (self.rootfs, rootfs_format) | 999 | if not vm_drive: |
1000 | logger.warn("Failed to figure out drive type, consider define or fix QB_DRIVE_TYPE") | ||
1001 | logger.warn('Trying to use virtio block drive') | ||
1002 | vm_drive = '-drive if=virtio,file=%s,format=%s' % (self.rootfs, rootfs_format) | ||
1000 | self.rootfs_options = '%s -no-reboot' % vm_drive | 1003 | self.rootfs_options = '%s -no-reboot' % vm_drive |
1001 | self.kernel_cmdline = 'root=%s rw highres=off' % (self.get('QB_KERNEL_ROOT')) | 1004 | self.kernel_cmdline = 'root=%s rw highres=off' % (self.get('QB_KERNEL_ROOT')) |
1002 | 1005 | ||