Subgraph Citadel image builder
Go to file
2018-03-04 12:35:15 -05:00
docs installer is good now 2018-02-19 12:46:59 -05:00
meta-citadel Updated a variable that was changed recently in poky 2018-03-03 21:39:04 -05:00
meta-gnome oops, how'd that end up there 2018-03-02 22:11:26 -05:00
meta-intel@9a4d583c7d meta-intel moved to submodule 2018-02-28 20:58:24 -05:00
meta-rust@8203dce091 updated meta-rust submodule 2018-03-02 12:17:49 -05:00
poky@1b7a9d4f63 poky added as submodule 2018-02-28 20:55:43 -05:00
scripts Re-enabled compressing the tarball or else all the other scripts break 2018-03-04 12:35:15 -05:00
.gitignore initial commit 2017-12-04 16:33:20 -05:00
.gitmodules meta-intel moved to submodule 2018-02-28 20:58:24 -05:00
Makefile added a makefile target to update git submodules 2018-02-13 10:32:31 -05:00
README.md added a makefile target to update git submodules 2018-02-13 10:32:31 -05:00
setup-build-env don't change the shell prompt 2018-02-03 10:24:39 -05:00

Building Citadel

Set up Docker

Building citadel requires that you have Docker CE installed on the build host. The version of Docker provided by your Linux distribution will probably not work and you should follow the following instructions instead:

After installing Docker you may need to start the docker daemon.

$ systemctl start docker

If you want the docker daemon to start automatically on boot you also need to enable it.

$ systemctl enable docker

You may optionally add your user account to the docker group so that you can issue docker commands without using sudo.

Warning: This is more convenient but be careful because containers can be configured to share any file on the host. A user with access to the docker group can easily escalate privileges to root while the docker daemon is running.

$ sudo usermod -aG docker $USER

Building with Docker

A Makefile is provided which only contains a couple of simple targets that execute docker commands to set up and run the builder container.

The project uses git submodules to track openembedded layers it depends upon. After cloning this repository you will need to retrieve the dependent submodules with the following command:

$ make update-submodules

To create the builder docker image use the following command. You only need to do this one time, but if you run it again Docker will realize that the Dockerfile has not changed and do nothing.

$ make docker-image

To list available make targets, run make help or just make as this is the default target:

$ make help

To run a shell inside the docker build container:

$ make docker-shell

The shell will run in the build directory and be configured to run build commands with bitbake.

To build a full citadel image:

$ make citadel-image

The build will take several hours the first time, but for later builds the build system will use cached artifacts stored in citadel/build/sstate-cache for components that have not changed and new builds will usually only take a few minutes.