Group: Hardware/Software/FSDG distributions

From LibrePlanet
< Group:Hardware‎ | Software
Revision as of 20:23, 10 October 2022 by GNUtoo (talk | contribs) (Architectures support: It probably doesn't support armv6, armv5 and it doesn't support armv4 (the Android on freerunner project wanted to add support for that back in the days))
Jump to: navigation, search

Introduction

This page is meant to document what type of hardware FSDG compliant can and/or want to support.

For instance having FSDG compliant distributions that support many architecture is interesting for several reasons:

  • To get the RYF certification for a computer, being able to use all the components of that computer with free software is not enough as that computer also needs run an FSDG compliant distribution on that computer. See the RYF endorsement criteria for more details on that certification.
  • Users that want fully free system can also build systems similar to the ones that got the RYF certification themselves and/or get some help to do it, and here they also need FSDG compliant distributions to run on their computers.
  • As some computers can run fully free software, with some of the hardware components not working, it's also very interesting to be able to have a distribution to support such hardware. See the article on single-board-computers on the FSF website for more details.

So it is very interesting to document that.

It is also interesting to combine that information with information about what type of users is able to use the FSDG distributions. For instance if an architecture is supported only by FSDG compliant distributions that are for technical users with good command line knowledge, it would then dramatically limit the amount of people able to use that computers with that architecture with fully free software.

The release type (Rolling release, stable releases) and the release frequency is also important to take into account:

General purpose GNU/Linux distributions

General information

Distribution Audience Release type
Dragora Technical users:
  • Graphical installation
  • No graphical package manager[1]
Stable releases

Rolling releases are also possible

Guix System Technical users:
  • Mostly graphical installation
  • The knowledge of a guile compatible programing language is required to administrate the system
  • Do graphical Guix tools do exist?
Rolling release
Hyperbola Everybody?
  • Can the installation be done graphically?
  • It has a graphical package manager (octopi). Is it installed during the graphical installation?
  • Does the user needs to mess up with configuration files?
Stable releases
Parabola Everybody: Rolling releases
PureOS Everybody:
  • The installation can be done graphically
  • There is a graphical package manager installed during the graphical installation
Rolling release
Trisquel Everybody:
  • The installation can be done graphically
  • There is a graphical package manager installed during the graphical installation
Stable releases

Architectures support

Distribution or software ARM 32bit ARM 64bit MIPS 64bit little endian PowerPC 32bit big endian PowerPC 64bit little endian Riscv 64bit x86 32bit x86 64bit
Dragora No[2] No[2] No[2] No[2] No[2] No[2] i586 Yes
Guix System armhf Yes No, cross compilation only[3] No, cross compilation only[4] POWER9, experimental[5] No, cross compilation only[6] i686 Yes
Hyperbola No No No No No No i686 Yes
Parabola armv7h experimental, through armv7h only[7] No, discontinued[8] No Unfinished Unfinished i686 Yes
PureOS No Yes, can be installed with debootstrap[9] No No No No No Yes
Trisquel 9 (flidas) No No No No No No i686 Yes
Trisquel 10 (etiona) No Yes No No No No No Yes

Boot software interfaces support

Many ARM single board computers contains a boot ROM (usually called bootrom) that is small and read-only and that loads the bootloader from an external peripheral like a microSD or the internal memory (like an eMMC for instance). There the bootloader replaces something like GRUB and the BIOS on x86. This situation usually puts the distributions in control as they can ship the bootloaders they want for these computers, so it's up to them to choose the details of how the computer boots (though the downside is that they might need to build and package a bootloader for each devices they want to support).

In contrast, on most x86 computers and on some ARM computers it doesn't work like that. There is a boot software like a BIOS or UEFI on a memory chip that is soldered on the mainboard, and it's a lot more difficult for users to replace that software with free software or to recover from code that doesn't boot.

This makes it interesting to document what boot software interfaces FSDG distributions supports, because if a distribution doesn't support the BIOS interface anymore, then it won't work on computers with that Interface (like laptops with Libreboot and SeaBIOS instead of GRUB).

And even if users have Libreboot and can change the way the computer boots, they are often afraid to try to change how things work by themselves: if something goes wrong, most users don't know how to recover form it (it requires advanced hardware tools like flash programmer, to disassemble the computer, etc).

And in case of computers with nonfree BIOS and UEFI users don't even have the option of changing the way it boots, and can't try to contribute to projects like Libreboot to add more options and get that tested by the community.

Distribution or software BIOS Libreboot with GRUB UEFI 32bit on 32bit CPU UEFI 32bit on 64bit CPU UEFI 64bit on 64bit CPU
Dragora
Guix System Yes Supported by Libreboot[10] Yes Incomplete [11] Yes
Hyperbola
Parabola Yes Yes Yes
PureOS
Trisquel 9 (flidas) Yes Yes
Trisquel 10 (etiona) Yes No Yes

Small distributions

Distribution or software Usage Audience Release type
libreCMC
  • WiFi access point and small network equipements
  • Ben Nanonote (tiny portable device)
? Stable releases
ProteanOS ? ? ?
Replicant
  • Android distribution for smartphones and tablets
Users with extremely basic command line knowledge Stable releases

Architectures support

Distribution or software x86 32bit x86 64bit ARM 32bit ARM 64bit MIPS 32bit big endian
libreCMC Requires to build from source Requires to build from source built for cortexa9[12] No Yes
ProteanOS ? ? ? ? ?
Replicant No No Probably requires ARMv7 No No

Adding support for a device

Distribution or software Adding support for a device
General purpose GNU/Linux distributions
  • You may need to package device specific software like bootloaders for non-x86 devices
  • You may need to update or write installation instructions for the device if the existing ones do not support the device
  • You need to upstream the code that makes the hardware work if it's not already done
libreCMC
ProteanOS
Replicant
  • You need to add a vendor/device/the-vendor/the-device repository with the hardware configuration
  • You may need to package the code that makes the hardware work if it's not already done

References

  1. https://dragora.org/manual/en/html_node/pkgmanagement.html
  2. 2.02.12.22.32.42.5 Dragora can also be bootstraped from source, but there is no guarantee that it will work for unsupported architectures.
  3. Guix still support cross compiling packages for mips64el-linux-gnu
  4. This can for instance be used to test running software in big Endian mode (to fix bugs).
  5. The Guix 1.3.0 release blog post (https://guix.gnu.org/en/blog/2021/gnu-guix-1.3.0-released/) states that "POWER9 support is now available as a technology preview"
  6. Guix support cross compiling packages for riscv64-linux-gnu
  7. For it to work:
    • You need to install the linux-libre-aarch64 kernel
    • You need a processor that also support running 32bit arm code
    Also note that bootloaders for aarch64 computers are not packaged yet, so you'll need to compile them yourself for now.
  8. https://www.parabola.nu/news/parabola-support-for-mips64el-discontinued/
  9. This can be done in two stages like with debian. The first stage can be done this way: debootstrap --foreign --arch arm64 byzantium ./rootfs https://repo.puri.sm/pureos Amber can probably also be installed but I lacked older hardware that was supported by its kernel. Adding the dtb made it boot on Amber though.
  10. Libreboot has documentation on how to do that here: https://libreboot.org/docs/gnulinux/guix.html
  11. We can create images with guix system image -t efi32-raw, but there is no official installer for efi32-raw (though we might be able to create one with "guix system image -t efi32-raw gnu/system/install.scm") and the installer application probably doesn't support efi32-raw yet.
  12. https://librecmc.org/librecmc/downloads/snapshots/v1.5.10/targets/mvebu/cortexa9/


This page was a featured resource in August 2020.