openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team...

80
openSUSE® on ARM / AARCH64 Dirk Müller openSUSE ARM Team [email protected] Vladimir Botka Product Manager [email protected] Alexander Graf openSUSE ARM Team [email protected]

Transcript of openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team...

Page 1: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

openSUSE® on ARM / AARCH64

Dirk MülleropenSUSE ARM Team

[email protected]

Vladimir BotkaProduct Manager

[email protected]

Alexander GrafopenSUSE ARM Team

[email protected]

Page 2: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

3

openSUSE® Runs on ...

… your laptop

… your desktop

… your server

Page 3: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

Is There More?

Page 4: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

5

(open)SUSE® Runs on ...

155,656 x86_64 Cores with 300 TB of RAM

Page 5: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

6

SUSE® Runs on ...

9728 ia64 Cores, 30 TB RAM

Page 6: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

7

openSUSE® Also Runs on ...

2880 Power7 (ppc64) cores

Page 7: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

8

SUSE® Runs on Mainframe

IBM zSeries, z9

Page 8: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

Nothing More?

Page 9: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

10

What About openSUSE® on This?

CuBOX—ARMv7 800MHz, 1GB RAM

Page 10: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

12

Or This?

Page 11: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

13

Or openSUSE® on This Little Fruit?

(We're talking about the one on the left side)

35 US$, 700 MHz armv6, 256 MB RAM

Page 12: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

14

openSUSE® on This?

Page 13: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

15

openSUSE® on “Supercomputers” ;-)

Page 14: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

16

ARM and Servers?

Page 15: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

What is ARM?

Page 16: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

18

What is ARM?

• Most popular CPU architecture:‒ More than 30,000,000,000 CPUs are ARM based

• “Low power leadership”

• Optimized for “System on a Chip”

Page 17: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

20

Faster is Better?

• High CPU power is not needed everywhere:

‒ Static web serving/CDN, caching

‒ Batch analytics / “Big data”

‒ Cloud, dynamic web content serving (to some extend)

• ARM designs can be efficiently combined with performant I/O or Network I/O on one “SoC”

Page 18: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

22

ARM-based Machines

Smartphones

Tablets Tiny laptops

Netbooks

Cloud nodes and Low-Energy Servers

Page 19: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

23

ARM's “Cortex – A“ Series

ARMv8 (A57/53)

ARMv7 (A15/7)

ARMv7 (A8/A9)

Page 20: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

24

ARM v5/6/7/8

VFPv2VFPv2

JazelleJazelle

ARMv5ARMv5 ARMv6ARMv6 ARMv7-A/RARMv7-A/R ARMv8-AARMv8-A

Thumb-2Thumb-2

TrustedZoneTrustedZone

SIMDSIMD

VFPv3/v4VFPv3/v4

NEONNEONAdv SIMDAdv SIMD

A32+T32 ISAsA32+T32 ISAs

Including:• Scalar FP

(SD and DP)

• Adv SIMD(SP Float)

AArch32AArch32

CRYPTO CRYPTO

A64 ISAA64 ISA

Including:• Scalar FP

(SD and DP)

• Adv SIMD(SP & DP Float)

AArch64AArch64

Key featureARMv7-A

compatibility

Page 21: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

openSUSE® and ARM

Page 22: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

26

openSUSE® on ARM Team

Virtual team of technical experts from SUSE

Strong collaboration with openSUSE community and technology providers

Started in Q3/2011GO!

Page 23: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

27

First ARMplatformenabled

openSUSEARM (port)

openSUSE® ARM From the Beginning

First release foropenSUSE 12.2on ARM Highbank

December

openSUSE 12.2ARMv7 tech preview

2013201320122012

Page 24: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

28

openSUSE 12.3ARM release

openSUSEAArch64 (port)

openSUSE® on ARM Today

openSUSE 13.1ARMv7 and ARMv8

2014201420132013March 5

April 10

Page 25: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

29

openSUSE® on ARM Enabled Platforms

Page 26: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

Building openSUSE® for ARM

Page 27: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

31

Building openSUSE® in OBS

gcc

Apache

openssl

YaST2

Page 28: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

33

Building in Open Build Service (OBS)

• Automatic Rebuilds‒ One small fix automatically rebuilds all packages and images

that contain the code

• Rebuilds are reproducible

Page 29: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

34

Sand Box

Reproducible Builds

www

Page 30: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

36

Building a Single Package

Package sources are built in a clean environment based on a build description (.spec)

X86 System

Base System

Linux Kernel

Source.tar.gzSource.spec

Build Environment

Page 31: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

38

Building a Package on x86

X86 System

Base System

Linux Kernel

