Group: Hardware/FSDG distributions

From LibrePlanet
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]
  • Very few packages[2]
Stable releases

Rolling releases are also possible

Guix System Technical users:
  • Mostly graphical installation
  • The knowledge of the scheme guile programing language is required to administrate the system
  • No integrated graphical package manager yet.[3]
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[4] No[4] No[4] No[4] No[4] No[4] i586 Yes
Guix System armhf Yes Cross compilation only[5] Cross compilation only[6] POWER9, experimental[7] Cross compilation only[8] i686 Yes
Hyperbola No No No No No No i686 Yes
Parabola armv7h experimental, through armv7h only[9] No, discontinued[10] No Unfinished Unfinished i686 Yes
PureOS No Yes, can be installed with debootstrap[11] 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[12] Yes Incomplete [13] Yes
Hyperbola Possible[14]
Parabola Yes Possible[15] Possible[16] Possible[17] Yes
PureOS Possible[18] Possible[19] No[20] Possible[21] Possible[22]
Trisquel 9 (flidas) Yes Possible[23] Possible[24] Possible[25] Yes
Trisquel 10 (etiona) Yes Possible[26] No[27] Possible[28] 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

Target architectures support

This section mentions which architecture the small distributions can run on. For instance Replicant runs on ARM (smartphones and tablets).

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

Host architectures support

This section mentions which architecture can be used to build the small distributions. For instance Replicant can only be built on x86_64 GNU/Linux computers.

Distribution or software x86 32bit x86 64bit
libreCMC ? Yes
ProteanOS
Replicant No Yes

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. http://git.savannah.nongnu.org/cgit/dragora.git/tree/recipes
  3. So far the only graphical tools are either very domain specific tools (like a web interface for using Guix to do scientific experiments) or are too experimental to be packaged into Guix.
  4. 4.04.14.24.34.44.5 Dragora can also be bootstraped from source, but there is no guarantee that it will work for unsupported architectures.
  5. Guix still support cross compiling for mips64el-linux-gnu
  6. Guix support cross compiling for powerpc-linux-gnu.
  7. 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"
  8. Guix support cross compiling for riscv64-linux-gnu.
  9. 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.
  10. https://www.parabola.nu/news/parabola-support-for-mips64el-discontinued/
  11. 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.
  12. Libreboot has documentation on how to do that here: https://libreboot.org/docs/gnulinux/guix.html
  13. 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.
  14. TODO: Find some documentation on how to do that.
  15. TODO: Find some documentation on how to do that.
  16. TODO: Look at status. We can at least install GRUB to 32bit UEFI because the GRUB package supports many GRUB platforms including i386-efi.
  17. TODO: Look at status. We can at least install GRUB to 32bit UEFI because the GRUB package supports many GRUB platforms including i386-efi.
  18. TODO: Look at status. We can at least install GRUB to 32bit UEFI because there is a grub-pc package.
  19. TODO: Find some documentation on how to do that.
  20. There is no i686 support in PureOS.
  21. TODO: Look at status. We can at least install GRUB to 32bit UEFI because there is a grub-efi-ia32 package.
  22. TODO: Look at status. We can at least install GRUB to 32bit UEFI because there is a grub-efi-amd64 package.
  23. TODO: Find some documentation on how to do that.
  24. TODO: Look at status. We can at least install GRUB to 32bit UEFI because there is a grub-efi-ia32 package.
  25. TODO: Look at status. We can at least install GRUB to 32bit UEFI because there is a grub-efi-ia32 package.
  26. TODO: Find some documentation on how to do that.
  27. There is no i686 support yet in Trisquel 10.
  28. TODO: Look at status. We can at least install GRUB to 32bit UEFI because there is a grub-efi-ia32 package.
  29. https://librecmc.org/librecmc/downloads/snapshots/v1.5.10/targets/mvebu/cortexa9/
  30. 30.030.130.230.330.430.530.630.730.830.9 http://proteanos.com/doc/install/pc/


This page was a featured resource in August 2020.