Porting openSUSE to 64-bit ARMv8 Rethinking 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: • 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

-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..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