Free Software on Free Hardware

In may 2015 I gave a talk at the DUCC-IT on Open Source Hardware that is able to run not just a fully Free Software stack, but one based on an official Debian release. This article touches most of the points of that talk.

When most people think about open(-ish) hardware that runs Linux, the first thing that comes to their mind is the Raspberry Pi, but while it had a big role in bringing hackable, linux friendly and low priced boards to the masses, it is seriously lacking as far as Freedom is concerned.

The problems on the software side have been already listed elsewere, and it is true that there have been steps to solve them, altought they are taking a long time, and the way small steps have been announced as huge improvements didn't help the reputation of its producers among people interested in Free Software stacks on this kind of hardware.

Even a full Free Software stack, however, won't change the fact that the Raspberry Pi is not Open Source Hardware: it is designed and produced in a traditional model where third parties have very limited rights on studying and improving the hardware itself.

For something to be Open Source Hardware, on the other hand, it has to respect a list of 12 points in a definition that derives from the Open Source Definition, and in turn from the Debian Free Software Guidelines and basically require that everybody is allowed to make, modify, distribute, and use it.

This of course resounds with the ideals of Free Software, but of course hardware is different from software: for one thing experimenting, learning and changing software only requires a common computer and your time, while hardware tends to have significant ongoing costs for every iteration of the process, and after a certain complexity can only be affordable if done in huge numbers to spread the fixed costs.

Open Source Hardware, however, is as important as Free Software for a number of reasons, of which two are expecially evident.

One reason is practical, like in Open Source Software: the availability of freely usable hardware designs helps sharing developement costs allowing productions on smaller scale that are useful both to innovate and to support the needs of niche markets such as those of disability aids with lower prices than would be required to pay for a developement from scratch.

Another reason is even more important: we are in a situation where we can't trust the hardware any longer. Hiding nasty surprises that can't be detected with customary software systems is extremely easy, and we have reasons to suspect that a number of entities have the resources and may have already started doing it.

These include state agencies who are abusing their powers to to mass surveillance beyond the limits allowed by law to balance the need to fight crime with the rights of citizens, but also big criminal organizations and possibly big corporations.

A system that is completely Free, both in hardware and in software isn't a guarantee of safety from this threath, but would help a lot in mitigating the risk: being able to check the design from the ground up makes it significantly harder to include nasty surprises. Distributing hardware that doesn't correspond to the published design files is of course a possibility, just as it is with software distributed in compiled form instead of source code, and in both cases there are ways to check for it, and it is enought that a few people do it and spread the news of their results for everybody to gain from it.

Of course, just as with software, a free license is important, but not enought: every board and its producer will have to be checked individually, but there are strong cultural reasons why most OSHW producing companies will also care about Free Software and producing devices that work for their users instead of against them.

Unluckily, right now there is no way to buy something that works like a general purpose computer and is completely made up of Open Source Hardware: there are plans to design OSHW processors / system on chips, but as of May 2015 none of them are available except as something that runs on an FPGA, which involve another layer of non-freedom. [1]

[1]The most active of which right now include RISC-V / LowRISC and OpenRISC.

The best that can be had are OSHW boards designed around a system on chip designed for the cellular/tablet market and which is as well supported as possible from a Free Software stack.

This reminds in some way of the situation of Free Software before the Linux kernel was available: running a full Free Software system wasn't possibile, but interested people could use what was available, and ideally help working on what was missing to the best of their ability.

Board like these have existed for a while, predating the Open Source Hardware definition itself: the BeagleBoard, for example, has been available in various models since the late 2000s, running Free Software except for accelerated video drivers.

Those boards were still somewhat limited expecially in storage, so most of them were running distributions designed for embedded systems that tended to be distributed as full images and required specific effort from the board producers to allow further updates.

This works well for single purpose appliances or worse as a stable base for third party developers to write proprietary apps on, but is suboptimal for a general purpose computer, where a traditional distribution like Debian can be more suitable.

Lately, the trend has been more and more to use a fully featured distribution, but usually distributed as a pre-made image with a kernel derived from the Android variant and other customizations: this is a bit better, but still problematic for long-term updates and expecially under a security point of view: the traceability of the included software suffers, expecially when the images aren't signed or certified in a secure way as the official ones are.

So, what can we have today? The slides for the original talk were shown on an A20 based board running Debian Jessie installed from an official netboot SD card image as explained in the relevant section of the armhf installation guide. To have support for HDMI video I had to install the u-boot-sunxi package from experimental and then follow the instructions in /usr/share/doc/u-boot-sunxi/README.Debian to write it to install it to the SD card.

This system is reasonably Free, per the current state of things, and can reasonabily be used as a desktop, with some significant limit with things involving anything that needs graphical/media acceleration.

This is an area of active developement, so rather than repeating what the status was in May 2015, I'll just point to two sources of updated informations on boards based on Allwinner SoC, which at that time were one of the less evil alternatives available: the page Installing Debian On Allwinner on the debian wiki and Linux Mainlining effort on the sunxi one.

The idea is that is currently possibile to have a somewhat standard desktop experience, with some limitations, on an OSHW board based on a proprietary System on Chip, and the situation is improving at a steady pace, but there is still lots of work to do and everybody's help is useful.

Send a comment: unless requested otherwise I may add it, or some extract, to this page.

Return to Top