aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xscripts/runqemu28
-rwxr-xr-xscripts/runqemu-internal11
2 files changed, 29 insertions, 10 deletions
diff --git a/scripts/runqemu b/scripts/runqemu
index 46918e2af54..33bd194a9f8 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -28,6 +28,8 @@ usage() {
echo " RAMFS - boot a ramfs-based image"
echo " ISO - boot an ISO image"
echo " VM - boot a virtual machine image (= a file representing a full disk with boot loader)"
+ echo " RAWDISK - boot a raw disk image"
+ echo " RAWDISK image is built using wic tool"
echo " Simplified QEMU command-line options can be passed with:"
echo " nographic - disables video console"
echo " serial - enables a serial console on /dev/ttyS0"
@@ -46,6 +48,7 @@ usage() {
echo " $MYNAME qemux86 qemuparams=\"-m 256\""
echo " $MYNAME qemux86 bootparams=\"psplash=false\""
echo " $MYNAME path/to/<image>-<machine>.vmdk"
+ echo " $MYNAME path/to/<machine>-<disk>.direct"
exit 1
}
@@ -62,6 +65,7 @@ MACHINE=${MACHINE:=""}
KERNEL=${KERNEL:=""}
ROOTFS=${ROOTFS:=""}
VM=${VM:=""}
+RAWDIDK=${RAWDISK:=""}
FSTYPE=${FSTYPE:=""}
LAZY_ROOTFS=""
SCRIPT_QEMU_OPT=""
@@ -100,6 +104,10 @@ process_filename() {
FSTYPE=$EXT
VM=$filename
;;
+ /direct/)
+ FSTYPE=$EXT
+ RAWDISK=$filename
+ ;;
*)
error "unknown file arg [$filename]"
;;
@@ -234,8 +242,8 @@ elif [ ! -w /dev/net/tun ] ; then
fi
# Report errors for missing combinations of options
-if [ -z "$MACHINE" -a -z "$KERNEL" -a -z "$VM" ]; then
- error "you must specify at least a MACHINE, VM, or KERNEL argument"
+if [ -z "$MACHINE" -a -z "$KERNEL" -a -z "$VM" -a -z "$RAWDISK" ]; then
+ error "you must specify at least a MACHINE, VM, RAWDISK or KERNEL argument"
fi
if [ "$FSTYPE" = "nfs" -a -z "$ROOTFS" ]; then
error "NFS booting without an explicit ROOTFS path is not yet supported"
@@ -248,6 +256,12 @@ if [ -z "$MACHINE" ]; then
error "Unable to set MACHINE from image filename [$VM]"
fi
echo "Set MACHINE to [$MACHINE] based on image [$VM]"
+ elif [ "x$FSTYPE" = "xdirect" ]; then
+ MACHINE=`basename $RAWDISK | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm64\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'`
+ if [ -z "$MACHINE" ]; then
+ error "Unable to set MACHINE from raw disk filename [$RAWDISK]"
+ fi
+ echo "Set MACHINE to [$MACHINE] based on raw disk [$RAWDISK]"
else
MACHINE=`basename $KERNEL | sed -n 's/.*\(qemux86-64\|qemux86\|qemuarm64\|qemuarm\|qemumips64\|qemumips\|qemuppc\|qemush4\).*/\1/p'`
if [ -z "$MACHINE" ]; then
@@ -453,7 +467,7 @@ if [ -e "$ROOTFS" -a -z "$FSTYPE" ]; then
fi
fi
-if [ -z "$KERNEL" -a "x$FSTYPE" != "xvmdk" -a "x$FSTYPE" != "xhddimg" -a "x$FSTYPE" != "xhdddirect" ]; then
+if [ -z "$KERNEL" -a "x$FSTYPE" != "xvmdk" -a "x$FSTYPE" != "xhddimg" -a "x$FSTYPE" != "xhdddirect" -a "x$FSTYPE" != "xdirect" ]; then
setup_path_vars 1
eval kernel_file=\$${machine2}_DEFAULT_KERNEL
KERNEL=$DEPLOY_DIR_IMAGE/$kernel_file
@@ -486,7 +500,7 @@ if [ "$LAZY_ROOTFS" = "true" ]; then
fi
fi
-if [ -z "$ROOTFS" -a "x$FSTYPE" != "xvmdk" -a "x$FSTYPE" != "xhddimg" -a "x$FSTYPE" != "xhdddirect" ]; then
+if [ -z "$ROOTFS" -a "x$FSTYPE" != "xvmdk" -a "x$FSTYPE" != "xhddimg" -a "x$FSTYPE" != "xhdddirect" -a "x$FSTYPE" != "xdirect" ]; then
setup_path_vars 1
T=$DEPLOY_DIR_IMAGE
eval rootfs_list=\$${machine2}_DEFAULT_ROOTFS
@@ -502,11 +516,13 @@ ROOTFS=`readlink -f $ROOTFS`
echo ""
echo "Continuing with the following parameters:"
-if [ "x$FSTYPE" != "xvmdk" -a "x$FSTYPE" != "xhddimg" -a "x$FSTYPE" != "xhdddirect" ]; then
+if [ "x$FSTYPE" != "xvmdk" -a "x$FSTYPE" != "xhddimg" -a "x$FSTYPE" != "xhdddirect" -a "x$FSTYPE" != "xdirect" ]; then
echo "KERNEL: [$KERNEL]"
echo "ROOTFS: [$ROOTFS]"
-else
+elif [ "x$FSTYPE" = "xvmdk" ]; then
echo "VMDK: [$VM]"
+elif [ "x$FSTYPE" = "xdirect" ]; then
+ echo "RAWDISK: [$RAWDISK]"
fi
echo "FSTYPE: [$FSTYPE]"
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal
index c2787c3394a..4eeb23c7434 100755
--- a/scripts/runqemu-internal
+++ b/scripts/runqemu-internal
@@ -301,13 +301,13 @@ case "$MACHINE" in
;;
esac
-if [ ! -f "$KERNEL" -a "x$FSTYPE" != "xvmdk" -a "x$FSTYPE" != "xhddimg" -a "x$FSTYPE" != "xhdddirect" ]; then
+if [ ! -f "$KERNEL" -a "x$FSTYPE" != "xvmdk" -a "x$FSTYPE" != "xhddimg" -a "x$FSTYPE" != "xhdddirect" -a "x$FSTYPE" != "xdirect" ]; then
echo "Error: Kernel image file $KERNEL doesn't exist"
cleanup
return 1
fi
-if [ "$FSTYPE" != "nfs" -a "$FSTYPE" != "vmdk" -a "$FSTYPE" != "hddimg" -a "$FSTYPE" != "hdddirect" -a ! -f "$ROOTFS" ]; then
+if [ "$FSTYPE" != "nfs" -a "$FSTYPE" != "vmdk" -a "$FSTYPE" != "hddimg" -a "$FSTYPE" != "hdddirect" -a "$FSTYPE" != "direct" -a ! -f "$ROOTFS" ]; then
echo "Error: Image file $ROOTFS doesn't exist"
cleanup
return 1
@@ -429,7 +429,7 @@ if [ "$MACHINE" = "qemux86" ]; then
KERNCMDLINE="root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
QEMUOPTIONS="$QEMU_NETWORK_CMD $QEMU_UI_OPTIONS"
fi
- if [ "$FSTYPE" = "vmdk" -o "$FSTYPE" = "hddimg" -o "$FSTYPE" = "hdddirect" ]; then
+ if [ "$FSTYPE" = "vmdk" -o "$FSTYPE" = "hddimg" -o "$FSTYPE" = "hdddirect" -o "$FSTYPE" = "direct" ]; then
QEMUOPTIONS="$QEMU_NETWORK_CMD $QEMU_UI_OPTIONS"
fi
# Currently oprofile's event based interrupt mode doesn't work(Bug #828) in
@@ -465,7 +465,7 @@ if [ "$MACHINE" = "qemux86-64" ]; then
KERNCMDLINE="root=/dev/nfs nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
QEMUOPTIONS="$QEMU_NETWORK_CMD -cpu $CPU_SUBTYPE $QEMU_UI_OPTIONS"
fi
- if [ "$FSTYPE" = "vmdk" -o "$FSTYPE" = "hddimg" -o "$FSTYPE" = "hdddirect" ]; then
+ if [ "$FSTYPE" = "vmdk" -o "$FSTYPE" = "hddimg" -o "$FSTYPE" = "hdddirect" -o "$FSTYPE" = "direct" ]; then
QEMUOPTIONS="$QEMU_NETWORK_CMD -cpu $CPU_SUBTYPE $QEMU_UI_OPTIONS"
fi
# Currently oprofile's event based interrupt mode doesn't work(Bug #828) in
@@ -726,6 +726,9 @@ echo "Running $QEMU..."
if [ "$FSTYPE" = "vmdk" -o "$FSTYPE" = "hddimg" -o "$FSTYPE" = "hdddirect" ]; then
echo $QEMUBIN $VM $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT
LD_PRELOAD="$GL_LD_PRELOAD" $QEMUBIN $VM $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT
+elif [ "$FSTYPE" = "direct" ]; then
+ echo $QEMUBIN $RAWDISK $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT
+ LD_PRELOAD="$GL_LD_PRELOAD" $QEMUBIN $RAWDISK $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT
elif [ "$FSTYPE" = "iso" ]; then
echo $QEMUBIN $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT
LD_PRELOAD="$GL_LD_PRELOAD" $QEMUBIN $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT