Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/khadas/fenix

One-stop script set to build Ubuntu/Debian images
https://github.com/khadas/fenix

amlogic arm64v8 build-tools debian distribution kernel kodi rockchip ubuntu

Last synced: about 2 months ago
JSON representation

One-stop script set to build Ubuntu/Debian images

Awesome Lists containing this project

README

        

[![Build](https://github.com/khadas/fenix/actions/workflows/build.yml/badge.svg)](https://github.com/khadas/fenix/actions/workflows/build.yml)
[![Download](https://img.shields.io/badge/Test%20Build%20Images-Download-blue)](http://build.khadas.com:8080/khadas/fenix/images/)

# Fenix script set to build Ubuntu/Debian images

[![Documentation](https://img.shields.io/badge/Documentation-Reference-blue.svg)](https://docs.khadas.com/products/sbc/common/development/build-ubuntu)
[![Licence](https://img.shields.io/badge/Licence-GPL--2.0-brightgreen.svg)](https://github.com/khadas/fenix/blob/master/LICENSE)
[![Version](https://img.shields.io/badge/Version-v1.7.2-blue.svg)](https://github.com/khadas/fenix/tree/v1.7.2)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/khadas/fenix/pulls)

Supported build host:

* `Ubuntu 22.04 x64`
* `Building Ubuntu 22.04 image`
* `Building Ubuntu 24.04 image`
* `Building Debian 12 image`
* `Docker`

## How to use

### Install essential packages

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

### Clone Fenix repository

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

### Setup build environment

* Setup environment manually.

```bash
$ source env/setenv.sh
```

* Or you can load environment configuration from file.

```bash
$ source env/setenv.sh config config-template.conf
```

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

### Build image

```bash
$ make
```
For Chinese users, it's better to use mirror from China:

```bash
$ DOWNLOAD_MIRROR=china make
```

## Somethings with Redhat series

### Disable SELinux

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

## Build in Docker

### Get Docker image

```bash
$ cd fenix
$ docker pull numbqq/fenix:latest
```

### Build image in Docker

Run fenix in docker.

```bash
$ 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.

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

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

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

To restart the Docker container a second time.

```bash
$ docker start fenix
$ docker exec -ti fenix bash
```