Other languages English ; Español ; Portuguese |
Contents
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: 2025/05/23
- 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?