/fenix

One-stop script set to build Ubuntu/Debian images

Primary LanguageCGNU General Public License v2.0GPL-2.0

Release Build Test Build Ubuntu Test Build Debian Remove Old Artifacts

Fenix script set to build Ubuntu/Debian images

Documentation Licence Version PRs Welcome

Supported build host:

  • Ubuntu 18.04 Bionic x64
    • Building Ubuntu 18.04 Bionic image
  • Ubuntu 20.04 Focal x64
    • Building Ubuntu 18.04 Bionic image
    • Building Ubuntu 20.04 Focal image
    • Building Debian 10 Buster image
  • Docker

How to use

Install essential packages

$ sudo apt-get install git make lsb-release qemu-user-static

Clone Fenix repository

$ mkdir -p ~/project/khadas
$ cd ~/project/khadas
$ git clone --depth 1 https://github.com/khadas/fenix
$ cd fenix

Setup build environment

  • Setup environment manually.
$ source env/setenv.sh
  • Or you can load environment configuration from file.
$ source env/setenv.sh config config-template.conf

You need to edit config-template.conf file to correct variables.

Build image

$ make

For Chinese users, it's better to use mirror from China:

$ DOWNLOAD_MIRROR=china make

Somethings with Redhat series

Disable SELinux

$ vim /etc/selinux/config
$ SELINUX=enforcing --> SELINUX=disabled
$ sudo reboot

Build in Docker

Get Docker image

$ cd fenix
$ docker pull numbqq/fenix:latest

Build image in Docker

Run fenix in docker.

$ docker run -it --name fenix -v $(pwd):/home/khadas/fenix \
             -v /etc/localtime:/etc/localtime:ro \
             -v /etc/timezone:/etc/timezone:ro \
             -v $HOME/.ccache:/home/khadas/.ccache --privileged \
             --device=/dev/loop-control:/dev/loop-control \
             --device=/dev/loop0:/dev/loop0 --cap-add SYS_ADMIN \
             numbqq/fenix

We are in Docker container now, start to build.

khadas@919cab43f66d:~/fenix$ source env/setenv.sh
khadas@919cab43f66d:~/fenix$ make

For Chinese users, it's better to use mirror from China:

khadas@919cab43f66d:~/fenix$ DOWNLOAD_MIRROR=china make

To restart the Docker container a second time.

$ docker start fenix
$ docker exec -ti fenix bash