Sand Box

Linux Kernel

Building a Package

Build System

All builds are done in a sand box:

• No network access

• No physical hardware access

• Minimal privileges

On x86 and PPC: we use KVM and Xen

On ARMv7:

• Initially we had no physical hardware that supported virtualization.

Page 32: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

39

“Quick EMUlator”

• QEMU is an emulator that relies on Just in Time (JIT) dynamic binary translation to achieve good performance

• Supports full hardware emulation (optionally)

• Supports CPU emulation for many CPUs including ARM

Page 33: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

40

X86 System

Base System

Linux Kernel

System Emulator

ARM Linux Kernel

Building a Package

ARM Build System

But: Hardware emulation is quite slow

Building a Package Emulated

• Very similar setup to building on native hardware

• Emulation is secure enough

Page 34: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

41

Build Time Comparison

x86

Cortex A9

QEMU (system mode)

0 20 40 60 80 100 120 140 160 180

Time (days)

• 5500+ packages, if only one machine used for building

Page 35: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

42

X86 System

Base System

Linux Kernel

Sand Box

Linux Kernel

Building a Package

Build System

ARM CPU emulator

Idea: Avoid Hardware Emulation

But: Everything in the build environment is run in the emulator

• Sand box is virtualized

• Host kernel can be reused

• Only the ARM build environment is running in an emulator

Page 36: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

43

openSUSE® Build Time

x86

Cortex A9

QEMU (user mode)

QEMU (system mode)

0 20 40 60 80 100 120 140 160 180

• 5500+ packages, if only one machine used for building

Page 37: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

44

Caveats with (CPU) Emulation

• For good emulation, all interfaces between host kernel and ARM target binaries need to be emulated

‒ All needed syscalls

‒ All needed ioctls

