Skip to content

superna9999/meta-meson

Repository files navigation

Upstream Linux Amlogic Meson Yocto/Openembedded Layer

Now Amlogic SoCs of the Meson family are supported upstream :

  • Meson8b : s805
  • Meson-GX : s905 (GXBB) s905x/S905d (GXL) s912 (GXM)
  • Meson AXG : a113d
  • Meson G12A : S905X2, S905D2, S905Y2
  • Meson G12B : S922X, A311D
  • Meson SM1 : S905X3, S905D3

This Yocto/Openembedded will help building images for these SoCs using the lastest uptream linux branch.

Build Setup

Create a home repository for the build :

$ mkdir amlogic-bsp

Checkout Yocto/Poky :

$ cd amlogic-bsp
amlogic-bsp$ git clone --depth 1 git://git.yoctoproject.org/poky -b nanbield poky

Checkout meta-meson :

amlogic-bsp$ git clone https://github.com/superna9999/meta-meson.git meta-meson -b nanbield

Initialize environment :

amlogic-bsp$ TEMPLATECONF=../meta-meson/conf/templates/default
amlogic-bsp$ source poky/oe-init-build-env
amlogic-bsp/build$ cp ../poky/meta-poky/conf/local.conf.sample conf/local.conf

or :

amlogic-bsp$ source poky/oe-init-build-env
amlogic-bsp/build$ bitbake-layers add-layer $PWD/../meta-meson/

Selecting Machine to build for

This layer aims to support all mainline supported boards, but some of them have a vendor U-Boot loaded on the eMMC and can only be booted by pressing the "update" button.

The libretech-cc, hardkernel-odroidc2, amlogic-p212 and khadas-vim are fully mainline sdcard images, with mainline U-Boot and mainline Linux with a single ext4 partition. To boot this image the eMMC u-boot must be disabled by erasing the first sectors of the eMMC or removing it for libretech-cc and hardkernel-odroidc2 boards.

Available S805 machines are :

  • hardkernel-odroidc1 : .wic image to be booted using vendor u-boot
  • amlogic-s805 (all S805 machines) : generic non-bootable .wic image to be customized

Available S905 machines are :

  • amlogic-p200 : complete .wic sdcard image with mainline U-boot
  • amlogic-p200-sdboot : .wic image to be booted using vendor u-boot
  • amlogic-p201 : complete .wic sdcard image with mainline U-boot
  • amlogic-p201-sdboot : .wic image to be booted using vendor u-boot
  • hardkernel-odroidc2 : complete .wic sdcard image with mainline U-boot
  • hardkernel-odroidc2-sdboot : .wic image to be booted using vendor u-boot
  • tronsmart-vega-s95-pro : .wic image to be booted using vendor u-boot
  • tronsmart-vega-s95-meta : .wic image to be booted using vendor u-boot
  • tronsmart-vega-s95-telos : .wic image to be booted using vendor u-boot
  • nexbox-a95x-s905 : .wic image to be booted using vendor u-boot
  • wetek-hub : .wic image to be booted using vendor u-boot
  • wetek-play2 : .wic image to be booted using vendor u-boot
  • amlogic-s905 (all S905 machines) : generic non-bootable .wic image to be customized

Available S905D machines are :

  • amlogic-p230 : .wic image to be booted using vendor u-boot
  • amlogic-p231 : .wic image to be booted using vendor u-boot
  • mecool-kii-pro : .wic image to be booted using vendor u-boot
  • amlogic-s905d (all S905D machines) : generic non-bootable .wic image to be customized

Available S905X machines are :

  • libretech-ac : complete bootable .wic sdcard image using already flashed u-boot on SPI
  • libretech-cc : complete bootable .wic sdcard image with mainline U-boot
  • libretech-cc-sdboot : .wic image to be booted using vendor u-boot
  • amlogic-p212 : complete bootable .wic sdcard image with mainline U-boot
  • amlogic-p212-sdboot : .wic image to be booted using vendor u-boot
  • nexbox-a95x-s905x : .wic image to be booted using vendor u-boot
  • khadas-vim : complete bootable .wic sdcard image with mainline U-boot
  • khadas-vim-sdboot : .wic image to be booted using vendor u-boot
  • hwacom-amazetv : .wic image to be booted using vendor u-boot
  • amlogic-p241: .wic image to be booted using vendor u-boot
  • amlogic-p281: .wic image to be booted using vendor u-boot
  • oranth-tx3-mini: .wic image to be booted using vendor u-boot
  • osmc-vero4k-plus .wic image to be booted using vendor u-boot
  • amlogic-s905x (all S905X machines) : generic non-bootable .wic image to be customized

