Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

oSC19 openSUSE on ARM

What happened for about a year in openSUSE on ARM side

  • Login to see the comments

  • Be the first to like this

oSC19 openSUSE on ARM

  1. 1. Guillaume GARDET ARM engineer openSUSE on ARM What happened since about a year
  2. 2. Summary ● What is openSUSE on ARM? ● Overview of openSUSE on ARM workflow ● Open Build service – OBS ● OpenQA ● Tumbleweed, Kubic/MicroOS and Leap ● openSUSE wiki ● The TODO list
  3. 3. What is openSUSE on ARM?
  4. 4. What is openSUSE on ARM? ● Simply openSUSE running on ARM architectures ● openSUSE runs on : – 32-bit: armv6 (TW only), armv7 – 64-bit: aarch64 (armv8.x) ● ARM SoC covers a wide range of applications: – from small low power embedded systems (Raspberry Pi) – to powerfull servers and HPC (ThunderX2) ● UEFI vs custom bootloader system
  5. 5. Overview of openSUSE on ARM workflow
  6. 6. Overview of openSUSE (on ARM) workflow
  7. 7. Overview of openSUSE on ARM workflow ● openSUSE:Factory:ARM project is a project link to openSUSE:Factory project ● openSUSE:Leap:15.1:ARM project is a project link to openSUSE:Leap:15.1 project – all sources are reused and updated in real-time – a small overlay is available to handle the snapshot version and the content of ISO and FTP trees
  8. 8. Overview of openSUSE on ARM workflow
  9. 9. Overview of openSUSE on ARM workflow ARMARM ARM
  10. 10. Open Build Service - OBS
  11. 11. OBS ● More aarch64 build power in OBS (thanks to Marvell/Cavium) – obs-arm-7: ThunderX2 machine: In November 2018 nsor-opensuse-project/ – obs-arm-8/-9: 2 more ThunderX2 machines: In February 2019 ● Which allowed to: – remove snapshoting and follow x86 for both Tumbleweed and Leap 15.1 – enable ARM builds on more devel projects to catch build failures earlier and have package maintainers to fix it before submitting to Factory
  12. 12. OBS - How to enable ARM build in a devel project 1- Click on Add repositories 2- Select ARM distribution targets
  13. 13. OBS ● ARM containers now published when ARM is released, not when x86 is. ● Configuration of ARM OBS workers have been updated to better fit requirements of packages – less workers with more CPU, RAM and disk
  14. 14. openQA
  15. 15. openQA ● How openQA works? – 1 server (shared for all architectures), with a web interface + API: ● hold files (ISO, HDD images, repositories, etc.) ● hold test suites informations (tests scenarios, needles, etc.) ● control test runs ● store test results – X machines: ● Running multiple VM (qemu) to run tests inside ● Each test runs some actions and checks if the results are expected
  16. 16. openQA Image from:
  17. 17. openQA Image from:
  18. 18. openQA ● Mediacheck test: – Boot on ISO and start the Check installation media – Make sure no errors are found
  19. 19. openQA ● Only for AArch64, no openQA tests for armv6/armv7 targets ● In 2018: Seattle machine - with 6x Cortex-A57 and 32GB RAM: only 2 workers ● Added more tests for TW and Leap 15, but limited by the number of aarch64 workers Image from:
  20. 20. openQA ● Fall 2018: a new machine (D05) - with 64x Cortex-A72, 128GB RAM, 480GB SATA SSD: 10 workers initially, now 16 workers ● Added even more tests for TW and Leap 15.1 to get a good coverage, including: upgrades, btrfs tools, virtualization, RAID, multipath, GNU/health, etc. ● Tests and needles sometimes needed to be update to handle aarch64 properly Image from:
  21. 21. openQA ● Non arch dependant improvements: – New tests added – A developer mode – Script to use unmerged github PR updates on openqa.o.o: openqa-clone-custom-git-refspec – Support for huge pages with qemu backend – Support to pass generic options to qemu
  22. 22. openQA ● On 14/05/2019: – On Tumbleweed: 72 tests (+ 69 tests for kernel ltp and trinity) ● Kubic: 8 tests ● DVD: 48 tests ● NET: 14 tests ● JeOS: 2 tests – On Leap: 59 tests ● DVD: 45 tests ● NET: 12 tests ● JeOS: 2 tests
  23. 23. openQA ● On 14/05/2019: – On Tumbleweed: 72 tests (+ 69 tests for kernel ltp and trinity) ● Kubic: 8 tests ● DVD: 48 tests ● NET: 14 tests ● JeOS: 2 tests – On Leap: 59 tests ● DVD: 45 tests ● NET: 12 tests ● JeOS: 2 tests Kubic/MicroOS are only on Tumbleweed LXDE pattern is only available on Tumbleweed DVD + openqa_bootstrap test + openscap test Tumbleweed create an HDD image of released Tumbleweed and test upgrade to current openQA snapshot
  24. 24. openQA ● On 23/05/2019:
  25. 25. Tumbleweed, Kubic/MicroOS and Leap
  26. 26. Tumbleweed ● openSUSE Tumbleweed for AArch64 is now officialy supported and is no more a "best effort port" ● Lots of packages fixed: build time (OBS) and runtime (openQA): Kernel, Firefox, Chromium, Java, etc. ● New packages/builds: LDC compiler, FPC compiler, libgpiod, etc. ● Some feature additions to existing package (including Mesa/libdrm) for a better support
  27. 27. Tumbleweed ● Switch more armv7 boards to EFI/Grub2 (SabreLite, Chromebook snow) ● Get some boards out from Contrib: in favor to Factory:ARM (udooneo, etc.) ● Lots of kernel support improvements (mainly aarch64) thanks to always up-to-date kernel
  28. 28. Kubic - ● What is Kubic? – A certified Kubernetes distribution and container-related technologies built by the openSUSE community – A tumbleweed flavor ● Built in OBS and tested in openQA along Tumbleweed ● Kubic is officially supported on ARM (aarch64) since January 2019:
  29. 29. Leap 15.1 ● How is Leap built? – Inherit SLE15-SP1 packages for core packages: gcc, kernel, qemu, etc. – Inherit Leap 15.0 packages for other packages – If package maintainers want to, they can push updates from Tumbleweed: Krita, Firefox, etc. ● Packages fixed (builds and runtime)
  30. 30. Leap 15.1 ● Switch more armv7 boards to EFI/Grub2 (SabreLite, Chromebook snow) ● Ready to use images (JeOS, docker): – Tested in openQA – Always up-to-date images released
  31. 31. openSUSE wiki
  32. 32. Wiki - ● ARM pages have been updated on the openSUSE wiki: – Portal:ARM updated – HCL pages updated – New HCL pages: D05, Overdrive 1000, etc. – Page with latest tests of systems updated:
  33. 33. The TODO list
  34. 34. The TODO list ● Improve continuously the wiki with: – new information – up-to-date information ● Improve OBS: – Speed-up (armv7) images build: current bootleneck which slow down Tumbleweed – enable ARM build on more devel projects
  35. 35. The TODO list ● Improve openQA: – Add more aarch64 tests? – Add armv7 images tests? – Add tests on real hardware (RPi3)? – Increase the number of openQA workers to speed-up tests? ● Monitor continuously build failures and test failures and fix them ASAP ● Report and/or fix bugs on openSUSE bugzilla
  36. 36. The TODO list ● Need some help to: – Test and get feedback on systems (boards / servers) people use: even if all is fine – Add new features: SecureBoot, etc. – Improve graphic stack, including PCI-e gfx card (nvidia, amd, etc.) and also integrated into the SoC (nvidia, adreno, Mali, etc.) ● Stay tuned for kernel 5.2 and Mesa 19.1 in Tumbleweed which will add initial upstream support for Mali GPUs, with Lima and Panfrost drivers
  37. 37. The TODO list ● Please join us: – IRC: #opensuse-arm on Freenode – ML:
  38. 38. Questions?
  39. 39. Join Us at
  40. 40. License This slide deck is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license. It can be shared and adapted for any purpose (even commercially) as long as Attribution is given and any derivative work is distributed under the same license. Details can be found at General Disclaimer This document is not to be construed as a promise by any participating organisation 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. openSUSE 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 openSUSE products remains at the sole discretion of openSUSE. Further, openSUSE 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 openSUSE marks referenced in this presentation are trademarks or registered trademarks of SUSE LLC, in the United States and other countries. All third-party trademarks are the property of their respective owners. Credits Template Richard Brown Design & Inspiration openSUSE Design Team guidelines/