Commit Graph

7 Commits

Author SHA1 Message Date
Yann E. MORIN
131cb09c79 board/qemu: fix post-image
Last-minute changes to d9b244d8a3 (board/qemu: define start qemu
script outside of post-image script) were not tested before being
pushed, so they introduced a bug.

As Arnout put it:
    [...] multiple expressions need a -e to interpret them as
    expressions (now they're interpreted as file names).

Fixes: d9b244d8a3

Reported-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: James Knight <james.d.knight@live.com>
2023-04-13 19:36:16 +02:00
Yann E. MORIN
b32d7c99c6 board/qemu: fix shellcheck in post-image script
Commit 270759aff3cf (board/qemu: define start qemu script outside of
post-image script) touches board/qemu/post-image.sh, so that exposed
existing shellcheck issues.

Fix those now.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
Cc: James Knight <james.d.knight@live.com>
2023-04-10 23:16:55 +02:00
James Knight
d9b244d8a3 board/qemu: define start qemu script outside of post-image script
The following moves the definition of the QEMU board's `start-qemu.sh`
helper script from being inlined in the post-image script into its own
file. This should, in theory, make it easier to maintain the script in
the future.

Signed-off-by: James Knight <james.d.knight@live.com>
[yann.morin.1998@free.fr:
  - don't sub-shell in the script
  - merge all 3 sed calls into one
  - create dest file with the sed, don't cp first
  - also substitute HOST_DIR
  - fix shellcheck
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2023-04-10 23:16:16 +02:00
Romain Naour
16430fd8c6 configs/qemu_arm_vexpress_tz_defconfig: build start-qemu.sh
When tags was added by commit 011206b2bf
to detect the qemu command line, the qemu_arm_vexpress_tz_defconfig
was ignored due to a build issue.

This build issue has been fixed by previous patches, so we can
enable the runtime testing by adding the tag in the readme.txt
and the post-image script in the defconfig.

Since Qemu from HOST_DIR is now executed directly from BINARIES_DIR,
we can remove all the string before "qemu-system-*".

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2020-12-05 22:35:07 +01:00
Romain Naour
3fc3289a3f board/qemu/post-image.sh: execute from BINARIES_DIR
Usually the qemu command line start directly with "qemu-system-<arch> ...".
But the command line for qemu_arm_vexpress_tz_defconfig start by doing
"cd output/images && ../host/bin/qemu-system-arm". This is necessary
since boot binaries, except BL1, are primarily loaded via semi-hosting
so all binaries has to reside in the same directory as QEMU is started
from [1].

To order to handle this case correctly, update the post-image.sh used
by all qemu defconfigs to execute qemu from BINARIES_DIR.

Since we have to change the current directory use a subshell to
restore the current directory after Qemu execution.

[1] 4ebbea9592/docs/plat/qemu.rst

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2020-12-05 22:34:28 +01:00
Romain Naour
7c48c677a9 board/qemu/post-image.sh: rename IMAGE_DIR to BINARIES_DIR
The output/images directory is called BINARIES_DIR in the
Buildroot manual, not IMAGE_DIR.

Signed-off-by: Romain Naour <romain.naour@gmail.com>
Cc: Yann E. MORIN <yann.morin.1998@free.fr>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2020-12-05 22:33:44 +01:00
Romain Naour
575493c186 board/qemu: add post-image script for gitlab qemu testing
This commit add a post-image script to be used by each qemu board
defconfig in order to generate start-qemu.sh in BINARIES_DIR. The
start-qemu.sh script can be used by Buildroot user to start Qemu
or by a gitlab CI.

To find the correct qemu command line, we use the second post script
argument which must contain "$(BR2_DEFCONFIG)"

    BR2_ROOTFS_POST_SCRIPT_ARGS="$(BR2_DEFCONFIG)"

The post-image script expect something like
"/path/to/qemu_aarch64_virt_defconfig" in BR2_DEFCONFIG.

Doing a basename allow to retrieve the name of the defconfig file that
should match on on the "tag" previously introduced in readme.txt files.

For running in the CI, as well as running from a remote machine (e.g. on
a remote build machine), it is better not to start in graphical mode,
but only with the serial line attached to the terminal. The post-build
script prepares two sets of arguments for each case, graphical or
serial, and stores them in the start-qemu.sh script, which then decodes
which to use, based on an argument on the command line (default is still
graphical)

sh4/sh4eb needs a special handling by adding "-serial stdio -display
none"; others only require "-nographics". Some qemu command lines
already contain "-serial stdio", but that does not play nicely with
"-nographics", we remove that when going serial-only (although this
might seem counter-intuitive).

Finally, we ensure the script uses our qemu-system (if it was built).

Signed-off-by: Romain Naour <romain.naour@smile.fr>
[yann.morin.1998@free.fr:
  - drop the knowledge about gitlab-ci, replace with an argument to
    pass to start-qemu.sh
  - adapt the commit log accordingly
]
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2020-04-13 21:51:12 +02:00