| Submitter | Trevor Woerner |
|---|---|
| Date | Dec. 21, 2012, 1:04 p.m. |
| Message ID | <1356095093-21988-1-git-send-email-twoerner@gmail.com> |
| Download | mbox | patch |
| Permalink | /patch/41449/ |
| State | Accepted |
| Commit | 642cfaac0cb515008cfc91aafe04ab1db7a51581 |
| Headers | show |
Comments
On 12/21/2012 05:04 AM, Trevor Woerner wrote: > 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@gmail.com> Nice addition - thanks a bunch for this! Acked-by: Scott Garman <scott.a.garman@intel.com> > --- > scripts/runqemu | 2 ++ > scripts/runqemu-internal | 7 +++++++ > 2 files changed, 9 insertions(+) > > diff --git a/scripts/runqemu b/scripts/runqemu > index 190e3b4..9418ebd 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 >
Patch
diff --git a/scripts/runqemu b/scripts/runqemu index 190e3b4..9418ebd 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
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@gmail.com> --- scripts/runqemu | 2 ++ scripts/runqemu-internal | 7 +++++++ 2 files changed, 9 insertions(+)