summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/classes/qemuboot.bbclass2
-rw-r--r--meta/conf/machine/qemuarm.conf2
-rw-r--r--meta/conf/machine/qemuarm64.conf2
-rw-r--r--meta/conf/machine/qemuarmv5.conf2
-rw-r--r--meta/lib/oeqa/utils/qemurunner.py2
-rwxr-xr-xscripts/runqemu61
6 files changed, 31 insertions, 40 deletions
diff --git a/meta/classes/qemuboot.bbclass b/meta/classes/qemuboot.bbclass
index 8798ad80e6..1f8012edc1 100644
--- a/meta/classes/qemuboot.bbclass
+++ b/meta/classes/qemuboot.bbclass
@@ -103,7 +103,7 @@ def qemuboot_vars(d):
build_vars = ['MACHINE', 'TUNE_ARCH', 'DEPLOY_DIR_IMAGE',
'KERNEL_IMAGETYPE', 'IMAGE_NAME', 'IMAGE_LINK_NAME',
'STAGING_DIR_NATIVE', 'STAGING_BINDIR_NATIVE',
- 'STAGING_DIR_HOST']
+ 'STAGING_DIR_HOST', 'SERIAL_CONSOLES']
return build_vars + [k for k in d.keys() if k.startswith('QB_')]
do_write_qemuboot_conf[vardeps] += "${@' '.join(qemuboot_vars(d))}"
diff --git a/meta/conf/machine/qemuarm.conf b/meta/conf/machine/qemuarm.conf
index 37dae8c863..e5ec4cc065 100644
--- a/meta/conf/machine/qemuarm.conf
+++ b/meta/conf/machine/qemuarm.conf
@@ -17,7 +17,7 @@ QB_SYSTEM_NAME = "qemu-system-arm"
QB_MACHINE = "-machine virt,highmem=off"
QB_CPU = "-cpu cortex-a15"
# Standard Serial console
-QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0 vmalloc=256"
+QB_KERNEL_CMDLINE_APPEND = "vmalloc=256"
# For graphics to work we need to define the VGA device as well as the necessary USB devices
QB_GRAPHICS = "-device VGA,edid=on"
QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd"
diff --git a/meta/conf/machine/qemuarm64.conf b/meta/conf/machine/qemuarm64.conf
index 05fd1f749b..51f7ecdcfd 100644
--- a/meta/conf/machine/qemuarm64.conf
+++ b/meta/conf/machine/qemuarm64.conf
@@ -17,8 +17,6 @@ QB_SYSTEM_NAME = "qemu-system-aarch64"
QB_MACHINE = "-machine virt"
QB_CPU = "-cpu cortex-a57"
QB_CPU_KVM = "-cpu host -machine gic-version=3"
-# Standard Serial console
-QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0"
# For graphics to work we need to define the VGA device as well as the necessary USB devices
QB_GRAPHICS = "-device VGA,edid=on"
QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd"
diff --git a/meta/conf/machine/qemuarmv5.conf b/meta/conf/machine/qemuarmv5.conf
index dfe2a89573..7050bae088 100644
--- a/meta/conf/machine/qemuarmv5.conf
+++ b/meta/conf/machine/qemuarmv5.conf
@@ -12,7 +12,7 @@ SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;ttyAMA1"
# For runqemu
QB_SYSTEM_NAME = "qemu-system-arm"
QB_MACHINE = "-machine versatilepb"
-QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty vmalloc=256"
+QB_KERNEL_CMDLINE_APPEND = "vmalloc=256"
QB_OPT_APPEND = "-usb -device usb-tablet"
PREFERRED_VERSION_linux-yocto ??= "5.10%"
QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}"
diff --git a/meta/lib/oeqa/utils/qemurunner.py b/meta/lib/oeqa/utils/qemurunner.py
index 77ec939ad7..eb23dbceb8 100644
--- a/meta/lib/oeqa/utils/qemurunner.py
+++ b/meta/lib/oeqa/utils/qemurunner.py
@@ -176,7 +176,7 @@ class QemuRunner:
self.logger.error("Failed to create listening socket: %s" % msg[1])
return False
- bootparams = 'console=tty1 console=ttyS0,115200n8 printk.time=1'
+ bootparams = ' printk.time=1'
if extra_bootparams:
bootparams = bootparams + ' ' + extra_bootparams
diff --git a/scripts/runqemu b/scripts/runqemu
index 4c8358e9de..842509eb14 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -139,6 +139,7 @@ class BaseConfig(object):
'OE_TMPDIR',
'OECORE_NATIVE_SYSROOT',
'MULTICONFIG',
+ 'SERIAL_CONSOLES',
)
self.qemu_opt = ''
@@ -464,7 +465,6 @@ class BaseConfig(object):
if ('gtk' in sys.argv):
raise RunQemuError('Option nographic makes no sense alongside the gtk option.' % (arg))
self.qemu_opt_script += ' -nographic'
- self.kernel_cmdline_script += ' console=ttyS0'
elif arg == 'sdl':
if 'gl' in sys.argv[1:]:
self.set_dri_path()
@@ -493,10 +493,8 @@ class BaseConfig(object):
elif arg == 'novga':
self.qemu_opt_script += ' -vga none'
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':
logger.info("Enabling audio in qemu")
@@ -1321,6 +1319,31 @@ class BaseConfig(object):
raise RunQemuError("Failed to boot, QB_SYSTEM_NAME is NULL!")
self.qemu_system = qemu_system
+ def setup_serial(self):
+ # Setup correct kernel command line for serial
+ if self.serialstdio == True or self.serialconsole == True or re.search("-nographic", self.qemu_opt) or self.tcpserial_portnum:
+ for entry in self.get('SERIAL_CONSOLES').split(' '):
+ self.kernel_cmdline_script += ' console=%s' %entry.split(';')[1]
+
+ if self.serialstdio == True or re.search("-nographic", self.qemu_opt):
+ self.qemu_opt += " -serial mon:stdio"
+ else:
+ self.qemu_opt += " -serial mon:vc"
+ if self.serialconsole:
+ if sys.stdin.isatty():
+ subprocess.check_call(("stty", "intr", "^]"))
+ logger.info("Interrupt character is '^]'")
+
+ self.qemu_opt += " %s" % self.get("QB_SERIAL_OPT")
+
+ # We always wants ttyS0 and ttyS1 in qemu machines (see SERIAL_CONSOLES).
+ # If no serial or serialtcp options were specified, only ttyS0 is created
+ # and sysvinit shows an error trying to enable ttyS1:
+ # INIT: Id "S1" respawning too fast: disabled for 5 minutes
+ serial_num = len(re.findall("-serial", self.qemu_opt))
+ if serial_num < 2:
+ self.qemu_opt += " -serial null"
+
def setup_final(self):
qemu_bin = os.path.join(self.bindir_native, self.qemu_system)
@@ -1365,37 +1388,7 @@ class BaseConfig(object):
if self.snapshot:
self.qemu_opt += " -snapshot"
- if self.serialconsole:
- if sys.stdin.isatty():
- subprocess.check_call(("stty", "intr", "^]"))
- logger.info("Interrupt character is '^]'")
-
- first_serial = ""
- if not re.search("-nographic", self.qemu_opt):
- first_serial = "-serial mon:vc"
- # We always want a ttyS1. Since qemu by default adds a serial
- # port when nodefaults is not specified, it seems that all that
- # would be needed is to make sure a "-serial" is there. However,
- # it appears that when "-serial" is specified, it ignores the
- # default serial port that is normally added. So here we make
- # sure to add two -serial if there are none. And only one if
- # there is one -serial already.
- serial_num = len(re.findall("-serial", self.qemu_opt))
- if serial_num == 0:
- self.qemu_opt += " %s %s" % (first_serial, self.get("QB_SERIAL_OPT"))
- elif serial_num == 1:
- self.qemu_opt += " %s" % self.get("QB_SERIAL_OPT")
-
- # We always wants ttyS0 and ttyS1 in qemu machines (see SERIAL_CONSOLES),
- # if not serial or serialtcp options was specified only ttyS0 is created
- # and sysvinit shows an error trying to enable ttyS1:
- # 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) or self.serialstdio:
- self.qemu_opt += " -serial mon:stdio -serial null"
- else:
- self.qemu_opt += " -serial mon:vc -serial null"
+ self.setup_serial()
def start_qemu(self):
import shlex