This repository provides a Docker container for building Variscite software releases. These configurations have been tested:
Container Version | Variscite Release |
---|---|
Ubuntu 20.04 | - Yocto Dunfell, Hardknott - Android 10, 11 - Debian Bullseye - Boot2Qt Dunfell |
Ubuntu 18.04 | - Yocto Zeus |
Ubuntu 16.04 | - Yocto Pyro, Rocko, Sumo, Thud, Warrior |
Ubuntu 14.04 | - Android 6 |
From a brand new Ubuntu installation:
- Install Docker
$ sudo apt update && sudo apt install docker.io
2a. (If using distro-packaged kernel) Install Host Linux Headers (required for some Yocto versions)$ sudo apt install linux-headers-$(uname -r)
2b. (If using locally-built kernel) ensure you've runmake headers_install
andmake modules_install
in your kernel source tree. - Give permissions to run docker without sudo
$ sudo usermod -aG docker ${USER}
- Logout and Login again for permissions to take effect
- Clone this repository
On Host Computer:
$ mkdir ~/var-fslc-yocto
$ ./run.sh -w ~/var-fslc-yocto
You're now running in a container with all build dependencies, and can build as normal.
Yocto Example:
vari@460e5ba862b1:/workdir$ repo init -u https://github.com/varigit/variscite-bsp-platform.git -b refs/tags/dunfell-fslc-5.4-2.1.x-mx8mn-v1.2 -m default.xml
vari@460e5ba862b1:/workdir$ repo sync -j4
vari@460e5ba862b1:/workdir$ MACHINE=imx8mn-var-som DISTRO=fslc-xwayland . setup-environment build_xwayland
vari@460e5ba862b1:/workdir$ bitbake fsl-image-gui
When Building Debian, Docker requires access to the Host devices. To provide access, pass the -p argument to start Docker in privileged mode.
Example:
$ mkdir ~/var-debian
$ ./run.sh -p -w ~/var-debian
You may use the sudo command inside the container with these credentials:
Username | Password |
---|---|
vari | ubuntu |
Variscite hosts prebuilt containers in the github registry: ghcr.io/varigit/var-host-docker-containers/yocto-env
To make sure you're always pulling the latest version of the container, use the -b
argument:
./run.sh -b
It may be desirable to build and use a local image if you need to add packages that are not in Variscite's registry. Do this by using the -l
argument:
./run.sh -l
You can rebuild the local image by passing the -b
argument:
./run.sh -l -b
The Docker Image will be built automatically by ./run.sh -l
the first time. Any commits to the GIT repository will cause the image to be rebuilt with the new changes using cache (not necessarily the latest from Ubuntu)
To force the container to be rebuilt with the latest from Ubuntu, pass the -f
argument:
$ ./run.sh -l -f ...