mark charlebois april 2016 - events.static.linuxfound.org · repo sync -c --no-tags export...
TRANSCRIPT
![Page 1: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/1.jpg)
Using Openembedded with Snapdragon Flight
April 2016
Mark Charlebois
![Page 2: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/2.jpg)
Background
● Snapdragon Flight™ board is available from Intrinsyc● Based on Qualcomm® APQ8074● Uses 3.4 kernel (Android) and Linux userspace● Uses Android boot partition and LK bootloader● Flight stack runs on Hexagon™ DSP RTOS (QuRT)
http://px4.io/wp-content/uploads/2016/03/snapdragon-flight3.jpg
![Page 3: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/3.jpg)
Openembeddedebian?
● Debian based rootfs and kernel built using OE (QRLinux)● Uses OE version from 2013● QRLinux is available on codeaurora.org● Depends on proprietary layers for some functionality
![Page 4: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/4.jpg)
Getting the Open Source Layers for QRLinux
● Fetch the source:○ repo init -u git://codeaurora.org/quic/le/le/manifest -b release \ -
m LNX.LER.1.0-68046-8x74.0.xml○ repo sync -c --no-tags
● Rootfs will not build without proprietary components● Kernel will build
![Page 5: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/5.jpg)
New Direction
![Page 6: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/6.jpg)
Openembedded Rebase
Goals● Use supported version of Openembedded (Jethro)● Leverage meta-qcom layer at yoctoproject● Port qrlinux packages to standard OE● Enable builds on newer Ubuntu versions (14.04-15.10)● Leverage Linaro RBP, meta-qcom
![Page 7: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/7.jpg)
Hexagon SDK Dependencies
● Hexagon-clang requires GLIBCXX_3.4.18○ Ubuntu 12.04 needs updated libstdc++.so.6
● Uses gcc 4.8 armv7hf cross compiler (i386)○ Prebuilt Hexagon SDK ARM libs
● Also works on Ubuntu 14.04● Hexagon SDK Linux installer requires X11
![Page 8: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/8.jpg)
Constraints
● ARM binaries must be compatible with g++ 4.8● 3.4 kernel can't be built with gcc 5.X● Old versions of OE don't work on Ubuntu 15.10
○ Native tools don't build (ncurses)○ Ubuntu 15.10 uses gcc 5.2
● Issues with linaro-gcc-4.8-2013 (i386) on Jethro● Use linaro-4.8 for Hexagon SDK compatibility● Jethro uses glibc instead of eglibc (binary compatible)
![Page 9: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/9.jpg)
What's the Status?
![Page 10: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/10.jpg)
Setting up Build Env
● Install Ubuntu 14.04● Install OE package deps:
○ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat lib32z1
![Page 11: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/11.jpg)
Set up the OE Layers
● Install layers○ mkdir oe-atlflight && cd oe-atlflight
○ repo init -u https://github.com/mcharleb/oe-eagle-manifest.git \ -b jethro -m default.xml
○ repo sync -c --no-tags
![Page 12: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/12.jpg)
Manifest
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<default revision="jethro" sync-j="4"/>
<remote fetch="https://github.com" name="github"/>
<remote fetch="http://git.linaro.org" name="linaro"/>
<project remote="linaro" name="openembedded/meta-linaro" path="sources/meta-linaro"/>
<project remote="linaro" name="openembedded/meta-backports" path="sources/meta-backports"/>
<project remote="github" name="openembedded/openembedded-core" path="sources/openembedded-core"/>
<project remote="github" name="openembedded/meta-openembedded" path="sources/meta-openembedded"/>
<project remote="github" name="openembedded/bitbake" path="sources/bitbake" revision="1.28"/>
<project remote="github" name="96boards/meta-96boards" path="sources/meta-96boards" revision="master"/>
<project remote="github" name="96boards/meta-rpb" path="sources/meta-rpb" revision="master"/>
<project remote="github" name="mcharleb/meta-atlflight" path="sources/meta-atlflight"/>
<project remote="github" name="ndechesne/meta-qcom" path="sources/meta-qcom">
<linkfile dest="setup-environment" src="../../.repo/manifests/setup-environment"/>
</project>
</manifest>
![Page 13: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/13.jpg)
New meta-atlflight layer:● Uses linaro-4.8● Compatible with Jethro release● Built as part of atlflight-image
○ PX4-firmware-eagle_2016.01.bb
Building PX4
![Page 14: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/14.jpg)
● Make rootfs image (including PX4)○ MACHINE=eagle DISTRO=atlflight . setup-environment
○ bitbake atlflight-image
Building the Rootfs
![Page 15: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/15.jpg)
Kernel Future Direction
● Need to deconstruct qrlinux kernel recipe● Must use 3.4 CAF Android kernel for required features
○ fastRPC, etc○ Must work on Ubuntu 15.10 (linaro-4.8), and 14.04
● Would like to use recent upstream kernel○ Boots on Sony APQ8074 devices○ Not all features supported upstream
![Page 16: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/16.jpg)
Building the Kernel (today)
● QRLinux is still used to build the kernelexport MANIFEST_URI=git://codeaurora.org/quic/le/le/manifest
repo init -u $(MANIFEST_URI) -b release -m LNX.LER.1.0-68046-8x74.0.xml
repo sync -c --no-tags
export WS=$(pwd)
pushd oe-core 1>/dev/null
source build/conf/set_bb_env.sh
bitbake linux-qr-eagle8074
● Does NOT work on Ubuntu 15.10 (gcc 5.2)● Does not work with Jethro
![Page 17: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/17.jpg)
ToDos
![Page 18: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/18.jpg)
Kernel ToDo
● Package kernel for Android boot partition○ Re-use easy-410c-oe work
● Many conftest crashes when building the kernel
![Page 19: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/19.jpg)
Rootfs ToDo
● Port qrlinux packages● Package proprietary files in OE layer● Add Hexagon SDK libraries to rootfs
![Page 20: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/20.jpg)
Thank You
![Page 21: Mark Charlebois April 2016 - events.static.linuxfound.org · repo sync -c --no-tags export WS=$(pwd) pushd oe-core 1>/dev/null source build/conf/set_bb_env.sh bitbake linux-qr-eagle8074](https://reader033.vdocuments.net/reader033/viewer/2022050402/5f80170c64862a0c1c0fee2b/html5/thumbnails/21.jpg)
Questions?