sof/scripts
Marc Herbert 9d7c33adc3 xtensa-build-zephyr.py: make --deployable-build the default
Every Linux developer should use deployable builds by default.

Until Peter Ujfalusi's very recent work in this script, we had a
complete `/lib/firmware/` structure disconnect between the IPC4 output
of this script and the IPC4 expectations of the Linux kernel. To
workaround this disconnect, every CI and Linux developer used to
implement duplicate and inconsistent firmware deployment hacks.

People crafting sof-bin releases also had to organize IPC4 releases
manually, which was extremely error-prone and with limited test
coverage (Thanks Kai and Mengdong!)

Now that Peter gracefully fixed the layout, documented it in sof-docs
and implemented it in this script, the time for all Linux developers to
drop their inconsistent deployment hacks is overdue. All these hacks
must be replaced with a simple, one-line recursive copy which makes sure
the layout committed in version control is constantly tested by
everyone.

So, make deployable builds the new default.

The new default will also help with sof-bin releases, making sure they
use a well tested /lib/firmware/ layout.

The --no-deployable-build was recently introduced to help minimize
disruption and migration effort for people and automation who do NOT use
Linux. The `/lib/firmware/` directory structure is irrelevant outside
Linux (but everyone is of course free to choose it)

Signed-off-by: Marc Herbert <marc.herbert@intel.com>
2024-04-02 20:00:13 +03:00
..
cmake cmake: a few new add_local_sources[_ifdef]() compatibility macros 2023-11-29 14:52:36 +00:00
docker_build Dockerfile: add AMD/Vangogh gcc toolchain 2023-07-14 12:50:49 +01:00
kconfig
scan platform: remove support for cAVS 1.5 platforms 2023-03-02 11:28:23 +00:00
README.docker platform: remove support for Baytrail and Cherrytrail 2023-02-08 13:36:04 +00:00
build-tools.sh fuzzer: remove old fuzzer 2023-03-15 13:23:42 +00:00
checkpatch.pl cmake: stop sneakily downloading missing submodules at build time 2022-08-31 10:40:04 +01:00
const_structs.checkpatch
docker-qemu.sh
docker-run.sh scripts/docker-run.sh: run with sudo-cwd.sh 2023-05-02 21:09:11 +03:00
fuzz.sh fuzz.sh: add -jobs parameter. Switch to built-in -max_total_time. 2024-02-29 13:26:02 +00:00
gen-doc.sh gen-doc.sh: Use getopts for parsing arguments 2020-03-31 15:10:34 +01:00
host-testbench.sh host-testbench.sh: add FullTest variable and set 0 by default 2022-09-07 22:09:33 +01:00
llext_link_helper.py smart-amp-test: make a loadable module 2024-03-08 16:25:28 +02:00
parse_sparse_output.sh parse_sparse_output.sh: add "removes address space" and "too many" 2023-04-25 11:52:23 +03:00
qemu-check.sh platform: remove support for cAVS 2.0 platforms 2023-03-07 14:02:18 +02:00
rebuild-testbench.sh rebuild-testbench.sh: add incremental build command in help message 2023-12-19 16:54:45 +00:00
run-mocks.sh Scripts: run-mocks.sh: Change default config to avoid error 2023-08-25 16:55:18 +01:00
set_xtensa_params.sh xtensa-build-zephyr.py: clarify XTENSA_SYSTEM and XTENSA_CORE in --help 2024-03-01 16:45:59 +00:00
sof-post-commit-hook.sh check patch: allow C99 comments 2021-12-06 09:58:32 +00:00
sof-pre-commit-hook.sh
sof-target-install.sh
sof_fw.kb
spelling.txt
sudo-cwd.sh scripts/sudo-cwd.sh: don't try to copy missing sudoers.d/ permissions 2023-01-06 14:52:09 +00:00
test-repro-build.sh script: test-repro-build: change imx8 with AMD's rmb 2024-02-16 21:48:10 +02:00
xtensa-build-all.sh scripts: xtensa-build-all: remove imx8ulp 2024-03-15 13:14:15 +02:00
xtensa-build-zephyr.py xtensa-build-zephyr.py: make --deployable-build the default 2024-04-02 20:00:13 +03:00

README.docker

The docker container provided in docker_build sets up a build environment for
building Sound Open Firmware. A working docker installation is needed to run
the docker build container.

Note: In order to run docker as non sudo/root user please run.

sudo usermod -aG docker your-user-name

Then logout and login again.

Quick Start:

First, build the docker container. This step needs to be done initially and
when the toolchain or alsa dependencies are updated.

cd scripts/docker_build

./docker-build.sh

After the container is built, it can be used to run the scripts.

To build for tigerlake:
./scripts/docker-run.sh ./scripts/xtensa-build-all.sh -l tgl
or (may need password test0000 for rimage install)
./scripts/docker-run.sh ./scripts/xtensa-build-all.sh tgl

To rebuild the topology and logger:
./scripts/docker-run.sh ./scripts/build-tools.sh

An incremental sof.git build:
./scripts/docker-run.sh make

Or enter a shell:
./scripts/docker-run.sh bash