diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py index e976fd0819..33f31852a7 100644 --- a/meta/lib/oeqa/utils/qemurunner.py +++ b/meta/lib/oeqa/utils/qemurunner.py @@ -92,7 +92,7 @@ class QemuRunner: # Set this flag so that Qemu doesn't do any grabs as SDL grabs interact # badly with screensavers. os.environ["QEMU_DONT_GRAB"] = "1" - self.qemuparams = 'bootparams="console=tty1 console=ttyS0,115200n8" qemuparams="-serial tcp:127.0.0.1:{} -serial tcp:127.0.0.1:{}"'.format(threadport, self.serverport) + self.qemuparams = 'bootparams="console=tty1 console=ttyS0,115200n8" qemuparams="-serial tcp:127.0.0.1:{}"'.format(threadport) if qemuparams: self.qemuparams = self.qemuparams[:-1] + " " + qemuparams + " " + '\"' @@ -102,7 +102,7 @@ class QemuRunner: fcntl.fcntl(o, fcntl.F_SETFL, fl | os.O_NONBLOCK) return os.read(o.fileno(), 1000000) - launch_cmd = 'runqemu %s %s %s' % (self.machine, self.rootfs, self.qemuparams) + launch_cmd = 'runqemu tcpserial=%s %s %s %s' % (self.serverport, self.machine, self.rootfs, self.qemuparams) # FIXME: We pass in stdin=subprocess.PIPE here to work around stty # blocking at the end of the runqemu script when using this within # oe-selftest (this makes stty error out immediately). There ought diff --git a/scripts/runqemu b/scripts/runqemu index 09c507dc7a..82711606f6 100755 --- a/scripts/runqemu +++ b/scripts/runqemu @@ -68,6 +68,7 @@ SCRIPT_QEMU_OPT="" SCRIPT_QEMU_EXTRA_OPT="" SCRIPT_KERNEL_OPT="" SERIALSTDIO="" +TCPSERIAL_PORTNUM="" KVM_ENABLED="no" KVM_ACTIVE="no" @@ -150,6 +151,9 @@ while true; do SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT console=ttyS0" SERIALSTDIO="1" ;; + "tcpserial="*) + TCPSERIAL_PORTNUM=${arg##tcpserial=} + ;; "biosdir="*) CUSTOMBIOSDIR="${arg##biosdir=}" ;; diff --git a/scripts/runqemu-internal b/scripts/runqemu-internal index d743322037..b317358f94 100755 --- a/scripts/runqemu-internal +++ b/scripts/runqemu-internal @@ -620,6 +620,14 @@ if [ "x$QEMUOPTIONS" = "x" ]; then return 1 fi +if [ $TCPSERIAL_PORTNUM != "" ]; then + if [ "$MACHINE" = "qemuarm64" ]; then + QEMUOPTIONS="$QEMUOPTIONS -device virtio-serial-device -chardev socket,id=virtcon,port=$TCPSERIAL_PORTNUM,host=127.0.0.1 -device virtconsole,chardev=virtcon" + else + QEMUOPTIONS="$QEMUOPTIONS -serial tcp:127.0.0.1:$TCPSERIAL_PORTNUM" + fi +fi + PATH=$OECORE_NATIVE_SYSROOT/usr/bin:$PATH QEMUBIN=`which $QEMU 2> /dev/null`