All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] scripts/runqemu: Add serialstdio mode
@ 2018-11-08 20:58 Michael Halstead
  2018-11-08 20:58 ` [PATCH 2/3] scripts/runqemu: Replace subprocess.run() for compatibilty Michael Halstead
  2018-11-08 20:58 ` [PATCH 3/3] scripts/autobuilder-worker-prereq-tests: Shore up qemu testing Michael Halstead
  0 siblings, 2 replies; 3+ messages in thread
From: Michael Halstead @ 2018-11-08 20:58 UTC (permalink / raw)
  To: openembedded-core; +Cc: rpurdie

From: Richard Purdie <richard.purdie@linuxfoundation.org>

Its currently not possible to have a console available whilst using qemu in graphics
mode. This is causing some issues for testing autobuilder bringup so all a "serialstdio"
mode to runqemu to accomodate this.

The existing serialstdio internal variable is renamed to allow the new user visible option.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 scripts/runqemu | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 087220ca0a..0c61253d6a 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -75,6 +75,7 @@ of the following environment variables (in any order):
   Simplified QEMU command-line options can be passed with:
     nographic - disable video console
     serial - enable a serial console on /dev/ttyS0
+    serialstdio - enable a serial console on the console (regardless of graphics mode)
     slirp - enable user networking, no root privileges is required
     kvm - enable KVM when running x86/x86_64 (VT-capable CPU required)
     kvm-vhost - enable KVM with vhost when running x86/x86_64 (VT-capable CPU required)
@@ -211,6 +212,7 @@ class BaseConfig(object):
         self.slirp_enabled = False
         self.nfs_instance = 0
         self.nfs_running = False
+        self.serialconsole = False
         self.serialstdio = False
         self.cleantap = False
         self.saved_stty = ''
@@ -428,6 +430,9 @@ class BaseConfig(object):
                 self.qemu_opt_script += ' -nographic'
                 self.kernel_cmdline_script += ' console=ttyS0'
             elif arg == 'serial':
+                self.kernel_cmdline_script += ' console=ttyS0'
+                self.serialconsole = True
+            elif arg == "serialstdio":
                 self.kernel_cmdline_script += ' console=ttyS0'
                 self.serialstdio = True
             elif arg == 'audio':
@@ -1169,7 +1174,7 @@ class BaseConfig(object):
         if self.snapshot:
             self.qemu_opt += " -snapshot"
 
-        if self.serialstdio:
+        if self.serialconsole:
             if sys.stdin.isatty():
                 subprocess.check_call("stty intr ^]", shell=True)
                 logger.info("Interrupt character is '^]'")
@@ -1196,7 +1201,7 @@ class BaseConfig(object):
         #     INIT: Id "S1" respawning too fast: disabled for 5 minutes
         serial_num = len(re.findall("-serial", self.qemu_opt))
         if serial_num == 0:
-            if re.search("-nographic", self.qemu_opt):
+            if re.search("-nographic", self.qemu_opt) or self.serialstdio:
                 self.qemu_opt += " -serial mon:stdio -serial null"
             else:
                 self.qemu_opt += " -serial mon:vc -serial null"
-- 
2.17.2



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/3] scripts/runqemu: Replace subprocess.run() for compatibilty
  2018-11-08 20:58 [PATCH 1/3] scripts/runqemu: Add serialstdio mode Michael Halstead
@ 2018-11-08 20:58 ` Michael Halstead
  2018-11-08 20:58 ` [PATCH 3/3] scripts/autobuilder-worker-prereq-tests: Shore up qemu testing Michael Halstead
  1 sibling, 0 replies; 3+ messages in thread
From: Michael Halstead @ 2018-11-08 20:58 UTC (permalink / raw)
  To: openembedded-core; +Cc: rpurdie

subprocess.run() was introduced in Python 3.5. We currently support down to
Python 3.4 so I've replaced it with subprocess.check_call() which is available
in that version.

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
---
 scripts/runqemu | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/scripts/runqemu b/scripts/runqemu
index 0c61253d6a..c79be9a846 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -1321,7 +1321,7 @@ def main():
             logger.info("SIGTERM received")
             os.kill(config.qemupid, signal.SIGTERM)
             config.cleanup()
-            subprocess.run(["tput", "smam"])
+            subprocess.check_call(["tput", "smam"])
         signal.signal(signal.SIGTERM, sigterm_handler)
 
         config.check_args()
@@ -1343,7 +1343,7 @@ def main():
         return 1
     finally:
         config.cleanup()
-        subprocess.run(["tput", "smam"])
+        subprocess.check_call(["tput", "smam"])
 
 if __name__ == "__main__":
     sys.exit(main())
-- 
2.17.2



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 3/3] scripts/autobuilder-worker-prereq-tests: Shore up qemu testing
  2018-11-08 20:58 [PATCH 1/3] scripts/runqemu: Add serialstdio mode Michael Halstead
  2018-11-08 20:58 ` [PATCH 2/3] scripts/runqemu: Replace subprocess.run() for compatibilty Michael Halstead
@ 2018-11-08 20:58 ` Michael Halstead
  1 sibling, 0 replies; 3+ messages in thread
From: Michael Halstead @ 2018-11-08 20:58 UTC (permalink / raw)
  To: openembedded-core; +Cc: rpurdie

Check that yocto-autobuilder-helper has been cloned to the correct location.
Check that vnc is running using the same script the autobuilder does.
Set the DISPLAY enviroment variable to :1 the same way we do when building
normally.
Make the VM's serial console available so we can log in and power off allowing
the tests to continue.

Signed-off-by: Michael Halstead <mhalstead@linuxfoundation.org>
---
 scripts/autobuilder-worker-prereq-tests | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/scripts/autobuilder-worker-prereq-tests b/scripts/autobuilder-worker-prereq-tests
index bb46c69135..358dd2beee 100755
--- a/scripts/autobuilder-worker-prereq-tests
+++ b/scripts/autobuilder-worker-prereq-tests
@@ -15,6 +15,12 @@
 # test buildistory git repo works?
 #
 
+if [ ! -x $HOME/yocto-autobuilder-helper/scripts/checkvnc ]; then
+    echo "$HOME/yocto-autobuilder-helper should be created."
+    exit 1
+fi
+$HOME/yocto-autobuilder-helper/scripts/checkvnc
+
 . ./oe-init-build-env > /dev/null
 if [ "$?" != "0" ]; then
     exit 1
@@ -53,12 +59,12 @@ if [ ! -e bzImage-qemux86-64.bin ]; then
 fi
 popd
 bitbake qemu-helper-native
-runqemu qemux86-64
+DISPLAY=:1 runqemu serialstdio qemux86-64
 if [ "$?" != "0" ]; then
     echo "Unable to use runqemu"
     exit 1
 fi
-runqemu qemux86-64 kvm
+DISPLAY=:1 runqemu serialstdio qemux86-64 kvm
 if [ "$?" != "0" ]; then
     echo "Unable to use runqemu with kvm"
     exit 1
-- 
2.17.2



^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-11-08 20:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-08 20:58 [PATCH 1/3] scripts/runqemu: Add serialstdio mode Michael Halstead
2018-11-08 20:58 ` [PATCH 2/3] scripts/runqemu: Replace subprocess.run() for compatibilty Michael Halstead
2018-11-08 20:58 ` [PATCH 3/3] scripts/autobuilder-worker-prereq-tests: Shore up qemu testing Michael Halstead

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.