Skip to content
Peter Saunderson edited this page Jul 27, 2016 · 6 revisions

Home / Tutorial Index / Getting started

Using smart update

List of basic commands needed to produce your first Linux build

Clone https://github.com/peteasa/parallella.git repository:

$ git clone https://github.com/peteasa/parallella.git

Choose the branch that you want to work with. Default is elink-redesign. This will make available all the sources that build an SD card with parallella-linux, oh fpga with hdmi interface. The build step does not actually do the fpga build so you dont have to have xilinx tools installed. Other branches are described on the wiki home page.

$ cd parallella
$ git checkout elink-redesign

then in the parallella directory run:

$ ./initgitsubmodules.sh

Alternatively if you are updating to the latest version:

$ source ./updatesubmodules.sh

Before you start for the kernel and linux build ensure you have the necessary linux build tools

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

Start the Yocto build

$ cd parallella-yoctobuild
$ source ./prepareyoctobuild.sh

This will change the path to the parallella-yoctobuild/build_parallella folder where you can build the yocto release

$ bitbake hdmi-image

DONT FORGET: do not press CTRL-C more than once to stop a bitbake build because you can corrupt the cache and cause many hours of failing builds for unexplained reasons.

Files to change to add a new FPGA

Assuming you have used the parallella-elink-redesign branch to make meta-example available (or just look at files in meta-example)

parallella/parallella-yoctobuild/meta-example/recipes-bsp/bitstream/parallella-hdmi-bitstream.bbappend Add your git repository that contains your updated FPGA bitstream for example

### You could setup a local bare repository with the fpga for example
SRC_URI = "git://~/parallella/myexamples.git"
SRCREV = "--enter your desired sha1 here!--"

parallella/parallella-yoctobuild/meta-example/recipes-bsp/device-tree/device-tree.bbappend Ensure that your device-tree changes are included in the referenced files, or create new files stored in parallella/parallella-yoctobuild/meta-example/conf/machine/boards/parallella

MACHINE_DEVICETREE = " \
		parallella/parallella-example.dtsi \
		parallella/parallella-hdmi-example.dtsi \
		parallella/parallella-hdmi-example.dts \
		parallella/parallella-hdmi-mmc-boot-example.dts \
		"

List of commands to build hello world application on the parallella target

Copy the hello world folders to the target

$ cd parallella/examples/epiphany
$ rcp -r ./hello_world [email protected]:/home/root
$ rcp setup-epiphany-sdk-on-target.sh [email protected]:/home/root

ssh to the parallella and compile the hello world program

$ ssh [email protected]
$ source setup-epiphany-sdk-on-target.sh
$ cd hello_world
$ make

Run the hello world program on the parallella

$ /usr/epiphany/bin/hello_world

List of commands to build hello world application on the build machine

Build the Yocto SDK on the build machine

$ cd parallella-yoctobuild/build_parallella
$ bitbake -c populate_sdk hdmi-image-example

Install the SDK on the build machine (install using the default settings) and create the folder for the SDK on the system and change the owner to yourid (ie if your linux name is jess then your home folder will be /home/jess and you should use chown jess:jess /opt/poky below:

$ sudo mkdir /opt/poky
$ sudo chown yourid:yourid /opt/poky
$ tmp/deploy/sdk/poky-glibc-x86_64-hdmi-image-debug-armv7ahf-vfp-neon-toolchain-1.8.sh

Install the SDK paths into environment

$ source /opt/poky/1.8/environment-setup-armv7ahf-vfp-neon-poky-linux-gnueabi

Setup the Epiphany specific environment

$ cd examples/epiphany
$ source setup-epiphany-sdk-in-poky-sdk.sh

Build the Hello world application

$ cd hello-world
$ make

Copy to the target

$ rcp ./host/hello_world [email protected]:/home/root
$ rcp ./epiphany/e_hello_world.srec [email protected]:/usr/epiphany/bin/

Run on the target

$ ssh [email protected]
$ source setup-epiphany-sdk-on-target.sh
$ ./hello_world

Using smart update