> uber eXtensible Micro-Hypervisor Framework Documentation > rpi3-cortex_a53-armv8_32


Build Core Micro-Hypervisor Framework

  1. Prepare raspberry pi sd-card image
    1. Download https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2016-11-29/2016-11-25-raspbian-jessie-lite.zip
    2. Use win32diskimager under Windows OS to burn contents of .zip
    3. Use ImageWriter tool under Ubuntu
  2. Development system (VM, baremetal or Windows/WSL with Ubuntu 16.04.x) setup
    1. sudo apt-get update
    2. sudo apt-get install build-essential autoconf autotools-dev
    3. sudo apt-get install git
    4. sudo apt-get install bc
  3. Install Raspberry PI development tools on development system
    1. git clone https://github.com/raspberrypi/tools
    2. Add ~/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/ to PATH
  4. Install and build RPI kernel on development system
    1. git clone https://github.com/raspberrypi/linux.git
    2. cd linux
    3. git checkout rpi-4.4.y
    4. export KERNEL=kernel7
    5. make ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf- bcm2709_defconfig
    6. make -j 4 ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf- zImage modules dtbs
    7. mkdir -p ~/uxmhf-rpi3-staging/mod_install
    8. make -j 4 ARCH=arm CROSS_COMPILE=~/tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=~/uxmhf-rpi3-staging/mod_install/ modules_install
    9. ./scripts/mkknlimg arch/arm/boot/zImage ~/uxmhf-rpi3-staging/$KERNEL.img
    10. mkdir -p ~/uxmhf-rpi3-staging/overlays
    11. cp ./arch/arm/boot/dts/overlays/*.dtb* ~/uxmhf-rpi3-staging/overlays/.
    12. cp ./arch/arm/boot/dts/overlays/README ~/uxmhf-rpi3-staging/overlays/.
    13. mkdir -p ~/uxmhf-rpi3-staging/boot
    14. cp ./arch/arm/boot/dts/*.dtb ~/uxmhf-rpi3-staging/boot/.
  5. Obtain sd-card boot-partition extents
    1. sudo fdisk -l /dev/mmcblk0
    2. note down start sector of /dev/mmcblk0p0 in the output (BP_START_SECTOR)
    3. note down end sector of /dev/mmcblk0p0 in the output (BP_END_SECTOR)
  6. Build uberXMHF Raspbery PI 3 on development system
    1. cd uxmhf-rpi3
    2. ./bsconfigure.sh
    3. ./configure --with-boot-partition-start=BP_START_SECTOR --with-boot-partition-end=BP_END_SECTOR
    4. make clean
    5. make OSKRNLIMG=~/uxmhf-rpi3-staging/kernel7.img
    6. cp uxmhf-rpi3.img ~/uxmhf-rpi3-staging/.
    7. cp rpi3-config.txt ~/uxmhf-rpi3-staging/config.txt

Build uberApps

Example uberApps are found within uxmhf-rpi3/rgapps/linux. The following instructions show how the example uberApp rgapp-uhcalltest (to test hypercalls) is built.

  1. Building uhcallkmod on development system
    1. cd rgapps/linux/rgapp-uhcallkmod
    2. ./build.sh ~/linux ~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/
    3. cp ./uhcallkmod.ko ~/uxmhf-rpi3-staging/.
  2. Building uhcalltest on development system
    1. cd rgapps/linux
    2. make -w all
    3. cd rgapp-uhcalltest
    4. make -w all
    5. cp ./uhcalltest ~/uxmhf-rpi3-staging/.