Updated build instructions
This commit is contained in:
parent
70e7e027e2
commit
8a6fbf0749
54
README.md
54
README.md
@ -1,15 +1,49 @@
|
|||||||
|
# Building Citadel
|
||||||
|
|
||||||
|
## Set up Docker
|
||||||
|
|
||||||
## Very basic build instructions
|
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:
|
||||||
|
|
||||||
|
* [Installing Docker CE on Debian](https://docs.docker.com/install/linux/docker-ce/debian/)
|
||||||
|
* [Installing Docker CE on Fedora](https://docs.docker.com/install/linux/docker-ce/fedora/)
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
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 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:
|
||||||
|
|
||||||
$ source setup-build-env
|
|
||||||
$ bitbake citadel-image
|
$ bitbake citadel-image
|
||||||
|
|
||||||
## Git subtrees included
|
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.
|
||||||
$ git subtree add --prefix poky git://git.yoctoproject.org/poky.git master --squash
|
|
||||||
$ git subtree add --prefix meta-intel git://git.yoctoproject.org/meta-intel.git master --squash
|
|
||||||
$ git gc && git prune
|
|
||||||
|
|
||||||
* `https://www.atlassian.com/blog/git/alternatives-to-git-submodule-git-subtree`
|
|
||||||
* `https://legacy-developer.atlassian.com/blog/2015/05/the-power-of-git-subtree/`
|
|
||||||
|
Loading…
Reference in New Issue
Block a user