From Mageia wiki
Jump to: navigation, search
Drakconf multiflag.png
Other languages

Portuguese


Summary

Mageia should have a port for the ARM architecture. A first step for Mageia 6 could be to provide enough binary packages to run Mageia 6 in a chroot.

Owner

  • Name: Olivier Blin (blino)
  • Email: mageia@blino.org

Resources

List here people who will be implied in this feature (packagers, QA, doc, ...)

Current status

  • Targeted release: Mageia 6
  • Last updated: 2018/12/13
  • Percentage of completion: (see ARM status)
    • 99.6% of core build for armv5,
    • 99.72% of core built for armv7

Detailed Description

Many different architecture exists for ARM devices. For boards powerful enough to run an operating system like Mageia, the most generic target architecture is armv5tl. More powerful boards are using the ARMv7 architecture and support hardware floating point, the armv7hl target architecture should be used. Newer boards support 64-bit, the target architecture is named aarch64.

rtp already worked on ARM ports for Mageia, on both armv5tl and armv7hl architectures, though this is based on a old cauldron snapshot (around Mageia 4). Everything needs to be rebuilt for cauldron, but this is an excellent starting point with a fully functional Mageia chroot.

As a first step for Mageia, we can focus on providing binary packages and a chroot for the armv5tl target architecture. The ARM port should also be integrated in the build system.

Hardware requirements for the build system

We need enough ARM boards in the build system to be able to keep up with the x86 ports. We currently have a few i.MX53 nodes in the build system, but they do not reboot automatically after a power failure. We should pick boards that automatically restart on power failure.

Raspberry Pi 2 could be considered, they are quad-core and very cheap, maybe not the fastest boards available, but they provide a decent amount of computing power for their price. Though, they do not have SATA support, so they would require external storage (SATA disk or SSD over USB2?).

Tasks

Mandatory

  • rebuild base packages in Cauldron for the armv5tl architecture (blino: done for basesystem + buildrequires, including Qt4, Gtk2/Gtk3)
  • rebuild packages for the armv7hl architecture (rebasing rtp's work)
  • set up ARM build nodes in the buildsystem
  • modify the "emi" build bot gatherer to consider ARM architectures as lazy architectures, meaning that they don't block upload of a package for x86 (build failure on ARM should not be fatal for a src.rpm, and long build time should not penalize upload of x86 binaries and src.rpm)
  • publish to the official Mageia mirrors (requires to announce extra size usage to mirror maintainers)

Next steps

  • build a kernel for ARM devices (can it be generic like on x86 and customized only through DeviceTree?)
  • provide ready-to-boot images
  • installer support?

Supported devices

  • Raspberry Pi v1 (all models)
  • Raspberry Pi v2
  • IMX53QSB: i.MX53 Quick Start Board

Why it would be good for Mageia to include it

ARM devices are becoming very common, and powerful enough to run a full operating system like Mageia. There is an increasing demand for Mageia on popular ARM devices, like the Raspberry Pi family.

Test case

Anything useful for QA and all testers to help debugging during all development cycle

Software / Packages Dependencies

All packages need to be built for the ARM architecture.

What could disrupt development of this new feature

We need ARM boards for the build system, and boards that do not stay offline after a power failure.

Planning

Contingency

In case of failure, simply do not ship the ARM port on Mageia mirrors.

Release Notes

Documentation

Include here any needed information or link to documentation

Packager comments

mokraemer: Why don't we use a crosscompiler, which will save us the problem of slow arm machines?