BUD17-500: 96Boards enablement for openSUSE
Speaker: Andreas Färber
Track: LEG
★ Session Summary ★
Progress, difficulties and questions surrounding the creation of bootable openSUSE images in the Open Build Service for the various 96Boards (HiKey, DragonBoard 410c, Bubblegum-96, Poplar, Mediatek X20) are presented. Focus is kernel and bootloaders as well as openSUSE specific tools.
---------------------------------------------------
★ Resources ★
Event Page: http://connect.linaro.org/resource/bud17/bud17-500/
Presentation:
Video:
---------------------------------------------------
★ Event Details ★
Linaro Connect Budapest 2017 (BUD17)
6-10 March 2017
Corinthia Hotel, Budapest,
Erzsébet krt. 43-49,
1073 Hungary
---------------------------------------------------
http://www.linaro.org
http://connect.linaro.org
---------------------------------------------------
Follow us on Social Media
https://www.facebook.com/LinaroOrg
https://twitter.com/linaroorg
https://www.youtube.com/user/linaroorg?sub_confirmation=1
https://www.linkedin.com/company/1026961
"
2. The Presenter and ARM
●
Background in virtualization software (QEMU)
●
Involved in the openSUSE ARM port since beginning (2011)
●
Evaluating lots of ARM SoCs, feature- and software-wise
●
Not a kernel developer, but contributing
●
“Pushing the Limits of Linux on ARM” at LinuxCon Japan 2015
●
Usually showing some geeky new enablement each FOSDEM
4. 96Boards/Linaro vs. openSUSE
●
Specifically about ARM
●
Per-board repositories*
●
Cross-compilers
●
Membership, w/ engineers
●
ARM the third architecture
●
Single code base*
●
Native builds in OBS (GCC 6)
●
Sponsors: SUSE, IHVs, ISVs
6. Tumbleweed Kernel Workflow (2/2)
●
kernel-source.git: Kernel configs, patch files, scripts
●
kernel.git: linux[-stable].git, with patches applied
●
Branch master follows linux.git tags such as -rcX (Kernel:HEAD)
●
Branch stable follows linux[-stable].git releases (Kernel:stable)
●
Branch linux-next follows linux-next.git (Kernel:linux-next)
●
Daily integration from Git into OBS (a.k.a. Kernel of the Day)
7. Ways to Get openSUSE Onto a New ARM Board
●
Reuse binary kernel, point to root= on SD card or USB storage
●
Boot custom kernel, then install kernel+initrd in openSUSE
●
Install from a UEFI-bootable installation DVD
●
Build an OEM appliance image with Kiwi
– XML image description plus scripts
– Image re-partitions on first boot, generates new dracut initrd
9. Enablement Goals
●
Support boards initially in openSUSE Tumbleweed (rolling)
●
Later support boards also in openSUSE Leap (stable)
– Often based on SUSE Linux Enterprise kernels these days
●
Ideally provide a GRUB boot menu for kernel selection
– Safely leverage kernel updates with security and bug fixes
– Allow YaST tools to configure kernel command line
10. Getting Started: Acquiring Hardware
●
Availability of boards for purchasing quite limited locally
– Germany: No relevant tariffs, but 19 % Import Value-Added Tax
●
Accessories for 1.8 V or 2 mm pin spacing hard to get
– FTDI cable
– SeeedStudio 96Boards UART adapter
11. HiKey (1/2)
●
First board, best support?
●
UEFI supported via EDK2! but …
– SD timeout issues in shipping EDK2 and Linaro releases
– Not providing a working DTB? GRUB workaround unsuited!
– Doesn't boot JeOS images, doesn't save boot menu changes?
– Fallback: U-Boot, despite the more full-featured EDK2…
12. HiKey (2/2)
●
JeOS-hikey in the works
– kernel-default 4.10.0 still only has earlycon output
– pinctrl driver issue? Module vs. built-in?
13. DragonBoard 410c
●
No UEFI bootloader, instead LK
– U-Boot port by Mateusz Kulikowski to the rescue (chain-loaded)
●
Unsolved: creating Qualcomm GPT partitions with Kiwi
– Workaround: U-Boot flashed to eMMC, JeOS rootfs on SD card
●
Mainline by now – but stacktrace in initrd (4.10.0)
14. Bubblegum-96
●
Originally on Taobao only (China), now also on eBay (US)
●
v3.10 based kernel provided, not mainline
●
Initial kernel patchset sent for SUSE Hackweek (Feb 15, 2017)
– Serial driver, clocksource, s900-bubblegum-96.dts
15. MediaTek X20
●
Available through ArcherMind or SeeedStudio (both China)
●
LK bootloader
– No U-Boot to chain-load yet
●
Initial MT6797 kernel patches sent by Mediatek
– No .dts for this board yet
– Matthias Brugger reviewing and testing on this board
16. Cello
●
Still on pre-sale only
– Not tested, but:
●
JeOS-efi.aarch64 image should just work
●
https://en.opensuse.org/HCL:AArch64_EFI
17. Poplar
●
Available through Taobao and AliExpress (both China)
●
Shipping an ARMv7 userspace
●
Getting GPL code a drama…
– https://github.com/96boards/documentation/issues/39
●
U-Boot disguised as “Fastboot 3.3.0” – not mainline, no bootefi
●
Initial kernel patch from Hisilicon Feb 9, 2017
19. Andromeda Box Edge
●
Available through SolidRun exclusively
●
v3.14.35 based kernel
●
Initial patchset sent for SUSE Hackweek 15 (Feb 19, 2017)
20. F-Cue
●
Only available for Japanese market currently
– No hardware available to SUSE, not tested
●
v3.10.68 based kernel provided, with 17.3 MiB patch
●
v2016.02.2 based U-Boot provided, with v2013.01-rc1 patch
– bootefi support is available in v2016.05 and later only
●
No mainline kernel enablement, no openSUSE images
22. Requirements
●
SoC needs to be supported in mainline kernel
●
If U-Boot bootloader used, needs to be mainline…
– … if required on the boot medium, or
– … to allow UEFI booting (and other evolving features)
●
Any firmware needs to have an explicit redistributable license
●
Kernels and initrd get installed to /boot
24. Discussion: Upstreaming
●
22 @linaro.org maintainers in linux-next.git MAINTAINERS!
●
Some Linaro members performing very well!
– But: No kernel patches from, e.g., Actions, Mstar?
●
Q: Is Linaro discussing mainlining with its new members?
●
Q: Is a 3.10 based kernel really 96Boards compliant?
27. 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 https://creativecommons.org/licenses/by-sa/4.0/
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
rbrown@opensuse.org
Design & Inspiration
openSUSE Design Team
http://opensuse.github.io/branding-guidelines/