‒ All relevant /proc/* files

‒ “Special” communication paths like netlink

• QEMU is already quite good at that

‒ We made patches to make it even better

Page 38: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

45

Emulation Always Has Risks

• Misbehavior due to emulation bugs

• Testsuites are mandatory

Page 39: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

47

Isn't there a better way?

Page 40: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

48

Sand Box

Linux Kernel

Building a Package

CrossBuild

System

ARMBuild

System

Idea: CPU Emulation + Acceleration

• Many build binaries can be replaced with a host binary:

‒ xz, gzip, bzip2, tar

‒ msgfmt

‒ grep, sed

• Components which support cross building can also be replaced:

‒ “Cross” compiler

‒ “Cross” linker

‒ “Cross” rpmbuild

ARMCPU

emulation

Page 41: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

49

Build Time Comparison: “Big” Package

Build is mostly CPU bound:

x86

Accel. Qemu

Cortex-A9

Qemu

0 200 400 600 800 1000 1200

Page 42: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

50

Build Time: “Small” Package

Build time is mostly I/O bound

x86

Cortex-A9

Accel. Qemu

Qemu

0 2 4 6 8 10 12 14 16 18 20

Page 43: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

51

Build Time Comparison

x86

Cortex A9

QEMU (accelerated)

QEMU (user mode)

0 20 40 60 80 100 120

• 5500+ packages, if only one machine used for building

Page 44: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

52

Building openSUSE for

• In January 2013, there was no AArch64 hardware generally available

http://www.arm.com/products/tools/models/fast-models/foundation-model.php

Page 45: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

53

ARMv8 Foundation Model

• Full system emulator

• Accurate CPU emulation

• Very good for finding software compatibility issues and general testing without access to hardware

Page 46: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

54

openSUSE Build Time on FM

x86

ARMv8 FM

0 100 200 300 400 500 600

• 5500+ packages, if only one machine used for building

Page 47: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

55

Idea: Use Cross Build

Build a package on one “host” architecture for a different “target” architecture

binary

X86 System

Base System

Linux Kernel

Building a Package

Page 48: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

56

Cross Build Pros / Cons

• Easy to do for a few packages

• Several projects support cross build “out of the box”

• Others need extra patching and tweaking

• Some packages are really hard to cross-build

• Difficult to maintain:‒ Configuration checks, test suites

‒ “Generator” tools during build

Page 49: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

57

One Issue with Bootstrapping

• openSUSE depends OpenJDK's JVM for building many central packages

‒ Documentation Tools needed for various projects

‒ Java bindings part of various central libraries

Page 50: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

58

Why Crossbuild is Hard

• Building everything needed for OpenJDK “cross” is very time-consuming

• OpenJDK one needs a working JVM for building‒ Bootstrapping OpenJDK natively is impossible!

Page 51: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

59

Isn't there a better way?

Page 52: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

60

(Re-) Use QEMU

• openSUSE ARM team had made good experience with QEMU for ARMv7

• User Mode emulation is good enough for building all packages

• Much faster than full emulation

Page 53: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

61

So... Does It Build?

YES!

Page 54: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

62

Does It Run?

NO!(not yet)

Page 55: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

63

Missing Pieces

• Booting

• Deployment

Page 56: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

64

Booting on x86(_64..)

+ Grub 2FirmwareBootloader

OS

Page 57: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

65

Booting on ARM (32bit)

U-Boot

Kernel

. . .

. . .

OS

Page 58: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

66

Booting

• Firmware is part of OS, not of hardware

• Sometimes hardware specific kernel

• Operating system with customizations

Page 59: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

67

UEFI

Booting on ARMv8 (AArch64)

OS

Page 60: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

70

Plans for Linux Kernel

• Migration to “device tree” support ‒ Single Kernel Binary can handle many different devices by

reading a standardized machine description provided by early stage bootloader

• Kernel-default, kernel-lpae (ARMv7)

• Kernel-default (ARMv8)

Page 61: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

71

Missing Pieces:

• Booting

• Deployment

Page 62: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

openSUSE®, ARM, and Kiwi

Page 63: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

73

Deployment Challenges

• Most ARM hardware does not have a CD drive

• Single install media is currently not possible‒ Special bootloader for each SoC needed

‒ Kernel is also often still device specific

• Extended KIWI with extra targets for ARM‒ “Generic” Chroot target

‒ SoC specific u-boot based Appliances

Page 64: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

74

Does It Run?

http://www.flickr.com/photos/alorenzi/6277701171

+

YES!

Page 65: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

75

Raspberry Pi

Page 66: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

76

Samsung “Chromebook”

Page 67: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

77

BeagleBoard.org

Page 68: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

78

Current Test Hardware

Pandaboard.org

Page 69: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

79

Exynos 5 boards

Page 70: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

80

ARMv8 Foundation Model

Page 71: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

81

Anything Else?

• We're working on some other devices as well

You can help!‒ Test our machine images

‒ Provide us test hardware

‒ Help us with missing pieces for your individual device!

Page 72: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

openSUSE® on ARMStatus and Outlook

Page 73: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

83

openSUSE 13.1

• ARMv6, ARMv7 and AArch64 is available

• Ready-to-use images are available for a few boards

• More will be added over the coming weeks

Page 74: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

Future

Page 75: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

85

Deployment Improvements

• Modularize the openSUSE images

‒ Offer one unified image part

‒ Offer multiple device-specific bootloader/kernel images parts

‒ Offer installation patterns via “image addons”

• Deploy over network / other methods

‒ Better mass deployments (Cloud nodes?)

• YaST2 on first boot

• YaST2 installer support

Page 76: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

86

openSUSE® and ARM

• (open)SUSE® is prepared for future devices and future ARM architectures

‒ Device specific work is quite small

‒ Reusable and easily adaptable

• Qemu-Acceleration layer provides

‒ Performance advantages of host hardware for build

‒ Can be reused for other architectures

‒ Even without native hardware :-)

Page 77: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

88

SUSE® Linux Enterprise for ARM

• SUSE will invest into openSUSE on ARM

• On the Enterprise/product side we see AArch64bit as the potential breakthrough and carefully continue to watch the market and its dynamics

• SUSE works with partners on AArch64 and is open for opportunities

Page 78: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

89

Thank youThank you

http://en.opensuse.org/Portal:ARMhttp://en.opensuse.org/Portal:ARM

[email protected]@opensuse.org

89

Page 79: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM
Page 80: openSUSE on ARM / AARCH64 - SUSE Linux ® on ARM / AARCH64 Dirk Müller openSUSE ARM Team dmueller@suse.com Vladimir Botka Product Manager vbotka@suse.com Alexander Graf openSUSE ARM

Unpublished Work of SUSE. All Rights Reserved.This work is an unpublished work and contains confidential, proprietary and trade secret information of SUSE. Access to this work is restricted to SUSE employees who have a need to know to perform tasks within the scope of their assignments. No part of this work may be practiced, performed, copied, distributed, revised, modified, translated, abridged, condensed, expanded, collected, or adapted without the prior written consent of SUSE. Any use or exploitation of this work without authorization could subject the perpetrator to criminal and civil liability.

General DisclaimerThis document is not to be construed as a promise by any participating company to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. SUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for SUSE products remains at the sole discretion of SUSE. Further, SUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All SUSE marks referenced in this presentation are trademarks or registered trademarks of Novell, Inc. in the United States and other countries. All third-party trademarks are the property of their respective owners.