Yocto meta layer for pine64
PHP BitBake Batchfile
Switch branches/tags
Nothing to show
Clone or download
mont3z Merge pull request #4 from allenh1/patch-1
Fix broken link in README
Latest commit 4a0ccee Nov 10, 2017



This layer depends on:

poky URI: git://git.yoctoproject.org/poky.git branch: morty revision: HEAD


For the following instructions we assume you are on a Linux Ubuntu or Debian distribution compatible with Yocto Morty. However, most of the instructions should also be valid for other Linux systems.

Install required packages for Yocto:

  sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm

Download the required sources to some folder in your home directory. For these instructions, we use the folder ~/yocto:

  mkdir ~/yocto && cd ~/yocto
  git clone -b morty git://git.yoctoproject.org/poky.git
  git clone -b morty https://github.com/mont3z/meta-pine64.git

Download and untar linaro gnueabihf toolchain which will be used for compiling u-boot: (Note: this toolchain is for 64-bits host machines, if your PC is not 64 bits you need to compile a 32 bits linaro toolchain.)

  mkdir ~/linaro-gnueabihf && cd ~/linaro-gnueabihf
  wget https://releases.linaro.org/components/toolchain/binaries/latest-5/arm-linux-gnueabihf/gcc-linaro-5.4.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
  tar xvf gcc-linaro-5.4.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz --strip 1

To initialize the build environment of Yocto, execute:

  cd ~/yocto/poky
  . oe-init-build-env

The script oe-init-build-env creates an initial build folder at ~/yocto/poky/build and corresponding build configuration files at ~/yocto/poky/build/conf.

The file ~/yocto/poky/build/conf/bblayers.conf defines the location of Yocto meta layers. Edit this file and add the absolute paths to the layers needed by meta-pine64 to the variable BBLAYERS. For example, for a user "ME" the absolute paths to these meta layers would be:

  BBLAYERS ?= " \
    /home/ME/yocto/poky/meta \
    /home/ME/yocto/poky/meta-poky \
    /home/ME/yocto/meta-pine64 \

The variable MACHINE of local.conf defines the target hardware for which we will cross-compile. Make sure it is set to

  MACHINE ?= "pine64"

Additionally, add the following line to your local.conf to opt for linaro toolchain:

  # Substitute ME by your username or whatever path you unpacked linaro gnu eabihf
  LINARO_EABIHF_PATH = "/home/ME/linaro-gnueabihf"


To initialize the build environment, execute:

  cd ~/yocto/poky
  . oe-init-build-env

Your configuration setup at ~/yocto/poky/build/conf will be preserved.

To create a minimal system, in your build folder ~/yocto/poky/build execute the following command. This image only has a login interface in UART. You'll need a RS-232 to USB converter to see it. Login with the user "root" (no password).

  bitbake core-image-minimal

To create a yocto sato image, in your build folder ~/yocto/poky/build execute the following command. Image with Sato, a mobile environment and visual style for mobile devices. It uses pine64 HDMI output and supports X11 with a Sato theme, Pimlico applications, and contains terminal, editor, and file manager.

  bitbake core-image-sato


Under Linux, insert a USB flash drive. Assuming the USB flash drive takes device /dev/sdf, use dd to copy the live image to it. For example:

WARNING: dd can destroy your HDD data if not used with the proper device path.

  cd ~/yocto/poky/build/tmp/deploy/images/pine64/
  # for image minimal
  sudo dd if=core-image-minimal-pine64.wic of=/dev/sdf
  # for image sato
  sudo dd if=core-image-sato-pine64.wic of=/dev/sdf


This README file was adapted from: * https://github.com/bmwcarit/dpc/blob/master/README.md * https://wiki.yoctoproject.org/wiki/Web_Application_for_Interactive_Kiosk_Devices