[oe-commits] Trevor Woerner : runqemu: change terminal's INTR key in 'serial' mode

git at git.openembedded.org git at git.openembedded.org
Wed Dec 26 11:34:58 UTC 2012


Module: openembedded-core.git
Branch: master
Commit: 642cfaac0cb515008cfc91aafe04ab1db7a51581
URL:    http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=642cfaac0cb515008cfc91aafe04ab1db7a51581

Author: Trevor Woerner <twoerner at gmail.com>
Date:   Fri Dec 21 08:04:53 2012 -0500

runqemu: change terminal's INTR key in 'serial' mode

If you are using an image in '-serial stdio' mode, temporarily change the
terminal's interrupt character to 'Ctrl-]' for the duration of the image
run. In this way, hitting 'Ctrl-C' for something running in the image
doesn't accidentally abort the entire qemu session.

Signed-off-by: Trevor Woerner <twoerner at gmail.com>
Signed-off-by: Saul Wold <sgw at linux.intel.com>

---

 scripts/runqemu          |    2 ++
 scripts/runqemu-internal |    7 +++++++
 2 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index b8148ef..188eccf 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -64,6 +64,7 @@ LAZY_ROOTFS=""
 SCRIPT_QEMU_OPT=""
 SCRIPT_QEMU_EXTRA_OPT=""
 SCRIPT_KERNEL_OPT=""
+SERIALSTDIO=""
 
 # Determine whether the file is a kernel or QEMU image, and set the
 # appropriate variables
@@ -138,6 +139,7 @@ while true; do
         "serial")
             SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -serial stdio"
             SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT console=ttyS0"
+            SERIALSTDIO="1"
             ;;
         "qemuparams="*)
             SCRIPT_QEMU_EXTRA_OPT="${arg##qemuparams=}"
diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal
index 7fbe0a0..a11220d 100755
--- a/scripts/runqemu-internal
+++ b/scripts/runqemu-internal
@@ -444,6 +444,7 @@ if [ "$MACHINE" = "qemush4" ]; then
         #KERNCMDLINE="root=/dev/hda console=ttyS0 console=tty0 $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
         KERNCMDLINE="root=/dev/hda rw console=ttySC1 noiotrap earlyprintk=sh-sci.1 console=tty $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
         QEMUOPTIONS="$QEMU_NETWORK_CMD -M $MACHINE_SUBTYPE -hda $ROOTFS -no-reboot $QEMU_UI_OPTIONS -monitor null -serial vc -serial stdio"
+        SERIALSTDIO="1"
     fi
     if [ "$FSTYPE" = "nfs" ]; then
         if [ "$NFS_SERVER" = "192.168.7.1" -a ! -d "$NFS_DIR" ]; then
@@ -453,6 +454,7 @@ if [ "$MACHINE" = "qemush4" ]; then
         fi
         KERNCMDLINE="root=/dev/nfs console=ttySC1 noiotrap earlyprintk=sh-sci.1 console=tty nfsroot=$NFS_SERVER:$NFS_DIR,$UNFS_OPTS rw $KERNEL_NETWORK_CMD mem=$QEMU_MEMORY"
         QEMUOPTIONS="$QEMU_NETWORK_CMD -M $MACHINE_SUBTYPE -no-reboot $QEMU_UI_OPTIONS -monitor null -serial vc -serial stdio"
+        SERIALSTDIO="1"
     fi
 fi
 
@@ -565,6 +567,11 @@ then
 fi
 fi
 
+if [ "x$SERIALSTDIO" = "x1" ]; then
+        echo "Interrupt character is '^]'"
+        stty intr ^]
+fi
+
 echo "Running $QEMU..."
 # -no-reboot is a mandatory option - see bug #100
 if [ "$FSTYPE" = "vmdk" ]; then





More information about the Openembedded-commits mailing list