* [PATCH 0/2] 2 fixes for runqemu @ 2015-06-25 9:24 Robert Yang 2015-06-25 9:24 ` [PATCH 1/2] runqemu: disable graphic when no DISPLAY Robert Yang 2015-06-25 9:24 ` [PATCH 2/2] runqemu: enable kvm when use tap under sudo Robert Yang 0 siblings, 2 replies; 6+ messages in thread From: Robert Yang @ 2015-06-25 9:24 UTC (permalink / raw) To: openembedded-core Hello, The 2 patches will make qemu easier to use. // Robert The following changes since commit 2587b83faabdc8858e8746201805369ed8d53ba8: wpa-supplicant: Revert "Make SystemD D-Bus config conditional" (2015-06-24 14:03:25 +0100) are available in the git repository at: git://git.openembedded.org/openembedded-core-contrib rbt/qemu http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=rbt/qemu Robert Yang (2): runqemu: disable graphic when no DISPLAY runqemu: enable kvm when use tap under sudo scripts/runqemu | 20 ++++++++++++++++---- scripts/runqemu-internal | 15 +++++++++++++++ 2 files changed, 31 insertions(+), 4 deletions(-) -- 1.7.9.5 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/2] runqemu: disable graphic when no DISPLAY 2015-06-25 9:24 [PATCH 0/2] 2 fixes for runqemu Robert Yang @ 2015-06-25 9:24 ` Robert Yang 2015-06-25 12:13 ` Burton, Ross 2015-06-25 9:24 ` [PATCH 2/2] runqemu: enable kvm when use tap under sudo Robert Yang 1 sibling, 1 reply; 6+ messages in thread From: Robert Yang @ 2015-06-25 9:24 UTC (permalink / raw) To: openembedded-core Disable graphic when no DISPLAY rather than print an error like: [snip] Could not initialize SDL(No available video device) - exiting [snip] Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- scripts/runqemu | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index 09c507d..d9e91af 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -70,6 +70,7 @@ SCRIPT_KERNEL_OPT="" SERIALSTDIO="" KVM_ENABLED="no" KVM_ACTIVE="no" +GRAPHIC="yes" # Determine whether the file is a kernel or QEMU image, and set the # appropriate variables @@ -142,8 +143,7 @@ while true; do ISOFS=true ;; "nographic") - SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -nographic" - SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT console=ttyS0" + GRAPHIC="no" ;; "serial") SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -serial stdio" @@ -291,6 +291,13 @@ if [ "x$KVM_ENABLED" = "xyes" ]; then fi fi +# Disable graphic when no DISPLAY or -nographic is specified. +if [ -z "$DISPLAY" -o "$GRAPHIC" = "no" ]; then + echo "Disabling graphic." + SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -nographic" + SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT console=ttyS0" +fi + machine2=`echo $MACHINE | tr 'a-z' 'A-Z' | sed 's/-/_/'` # MACHINE is now set for all cases -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] runqemu: disable graphic when no DISPLAY 2015-06-25 9:24 ` [PATCH 1/2] runqemu: disable graphic when no DISPLAY Robert Yang @ 2015-06-25 12:13 ` Burton, Ross 2015-06-26 1:27 ` Robert Yang 0 siblings, 1 reply; 6+ messages in thread From: Burton, Ross @ 2015-06-25 12:13 UTC (permalink / raw) To: Robert Yang; +Cc: OE-core [-- Attachment #1: Type: text/plain, Size: 218 bytes --] On 25 June 2015 at 10:24, Robert Yang <liezhi.yang@windriver.com> wrote: > +if [ -z "$DISPLAY" -o "$GRAPHIC" = "no" ]; then > Does this break people using QEMU without SDL that connect to it using VNC? Ross [-- Attachment #2: Type: text/html, Size: 660 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/2] runqemu: disable graphic when no DISPLAY 2015-06-25 12:13 ` Burton, Ross @ 2015-06-26 1:27 ` Robert Yang 0 siblings, 0 replies; 6+ messages in thread From: Robert Yang @ 2015-06-26 1:27 UTC (permalink / raw) To: Burton, Ross; +Cc: OE-core On 06/25/2015 08:13 PM, Burton, Ross wrote: > > On 25 June 2015 at 10:24, Robert Yang <liezhi.yang@windriver.com > <mailto:liezhi.yang@windriver.com>> wrote: > > +if [ -z "$DISPLAY" -o "$GRAPHIC" = "no" ]; then > > > Does this break people using QEMU without SDL that connect to it using VNC? It doesn't break it, but there is a little different, now both the text console and graphic vnc server will start, the text console didn't start before this patch. I'm not sure which is better, I've made another patch to make it work as before, and put the patches here, you can decide which one to use. git://git.openembedded.org/openembedded-core-contrib rbt/qemu_v2 diff --git a/scripts/runqemu b/scripts/runqemu --- a/scripts/runqemu +++ b/scripts/runqemu @@ -70,6 +70,8 @@ SCRIPT_KERNEL_OPT="" SERIALSTDIO="" KVM_ENABLED="no" KVM_ACTIVE="no" +GRAPHIC="yes" +PUBLICVNC="no" # Determine whether the file is a kernel or QEMU image, and set the # appropriate variables @@ -142,8 +144,7 @@ while true; do ISOFS=true ;; "nographic") - SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -nographic" - SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT console=ttyS0" + GRAPHIC="no" ;; "serial") SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -serial stdio" @@ -187,6 +188,7 @@ while true; do ;; "publicvnc") SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -vnc 0.0.0.0:0" + PUBLICVNC="yes" ;; "") break ;; *) @@ -291,6 +293,13 @@ if [ "x$KVM_ENABLED" = "xyes" ]; then fi fi +# Disable graphic when no DISPLAY or -nographic is specified. +if [ "$GRAPHIC" = "no" ] || [ -z "$DISPLAY" -a "$PUBLICVNC" = "no" ] ; then + echo "Disabling graphic." + SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -nographic" + SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT console=ttyS0" +fi + machine2=`echo $MACHINE | tr 'a-z' 'A-Z' | sed 's/-/_/'` # MACHINE is now set for all cases // Robert > > Ross ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/2] runqemu: enable kvm when use tap under sudo 2015-06-25 9:24 [PATCH 0/2] 2 fixes for runqemu Robert Yang 2015-06-25 9:24 ` [PATCH 1/2] runqemu: disable graphic when no DISPLAY Robert Yang @ 2015-06-25 9:24 ` Robert Yang 2015-06-25 9:41 ` Robert Yang 1 sibling, 1 reply; 6+ messages in thread From: Robert Yang @ 2015-06-25 9:24 UTC (permalink / raw) To: openembedded-core Enable kvm support automatically when use tap interface under sudo, the thought is, if sudo works well, and qemu-native has been built with kvm support, and kvm can be enabled, then enable it, it can be disabled by nokvm option. The previous command: $ runqemu qemux86 kvm may not work since it checks the current user's read/write permission on /dev/kvm and /dev/vhost-net but failed without sudo, it can't use sudo to check them since sudo is not a must, sudo is only required when need create tap interface, this patch can enable it automatically. Enable kvm can improve qemu's performance a lot, when test perl-5.22's lib/warnings.t on qemux86-64, 70 times improved. Signed-off-by: Robert Yang <liezhi.yang@windriver.com> --- scripts/runqemu | 9 +++++++-- scripts/runqemu-internal | 15 +++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/scripts/runqemu b/scripts/runqemu index d9e91af..926d76e 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -33,6 +33,7 @@ usage() { echo " nographic - disables video console" echo " serial - enables a serial console on /dev/ttyS0" echo " kvm - enables KVM when running qemux86/qemux86-64 (VT-capable CPU required)" + echo " nokvm - disables KVM" echo " publicvnc - enable a VNC server open to all hosts" echo " qemuparams=\"xyz\" - specify custom parameters to QEMU" echo " bootparams=\"xyz\" - specify custom kernel parameters during boot" @@ -68,8 +69,10 @@ SCRIPT_QEMU_OPT="" SCRIPT_QEMU_EXTRA_OPT="" SCRIPT_KERNEL_OPT="" SERIALSTDIO="" -KVM_ENABLED="no" +KVM_ENABLED="maybe" +KVM_CAPABLE="`grep -q 'vmx\|svm' /proc/cpuinfo && echo 1`" KVM_ACTIVE="no" +KVM_SUDO="" GRAPHIC="yes" # Determine whether the file is a kernel or QEMU image, and set the @@ -180,7 +183,9 @@ while true; do ;; "kvm") KVM_ENABLED="yes" - KVM_CAPABLE=`grep -q 'vmx\|svm' /proc/cpuinfo && echo 1` + ;; + "nokvm") + KVM_ENABLED="no" ;; "slirp") SLIRP_ENABLED="yes" diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal index 694815f..91385ba 100755 --- a/scripts/runqemu-internal +++ b/scripts/runqemu-internal @@ -217,6 +217,19 @@ else sudo $QEMUIFUP $USERID $GROUPID $OECORE_NATIVE_SYSROOT return 1 fi + + # Enale kvm when possible since sudo works well, if + # /usr/include/linux/kvm.h exists, qemu-native is built with kvm + # support. + if [ "$KVM_ENABLED" = "maybe" -a -n "$KVM_CAPABLE" -a \ + -e /dev/kvm -a -e /dev/vhost-net -a -f /usr/include/linux/kvm.h ] && \ + [ "$MACHINE" = "qemux86" -o "$MACHINE" = "qemux86-64" ]; then + echo "Enabling KVM automatically, can be disabled by nokvm option" + SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -enable-kvm" + KVM_ACTIVE="yes" + KVM_SUDO="sudo" + fi + LOCKFILE="$LOCKDIR/$tap" echo "Acquiring lockfile for $tap..." acquire_lock $LOCKFILE @@ -237,6 +250,7 @@ else echo "Releasing lockfile of preconfigured tap device '$TAP'" release_lock $LOCKFILE + if [ "$NFSRUNNING" = "true" ]; then echo "Shutting down the userspace NFS server..." echo "runqemu-export-rootfs stop $ROOTFS" @@ -685,6 +699,7 @@ if [ "x$SERIALSTDIO" = "x1" ]; then fi echo "Running $QEMU..." +[ -n "$KVM_SUDO" ] && QEMUBIN="$KVM_SUDO $QEMUBIN" # -no-reboot is a mandatory option - see bug #100 if [ "$FSTYPE" = "vmdk" ]; then echo $QEMUBIN $VM $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 2/2] runqemu: enable kvm when use tap under sudo 2015-06-25 9:24 ` [PATCH 2/2] runqemu: enable kvm when use tap under sudo Robert Yang @ 2015-06-25 9:41 ` Robert Yang 0 siblings, 0 replies; 6+ messages in thread From: Robert Yang @ 2015-06-25 9:41 UTC (permalink / raw) To: openembedded-core On 06/25/2015 05:24 PM, Robert Yang wrote: > Enable kvm support automatically when use tap interface under sudo, the > thought is, if sudo works well, and qemu-native has been built with kvm > support, and kvm can be enabled, then enable it, it can be disabled by > nokvm option. > > The previous command: > $ runqemu qemux86 kvm > may not work since it checks the current user's read/write permission on > /dev/kvm and /dev/vhost-net but failed without sudo, it can't use sudo > to check them since sudo is not a must, sudo is only required when need > create tap interface, this patch can enable it automatically. > > Enable kvm can improve qemu's performance a lot, when test perl-5.22's > lib/warnings.t on qemux86-64, 70 times improved. > > Signed-off-by: Robert Yang <liezhi.yang@windriver.com> > --- > scripts/runqemu | 9 +++++++-- > scripts/runqemu-internal | 15 +++++++++++++++ > 2 files changed, 22 insertions(+), 2 deletions(-) > > diff --git a/scripts/runqemu b/scripts/runqemu > index d9e91af..926d76e 100755 > --- a/scripts/runqemu > +++ b/scripts/runqemu > @@ -33,6 +33,7 @@ usage() { > echo " nographic - disables video console" > echo " serial - enables a serial console on /dev/ttyS0" > echo " kvm - enables KVM when running qemux86/qemux86-64 (VT-capable CPU required)" > + echo " nokvm - disables KVM" > echo " publicvnc - enable a VNC server open to all hosts" > echo " qemuparams=\"xyz\" - specify custom parameters to QEMU" > echo " bootparams=\"xyz\" - specify custom kernel parameters during boot" > @@ -68,8 +69,10 @@ SCRIPT_QEMU_OPT="" > SCRIPT_QEMU_EXTRA_OPT="" > SCRIPT_KERNEL_OPT="" > SERIALSTDIO="" > -KVM_ENABLED="no" > +KVM_ENABLED="maybe" > +KVM_CAPABLE="`grep -q 'vmx\|svm' /proc/cpuinfo && echo 1`" > KVM_ACTIVE="no" > +KVM_SUDO="" > GRAPHIC="yes" > > # Determine whether the file is a kernel or QEMU image, and set the > @@ -180,7 +183,9 @@ while true; do > ;; > "kvm") > KVM_ENABLED="yes" > - KVM_CAPABLE=`grep -q 'vmx\|svm' /proc/cpuinfo && echo 1` > + ;; > + "nokvm") > + KVM_ENABLED="no" > ;; > "slirp") > SLIRP_ENABLED="yes" > diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal > index 694815f..91385ba 100755 > --- a/scripts/runqemu-internal > +++ b/scripts/runqemu-internal > @@ -217,6 +217,19 @@ else > sudo $QEMUIFUP $USERID $GROUPID $OECORE_NATIVE_SYSROOT > return 1 > fi > + > + # Enale kvm when possible since sudo works well, if > + # /usr/include/linux/kvm.h exists, qemu-native is built with kvm > + # support. > + if [ "$KVM_ENABLED" = "maybe" -a -n "$KVM_CAPABLE" -a \ > + -e /dev/kvm -a -e /dev/vhost-net -a -f /usr/include/linux/kvm.h ] && \ > + [ "$MACHINE" = "qemux86" -o "$MACHINE" = "qemux86-64" ]; then > + echo "Enabling KVM automatically, can be disabled by nokvm option" > + SCRIPT_QEMU_OPT="$SCRIPT_QEMU_OPT -enable-kvm" > + KVM_ACTIVE="yes" > + KVM_SUDO="sudo" > + fi > + > LOCKFILE="$LOCKDIR/$tap" > echo "Acquiring lockfile for $tap..." > acquire_lock $LOCKFILE > @@ -237,6 +250,7 @@ else > echo "Releasing lockfile of preconfigured tap device '$TAP'" > release_lock $LOCKFILE > > + Sorry, I removed this blank line in the repo. // Robert > if [ "$NFSRUNNING" = "true" ]; then > echo "Shutting down the userspace NFS server..." > echo "runqemu-export-rootfs stop $ROOTFS" > @@ -685,6 +699,7 @@ if [ "x$SERIALSTDIO" = "x1" ]; then > fi > > echo "Running $QEMU..." > +[ -n "$KVM_SUDO" ] && QEMUBIN="$KVM_SUDO $QEMUBIN" > # -no-reboot is a mandatory option - see bug #100 > if [ "$FSTYPE" = "vmdk" ]; then > echo $QEMUBIN $VM $QEMUOPTIONS $SERIALOPTS -no-reboot $SCRIPT_QEMU_OPT $SCRIPT_QEMU_EXTRA_OPT > ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2015-06-26 1:27 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-06-25 9:24 [PATCH 0/2] 2 fixes for runqemu Robert Yang 2015-06-25 9:24 ` [PATCH 1/2] runqemu: disable graphic when no DISPLAY Robert Yang 2015-06-25 12:13 ` Burton, Ross 2015-06-26 1:27 ` Robert Yang 2015-06-25 9:24 ` [PATCH 2/2] runqemu: enable kvm when use tap under sudo Robert Yang 2015-06-25 9:41 ` Robert Yang
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox