summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2023-10-03 13:24:43 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-10-04 13:00:33 +0100
commit8c4bb95c1c472f9eb5235b848e57febcac53aa59 (patch)
treed493c1ec08458cb0ea476ae3adadf35d6aff36db
parentc6ed95a7e41bccf809e273a14bc7592b9ff77352 (diff)
downloadpoky-8c4bb95c1c472f9eb5235b848e57febcac53aa59.tar.gz
scritps/runqemu: Ensure we only have two serial ports
I have a theory that some of the console boot issues we're seeing are due to starting images with three serial ports yet only starting gettys on two of them. This means that occasionally, depending on the port numbering we may not get a login prompt on the console we expect it on. To fix this, change the runqemu code so that if serial ports are passed in on the commandline (as is the case in automated testing), we don't add any other GUI serial consoles. We do need to make sure we do have at least two serial ports since we don't want getty timeout warnings. (From OE-Core rev: 1b0348535dce3b776efbcf26406b94730a51eb85) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rwxr-xr-xscripts/runqemu17
1 files changed, 13 insertions, 4 deletions
diff --git a/scripts/runqemu b/scripts/runqemu
index 3a17033268..0668e12e61 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -1467,6 +1467,19 @@ to your build configuration.
1467 for entry in self.get('SERIAL_CONSOLES').split(' '): 1467 for entry in self.get('SERIAL_CONSOLES').split(' '):
1468 self.kernel_cmdline_script += ' console=%s' %entry.split(';')[1] 1468 self.kernel_cmdline_script += ' console=%s' %entry.split(';')[1]
1469 1469
1470 # We always wants ttyS0 and ttyS1 in qemu machines (see SERIAL_CONSOLES).
1471 # If no serial or serialtcp options were specified, only ttyS0 is created
1472 # and sysvinit shows an error trying to enable ttyS1:
1473 # INIT: Id "S1" respawning too fast: disabled for 5 minutes
1474 serial_num = len(re.findall("-serial", self.qemu_opt))
1475
1476 # Assume if the user passed serial options, they know what they want
1477 # and pad to two devices
1478 if serial_num == 1:
1479 self.qemu_opt += " -serial null"
1480 elif serial_num >= 2:
1481 return
1482
1470 if self.serialstdio == True or self.nographic == True: 1483 if self.serialstdio == True or self.nographic == True:
1471 self.qemu_opt += " -serial mon:stdio" 1484 self.qemu_opt += " -serial mon:stdio"
1472 else: 1485 else:
@@ -1478,10 +1491,6 @@ to your build configuration.
1478 1491
1479 self.qemu_opt += " %s" % self.get("QB_SERIAL_OPT") 1492 self.qemu_opt += " %s" % self.get("QB_SERIAL_OPT")
1480 1493
1481 # We always wants ttyS0 and ttyS1 in qemu machines (see SERIAL_CONSOLES).
1482 # If no serial or serialtcp options were specified, only ttyS0 is created
1483 # and sysvinit shows an error trying to enable ttyS1:
1484 # INIT: Id "S1" respawning too fast: disabled for 5 minutes
1485 serial_num = len(re.findall("-serial", self.qemu_opt)) 1494 serial_num = len(re.findall("-serial", self.qemu_opt))
1486 if serial_num < 2: 1495 if serial_num < 2:
1487 self.qemu_opt += " -serial null" 1496 self.qemu_opt += " -serial null"