The aim of this project is to create an hdmi version for the parallella board using an fpga built from the oh project with the latest Epiphany SDK
A Simple build environment for Parallella using Yocto
Two branches are significant in this repository:
- elink-redesign - this branch
- parallella-elink-redesign - contains an example layer that demonstrates how to extend the yocto build to add your own design. See the parallella project for more details and Tutorials
To use yocto
you first need to install some packages. See latest Yocto Project Quick Start. This assumes you are working on a Ubuntu machine:
$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm
Clone this repository onto your Linux build machine:
$ git clone [email protected]:peteasa/parallella-yoctobuild
$ cd parallella-yoctobuild
Checkout the branch that provides the versions that you want to use:
$ git checkout elink-redesign
To prepare the environment and download the necessary git submodules, you need to run the initgitsubmodules.sh
script. This only needs to be done once:
$ source initgitsubmodules.sh
The result will be new folders poky
, meta-xilinx
, meta-parallella
, meta-epiphany
and meta-exotic
created from specific commits on github.
To prepare and run oe-init-build-env
you need to run the prepareyoctobuild.sh
script:
$ source prepareyoctobuild.sh
This needs to be done once per session.
oe-init-build-env
will change the working directory to the build
folder.
To start the yocto build in the build
folder run:
$ bitbake hdmi-image
If you want an SDK then in the same build
folder, run:
$ bitbake -c populate_sdk hdmi-image
Other images to build can be found in meta-parallella/recipes-epiphany/images
.
The result will be a complete build for the parallella board built on the build machine
parallella-yoctobuild/build_parallella/tmp/deploy/images/parallella-hdmi
Plus for free a complete distribution folder that you publish from a web server to update specific packages on the target - just like you use when you run sudo apt-get install
on your Linux build machine. This project uses smart as the package manager on the target:
$ smart update
$ smart upgrade
The SDK is found at parallella-yoctobuild/build_parallella/tmp/deploy/sdk
Yocto allows you to inherit from recipes and override things that you need to replace. In practice, to tailor this environment to your own requirements you only have to create a version of the bblayers.conf and local.conf files that suit your needs and copy them to build_parallella/conf at the appropriate time. The .gitignore file in this environment allows you to create folders like:
$ mkdir meta_mywork
$ mkdir meta-project
$ mkdir meta-projects
$ mkdir meta-test
the above folders will remain ignored by git system. With your version of local.conf and bblayers.conf and any additional layers or bbappend recipes stored in one of these four folders it is then possible to create the build that you need whilst at the same time being able to easily take new versions of this environment with a simple git update. So you dont need to modify any of the files I provide, making git updating easier (no conflicts or local checked out files).
Your workflow would be:
$ cd meta-project
$ source prepare-project.sh
prepare-project.sh would contain something like:
#!/bin/sh
cd ..
source poky/oe-init-build-env build_parallella
cp ../meta-project/local_conf/*.conf ./conf
Troubleshooting notes - Troubleshooting notes
Instructions for contributors - Instructions for contributors
Instructions for writing to the SD card - Create SD card