Porting openSUSE to 64-bit ARMv8 Rethinking Linux in the ARM Space
Andreas Färber, B.Sc. [email protected] SUSE LINUX Products GmbH Agenda Outline Of This Presentation
• How does a standard distro fit into Embedded? • Porting to 64-bit ARMv8: Open Build Service • Creating custom appliances: KIWI
3 Building Linux Appliances Embedded Linux Customizable Cross-Compilation Workflow
Yocto kernel, eglibc, busybox, … OE BuildRoot fetch Build Sources Recipes
cross-build
Can be optimized per system
copy Maintenance? Binaries Image
5 Standard Linux Package-Based Workflow
kernel, glibc, bash, … reference copy Package Sources Sources Specifications native build Repository package .rpm, .drpm / .deb
Binaries Central build servers install update
Differential updates possible
Requires initial bootstrap
6 Your Choice Some Considerations For Your Cortex-A Projects
• Don't let your BSP vendor dictate your tools!
‒ Many alternatives – choose what works best for you • Storage size: openSUSE JeOS a few hundred MiB
‒ NAND, eMMC, SD card, USB/SATA disk, … • Maintenance: Is your device connected?
‒ Customers will want security vulnerabilities fixed!
7 Open Build Service (OBS) openSUSE Build Service Intro (1/3) https://build.opensuse.org/
9 openSUSE Build Service Intro (2/3) Project “openSUSE:Factory:ARM”
10 openSUSE Build Service Intro (3/3) Package “libdrm” In Project “openSUSE:Factory:ARM”
11 Starting A Port Build Cycles For Project “openSUSE:Factory:ARM”
These needed to be cross-compiled once
12 Package Builds (1/2) Building Without ARMv8 Hardware
check in / branch
dispatch worker VM
install
publish
ARM Foundation Platform emulator
13 Package Builds (2/2) Building With QEMU Userspace Emulation
QEMU patches published First distro to complete port
check in / branch >10x faster than system emulation
dispatch worker VM
qemu-aarch64 emulator
install
publish
KVM virtualization
14 Porting Packages Branching And Submitting A Package Failing To Build
Factory:ARM Factory Devel Project User Project
branch
patch available? Linaro cross-distro
update
post patch check in
submit submit
15 KIWI Appliances Creating Appliances (1/2) Customizing openSUSE
openSUSE:13.1:Ports
Kiwi Image Description openSUSE:13.1:Updates
17 Creating Appliances (2/2) Customizing openSUSE For Your Projects
openSUSE:13.1:...
devel:ARM:13.1:Contrib:...
Kiwi Image Description your private repository
18 Try openSUSE in Foundation model or on your hardware! www.opensuse.org
Thank you.
19
Corporate Headquarters +49 911 740 53 0 (Worldwide) Join us on: Maxfeldstrasse 5 www.suse.com www.opensuse.org 90409 Nuremberg Germany
22