On Wed, Mar 10, 2021 at 3:05 PM Jon Mason <jdma...@kudzu.us> wrote: > > Passing 'novga' only adds '-vga none' to the qemu commandline and does > not prevent other vga devices from being added, contrary to the > documentation/help. Clean-up the vga logic and add the ability to > prevent other vga devices from being added. >
I traced a weston image failure in -ctestimage to this commit. after this commit -vga none is passed when runqemu nographic is used. This means qemu won't be exporting any graphics devices and as a result weston wont start since it needs some graphics emulation. this use to work in past, > Signed-off-by: Jon Mason <jon.ma...@arm.com> > Change-Id: I7ff8f9f3e419ce8bae3f3847d75f9275ca30406a > --- > scripts/runqemu | 86 +++++++++++++++++++++++++++++++------------------ > 1 file changed, 55 insertions(+), 31 deletions(-) > > diff --git a/scripts/runqemu b/scripts/runqemu > index 842509eb145f..df4ee21d5316 100755 > --- a/scripts/runqemu > +++ b/scripts/runqemu > @@ -174,6 +174,13 @@ class BaseConfig(object): > self.nfs_running = False > self.serialconsole = False > self.serialstdio = False > + self.nographic = False > + self.sdl = False > + self.gtk = False > + self.gl = False > + self.gl_es = False > + self.egl_headless = False > + self.novga = False > self.cleantap = False > self.saved_stty = '' > self.audio_enabled = False > @@ -460,38 +467,19 @@ class BaseConfig(object): > if arg in self.fstypes + self.vmtypes + self.wictypes: > self.check_arg_fstype(arg) > elif arg == 'nographic': > - if ('sdl' in sys.argv): > - raise RunQemuError('Option nographic makes no sense > alongside the sdl option.' % (arg)) > - if ('gtk' in sys.argv): > - raise RunQemuError('Option nographic makes no sense > alongside the gtk option.' % (arg)) > - self.qemu_opt_script += ' -nographic' > + self.nographic = True > elif arg == 'sdl': > - if 'gl' in sys.argv[1:]: > - self.set_dri_path() > - self.qemu_opt_script += ' -vga virtio -display > sdl,gl=on,show-cursor=on' > - elif 'gl-es' in sys.argv[1:]: > - self.set_dri_path() > - self.qemu_opt_script += ' -vga virtio -display > sdl,gl=es,show-cursor=on' > - else: > - self.qemu_opt_script += ' -display sdl,show-cursor=on' > + self.sdl = True > elif arg == 'gtk': > - if 'gl' in sys.argv[1:]: > - self.set_dri_path() > - self.qemu_opt_script += ' -vga virtio -display > gtk,gl=on,show-cursor=on' > - elif 'gl-es' in sys.argv[1:]: > - self.set_dri_path() > - self.qemu_opt_script += ' -vga virtio -display > gtk,gl=es,show-cursor=on' > - else: > - self.qemu_opt_script += ' -display gtk,show-cursor=on' > - elif arg == 'gl' or arg == 'gl-es': > - # These args are handled inside sdl or gtk blocks above > - if ('gtk' not in sys.argv) and ('sdl' not in sys.argv): > - raise RunQemuError('Option %s also needs gtk or sdl > option.' % (arg)) > + self.gtk = True > + elif arg == 'gl': > + self.gl = True > + elif 'gl-es' in sys.argv[1:]: > + self.gl_es = True > elif arg == 'egl-headless': > - self.set_dri_path() > - self.qemu_opt_script += ' -vga virtio -display > egl-headless,show-cursor=on' > + self.egl_headless = True > elif arg == 'novga': > - self.qemu_opt_script += ' -vga none' > + self.novga = True > elif arg == 'serial': > self.serialconsole = True > elif arg == "serialstdio": > @@ -1319,13 +1307,48 @@ class BaseConfig(object): > raise RunQemuError("Failed to boot, QB_SYSTEM_NAME is NULL!") > self.qemu_system = qemu_system > > + def setup_vga(self): > + if self.nographic == True: > + if self.sdl == True: > + raise RunQemuError('Option nographic makes no sense > alongside the sdl option.') > + if self.gtk == True: > + raise RunQemuError('Option nographic makes no sense > alongside the gtk option.') > + self.qemu_opt += ' -nographic' > + return > + > + if self.novga == True: > + self.qemu_opt += ' -vga none' > + return > + > + if (self.gl_es == True or self.gl == True) and (self.sdl == False > and self.gtk == False): > + raise RunQemuError('Option gl/gl-es needs gtk or sdl option.') > + > + if self.sdl == True or self.gtk == True or self.egl_headless == True: > + self.set_dri_path() > + self.qemu_opt += ' -vga virtio -display ' > + if self.egl_headless == True: > + self.qemu_opt += 'egl-headless,' > + else: > + if self.sdl == True: > + self.qemu_opt += 'sdl,' > + elif self.gtk == True: > + self.qemu_opt += 'gtk,' > + > + if self.gl == True: > + self.qemu_opt += 'gl=on,' > + elif self.gl_es == True: > + self.qemu_opt += 'gl=es,' > + self.qemu_opt += 'show-cursor=on' > + > + self.qemu_opt += ' %s' %self.get('QB_GRAPHICS') > + > 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: > + if self.serialstdio == True or self.serialconsole == True or > self.nographic == True 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): > + if self.serialstdio == True or self.nographic == True: > self.qemu_opt += " -serial mon:stdio" > else: > self.qemu_opt += " -serial mon:vc" > @@ -1364,7 +1387,7 @@ class BaseConfig(object): > if not os.access(qemu_bin, os.X_OK): > raise OEPathError("No QEMU binary '%s' could be found" % > qemu_bin) > > - self.qemu_opt = "%s %s %s %s %s %s" % (qemu_bin, > self.get('NETWORK_CMD'), self.get('QB_RNG'), self.get('QB_GRAPHICS'), > self.get('ROOTFS_OPTIONS'), self.get('QB_OPT_APPEND')) > + self.qemu_opt = "%s %s %s %s %s" % (qemu_bin, > self.get('NETWORK_CMD'), self.get('QB_RNG'), self.get('ROOTFS_OPTIONS'), > self.get('QB_OPT_APPEND')) > > for ovmf in self.ovmf_bios: > format = ovmf.rsplit('.', 1)[-1] > @@ -1389,6 +1412,7 @@ class BaseConfig(object): > self.qemu_opt += " -snapshot" > > self.setup_serial() > + self.setup_vga() > > def start_qemu(self): > import shlex > -- > 2.20.1 > > > >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#149438): https://lists.openembedded.org/g/openembedded-core/message/149438 Mute This Topic: https://lists.openembedded.org/mt/81241095/21656 Group Owner: openembedded-core+ow...@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-