#!/bin/bash #Updated: 18 August 2016, by brindosch #Just use a clean Ubunut 14.04 and run this script ############## #ON TARGET #-------------- #sudo apt-get install qtbase5-dev libqt5serialport5-dev libusb-1.0-0-dev python-dev libxrender-dev libavahi-core-dev libavahi-compat-libdnssd-dev python-dev rsync ############# #ON HOST #--------- sudo apt-get update sudo apt-get upgrade #TO-DO verify what is really required #blacklist: protobuf-compiler lib32z1 lib32ncurses5 lib32bz2-1.0 zlib1g-dev sudo apt-get -qq -y install git rsync cmake build-essential qtbase5-dev libqt5serialport5-dev libusb-1.0-0-dev python-dev libxrender-dev libavahi-core-dev libavahi-compat-libdnssd-dev echo 'PATH=$PATH:$HOME/raspberrypi/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin' >> .bashrc #--------- export TARGET_IP=192.168.0.103 export TARGET_USER=pi export RASCROSS_DIR="$HOME/raspberrypi" export ROOTFS_DIR="$RASCROSS_DIR/rootfs" export HYPERION_DIR="$HOME/hyperion" #export IMX6_DIR="$HOME/hummingboard" export TOOLCHAIN_FILE="$HYPERION_DIR/Toolchain-RaspberryPi.cmake" export NATIVE_BUILD_DIR="$HYPERION_DIR/build" export TARGET_BUILD_DIR="$HYPERION_DIR/build-rpi" mkdir -p "$ROOTFS_DIR" rsync -rl --delete-after --copy-unsafe-links $TARGET_USER@$TARGET_IP:/{lib,usr} "$ROOTFS_DIR" ######## RPi specific ######### mkdir -p "$RASCROSS_DIR/firmware" git clone --depth 1 https://github.com/raspberrypi/firmware.git "$RASCROSS_DIR/firmware" ln -s "$RASCROSS_DIR/firmware/hardfp/opt" "$ROOTFS_DIR/opt" git clone --depth 1 git://github.com/raspberrypi/tools.git "$RASCROSS_DIR/tools" ##### End of RPi specific ###### ######## NOT TESTED ONLY INFOs ######### ######## IMX6 specific ######### #export IMX6_DIR="$HOME/hummingboard" #mkdir -p "$IMX6_Dir" #cd "$IMX6_Dir" #wget https://launchpad.net/linaro-toolchain-binaries/trunk/2013.10/+download/gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.bz2 #tar -xvjf gcc-linaro-arm-linux-gnueabihf-4.8-2013.10_linux.tar.bz2 #cd ##### End of IMX6 specific ###### ######## NOT TESTED ######### # get the Hyperion sources git clone --recursive https://github.com/hyperion-project/hyperion.ng.git "$HYPERION_DIR" # do a native build (to build the protobuf compiler for the native platform) mkdir -p "$NATIVE_BUILD_DIR" cmake -DENABLE_DISPMANX=OFF --build "$NATIVE_BUILD_DIR" "$HYPERION_DIR" # do the cross build # specify the protoc export file to import the protobuf compiler from the native build mkdir -p "$TARGET_BUILD_DIR" cmake -DCMAKE_TOOLCHAIN_FILE="$TOOLCHAIN_FILE" -DIMPORT_PROTOC=$NATIVE_BUILD_DIR/protoc_export.cmake --build "$TARGET_BUILD_DIR" "$HYPERION_DIR" #compile cd "$HYPERION_DIR/bin" chmod +x * cp "$HYPERION_DIR/bin/create_all_releases.sh" "$HYPERION_DIR" cd "$HYPERION_DIR" ./create_all_releases.sh ######END #------------------------------------------------------------------------------ #These instructions are based on tvdzwan and on the guide given by: #http://airwiki.ws.dei.polimi.it/index.php/Cross-compiling_for_the_RaspberryPi