runqemu: Add a tcpserial option
The option was added so that the qemurunner could start a second tcp serial port without adding machine conditional logic to qemurunner. The issue that made this necessary was that when "virt" is passed to qemu-system-aarch64, the normal mechanism for specifying a tcp serial port does not work. This is because the hardware for the "virt" machine is hardcoded in the device tree blob and the addition devices must be virtio devices. So runqemu can specify virtio for qemuarm64 whereas it seems all other qemu machines work with the "-serial tcp*" option. (From OE-Core rev: 849d65d55e4df5fa443b2cb7b4cee23913fc9d5a) Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
fd164dcc31
commit
d893a2503d
|
@ -92,7 +92,7 @@ class QemuRunner:
|
||||||
# Set this flag so that Qemu doesn't do any grabs as SDL grabs interact
|
# Set this flag so that Qemu doesn't do any grabs as SDL grabs interact
|
||||||
# badly with screensavers.
|
# badly with screensavers.
|
||||||
os.environ["QEMU_DONT_GRAB"] = "1"
|
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:
|
if qemuparams:
|
||||||
self.qemuparams = self.qemuparams[:-1] + " " + qemuparams + " " + '\"'
|
self.qemuparams = self.qemuparams[:-1] + " " + qemuparams + " " + '\"'
|
||||||
|
|
||||||
|
@ -102,7 +102,7 @@ class QemuRunner:
|
||||||
fcntl.fcntl(o, fcntl.F_SETFL, fl | os.O_NONBLOCK)
|
fcntl.fcntl(o, fcntl.F_SETFL, fl | os.O_NONBLOCK)
|
||||||
return os.read(o.fileno(), 1000000)
|
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
|
# FIXME: We pass in stdin=subprocess.PIPE here to work around stty
|
||||||
# blocking at the end of the runqemu script when using this within
|
# blocking at the end of the runqemu script when using this within
|
||||||
# oe-selftest (this makes stty error out immediately). There ought
|
# oe-selftest (this makes stty error out immediately). There ought
|
||||||
|
|
|
@ -68,6 +68,7 @@ SCRIPT_QEMU_OPT=""
|
||||||
SCRIPT_QEMU_EXTRA_OPT=""
|
SCRIPT_QEMU_EXTRA_OPT=""
|
||||||
SCRIPT_KERNEL_OPT=""
|
SCRIPT_KERNEL_OPT=""
|
||||||
SERIALSTDIO=""
|
SERIALSTDIO=""
|
||||||
|
TCPSERIAL_PORTNUM=""
|
||||||
KVM_ENABLED="no"
|
KVM_ENABLED="no"
|
||||||
KVM_ACTIVE="no"
|
KVM_ACTIVE="no"
|
||||||
|
|
||||||
|
@ -150,6 +151,9 @@ while true; do
|
||||||
SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT console=ttyS0"
|
SCRIPT_KERNEL_OPT="$SCRIPT_KERNEL_OPT console=ttyS0"
|
||||||
SERIALSTDIO="1"
|
SERIALSTDIO="1"
|
||||||
;;
|
;;
|
||||||
|
"tcpserial="*)
|
||||||
|
TCPSERIAL_PORTNUM=${arg##tcpserial=}
|
||||||
|
;;
|
||||||
"biosdir="*)
|
"biosdir="*)
|
||||||
CUSTOMBIOSDIR="${arg##biosdir=}"
|
CUSTOMBIOSDIR="${arg##biosdir=}"
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -620,6 +620,14 @@ if [ "x$QEMUOPTIONS" = "x" ]; then
|
||||||
return 1
|
return 1
|
||||||
fi
|
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
|
PATH=$OECORE_NATIVE_SYSROOT/usr/bin:$PATH
|
||||||
|
|
||||||
QEMUBIN=`which $QEMU 2> /dev/null`
|
QEMUBIN=`which $QEMU 2> /dev/null`
|
||||||
|
|
Loading…
Reference in New Issue