Skip to content
README.md 2.69 KiB
Newer Older
Bertrand Mandrin's avatar
Bertrand Mandrin committed
# Bluegreen machines

This project contains [kas](https://kas.readthedocs.io/en/latest/index.html) configuration to download meta-bluegreen and all required layers.
[EWAOL](https://gitlab.arm.com/ewaol/meta-ewaol) is the reference implementation of the [SOAFEE](http://soafee.io) project and is used as a baseline for bluegreen
project.

## 1. Tools
Bertrand Mandrin's avatar
Bertrand Mandrin committed

You must install essential host packages on your build host. The following command installs the host packages based on an Ubuntu distribution:

```shell
Sam Moss's avatar
Sam Moss committed
sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libgl1 libglx-mesa0 libsdl1.2-dev pylint xterm python3-subunit mesa-common-dev zstd liblz4-tool
```

Install the kas tool, ensuring you have a version 3.0.2 or greater. The preferred method is installation using the package manager of your Linux distribuntion.

### 1.a. Preferred: Install kas using package manager on Linux
On Ubuntu Linux:

```shell
sudo apt install kas
```

### 1.b. Alternative: Install kas using pip

If you can't install kas as above, you can follow the instructions [here](https://kas.readthedocs.io/en/latest/userguide.html).

However, please note some issues where encountered when using kas installed from pip. See Known issues, below.

## 2. Build

To build bluegreen, use the helper script `build.sh` which gives a consistent way of building for the target platforms.

`build.sh` is located in the root of this project. It relies on kas to do the actual build.

```shell
Bertrand Mandrin's avatar
Bertrand Mandrin committed
# Building for the generic-arm64 target
./build.sh generic-arm64 baremetal
```

## 3. Install
Installation instructions for each platform is outlined in the documentation for that platform. Check out the table in the status section below.
### 3.1. Status
|   Machine     | Status | Documentation |
|---------------|--------|---------------|
| generic-arm64 | Ok     | [Generic arm64 Documentation](docs/generic-arm64.md) |
### 3.2. Machine specific notes
#### 3.2.1. generic-arm64
Bertrand Mandrin's avatar
Bertrand Mandrin committed

Put UEFI firmware on the sdcard and the bluegreen image on a SD Card.

#### 3.2.2. Xillinx ZCU102
See [ZCU102 SD card boot documentation](docs/zcu102_sd_boot.md).
#### 3.2.3. Raspberry Pi 4
Bertrand Mandrin's avatar
Bertrand Mandrin committed

This has been tested on the RPi4 using [SystemReady compliant UEFI firmware](https://github.com/pftf/RPi4).

## 4. Known issues

* On Ubuntu 22.04, using `pip` to install `kas` in a Python virtual environement produced a tool that wasn't able to finish the build. Root cause is unknown, workaround is to get `kas` from with `apt install`:
```shell
sudo apt install kas
```

* On Ubuntu 22.04, it was necessary to manually install libtinfo5:
```shell
sudo apt install libtinfo5
```