Available S912 machines are :

  • amlogic-q200 : .wic image to be booted using vendor u-boot
  • amlogic-q201 : .wic image to be booted using vendor u-boot
  • nexbox-a1 : .wic image to be booted using vendor u-boot
  • khadas-vim2 : .wic image to be booted using vendor u-boot
  • mecool-kiii-pro : .wic image to be booted using vendor u-boot
  • minix-neo-u9h : .wic image to be booted using vendor u-boot
  • beelink-gt1-ultimate: complete bootable .wic sdcard image with mainline U-boot
  • amlogic-s912 (all S912 machines) : generic non-bootable .wic image to be customized

Available A113d machine :

  • amlogic-s400 : complete bootable .wic eMMC image with mainline U-boot

Available S905X2 machines are :

  • amlogic-u200: .wic image to be booted using vendor u-boot
  • amediatech-x96-max: .wic image to be booted using vendor u-boot
  • seirobotics-sei510: complete bootable .wic sdcard image with mainline U-boot

Available S905Y2 machines are :

  • radxa-zero: complete bootable .wic sdcard image with mainline U-boot

Available S922X machines are :

  • hardkernel-odroidn2: complete bootable .wic sdcard image with mainline U-boot
  • hardkernel-odroidn2-sdboot: .wic image to be booted using vendor u-boot
  • hardkernel-odroidn2plus: complete bootable .wic sdcard image with mainline U-boot
  • hardkernel-odroidn2plus-sdboot: .wic image to be booted using vendor u-boot
  • hardkernel-odroid-n2l: complete bootable .wic sdcard image with mainline U-boot

Available A311D machines are :

  • khadas-vim3 : complete bootable .wic sdcard image with mainline U-boot
  • khadas-vim3-sdboot : .wic image to be booted using vendor u-boot
  • hardkernel-odroid-go-ultra: complete bootable .wic sdcard image with mainline U-boot
  • bananapi-bpi-m2s: complete bootable .wic sdcard image with mainline U-boot
  • bananapi-bpi-cm4io: complete bootable .wic sdcard image with mainline U-boot

Available S905X3/D3 machines are :

  • khadas-vim3l : complete bootable .wic sdcard image with mainline U-boot
  • khadas-vim3l-sdboot : .wic image to be booted using vendor u-boot
  • seirobotics-sei610: complete bootable .wic sdcard image with mainline U-boot
  • hardkernel-odroidc4: complete bootable .wic sdcard image with mainline U-boot
  • hardkernel-odroidc4-sdboot: .wic image to be booted using vendor u-boot
  • hardkernel-odroidhc4: complete bootable .wic sdcard image with mainline U-boot
  • hardkernel-odroidhc4-sdboot: .wic image to be booted using vendor u-boot
  • haochuangy-h96-max: .wic image to be booted using vendor u-boot
  • cyx-a95xf3-air: .wic image to be booted using vendor u-boot
  • cyx-a95xf3-air-gbit: .wic image to be booted using vendor u-boot
  • bananapi-bpi-m5: complete bootable .wic sdcard image with mainline U-boot
  • bananapi-bpi-m2-pro: complete bootable .wic sdcard image with mainline U-boot

Available S9xxx machines are :

  • amlogic-s9xxx (all S905 and S905X and S912 machines) : generic non-bootable .wic image to be customized

Selecting Image type

Images types available (in addition of standard Poky/OE images) :

  • amlogic-image-headless-sd : to flash on an eMMC or SD-Card
  • amlogic-image-headless-initrd : to be loaded as a ramdisk
  • amlogic-image-sato : Graphical images with X11 and Sato environment to flash on an eMMC or SD-Card

Standard types are :

  • core-image-base : Basic console image with boot logo

Building example

Building SD image for all S905 and S905X and S912 machines :

amlogic-bsp/build$ export MACHINE=amlogic-s9xxx
amlogic-bsp/build$ bitbake amlogic-image-sato

A .wic image will be generated in the tmp/deploy/images/$MACHINE/ directory.

This Image contains a FAT32 BOOT partition will the kernel uImage and .dtb, compatible with Amlogic U-Boot already flashed on your device.

For the amlogic-p212, khadas-vim and libretech-cc, Mainline U-Boot is automatically installed in a single ext4 partition .wic image in the tmp/deploy/images/$MACHINE/ directory.

Flash the .wic file with the Etcher tool from https://etcher.io/

Or for the connoisseurs :

You will be able to dd the image onto the raw SDcard like :

sudo dd if=tmp/deploy/images/libretech-cc/core-image-sato-libretech-cc.wic of=/dev/mmcblk0

Build with kas

The kas tool is installed via Python pip. The recommended way is to use an virtual environment for this.

$ python3 -m venv venv
$ source venv/bin/activate
$ pip3 install wheel kas

To start a build we just need to run the command kas build <configuration>.yml

$ source venv/bin/activate
$ DL_DIR=/data/downloads SSTATE_DIR=/data/sstate-cache kas build kas/kas-poky-meson.yml

The environment variable DL_DIR will allow to use a common place for the downloads across different projects. The same applies to the SSTATE_DIR variable.

To build for a specific machine use the environment variable KAS_MACHINE.

Please check the kas manual for more details.