If I had to choose the single moment that defines when the Free
Software movement became self-aware, it would be the 1983 publication
of the GNU manifesto by
Richard Stallman. Despite its age it is
amazingly up to date. Free Software has come a long way since that
time; creating an alternative by inspiring people to put together the
GNU Project piece by piece on a proprietary platform.
Only with the publication of the Linux kernel were people able to see
pure Free Software operating systems running on their computers in the
90s. But they were still booting off a proprietary BIOS, and we also
saw an increasing tendency to put hardware functionality into
proprietary firmware. Only recently have projects such as LinuxBIOS
managed to bring more freedom to the BIOS, although notebooks
still are problematic. The issue of proprietary firmware is still
being worked on, including by
Compared to the situation in the personal computer area, embedded
devices are still several years behind, but there are people who are
working hard to catch up. I recently had the pleasure to learn a
little more about this exciting field.
One device that a lot of people have in their homes or offices are
routers to connect to the internet. Until not so long ago, these used
to be entirely proprietary. That is no longer true. Not only do
several vendors provide routers with more or less free firmware based
on the Linux kernel, but the OpenWRT
project and its younger
offspring the FreeWRT project have
also made some amazing advances
in this area.
However even though FreeWRT has a web
interface to build custom
firmware online, both are still catching up with the freedom,
ubiquity and sophistication of modern GNU/Linux desktop distributions.
There are still problems with hardware compatibility and drivers, as
both distributions are still confined to a certain chipset, and locked
into the 2.4 Linux kernel series because of proprietary drivers for
the wireless card built by Broadcom, a manufacturer that has proven
itself to be very uncooperative towards the Free Software community.
Getting rid of these restrictions to freedom is a collaborative effort
with many different players, including FSFE's Freedom Task Force,
which helped the OpenWRT team to avoid making mistakes in the reverse
engineering of the Broadcom wireless driver, such that the result will
then be fully usable by all Free Software.
The situation with mobile phones and PDAs is even worse than that of
routers. Until very recently it was close to impossible to find mobile
phones that were running Free Software and gave the user control over
what they were doing.
One of the first companies that tried to answer requests for Free
Software mobile phones was Trolltech with their Qtopia
Maybe because this was the first time this was tried, and maybe
because they didn't consult enough community voices before launching
the phone, they made some mistakes. One of them was the overly
restrictive EULA terms, which Trolltech quickly corrected after
with the problem.
This was not the only problem. The Greenphone's package management is still
proprietary, although that problem can be mitigated by using the ipkg
package manager instead. Ultimately it seems that everything but
the communication stack can be replaced by Free Software in this
way. So the Greenphone was a step in the right direction, but it is
not yet good enough.
The interest it raised probably also helped bringing about the
OpenMoko phone, which will ship very
soon and which is taking
another big step toward freedom. Like the Greenphone, the GSM stack
remains proprietary, though. Reasons for this appear to be a thicket
of cross-licensed patents and regulatory concerns about frequency
usage and transmission strength.
Many politicians are concerned that tinkering with these could impair
the ability of other people to communicate, including the ability to
access emergency services. Their argument is that the potential damage
done by tinkering is greater than the damage of not having the freedom
to change the code. This is a reincarnation of the old "your freedom
to swing your fist ends at my nose" argument, and it is not easily
discarded. We need to convince society with good answers to this and
because of that, the GSM stack is likely to remain a difficult area
for some time.
Depending on when you start to count, it took our community at least
10 years to address the issue of the proprietary BIOS on our PCs, but
we did not let this stop us from improving our GNU/Linux Desktops. In
the same way I believe we should work to create maximum freedom on
Other possible candidates have been launched by Nokia, namely the 770
and N800 internet tablets. Both
devices are running a Linux
kernel with a very small GNU/Busybox system using Debian package
Because they do not need the GSM stack, these devices might be made
entirely free, though unfortunately they are not being shipped that
way. They come with the proprietary Opera browser and a Flash player,
which are easily uninstalled and can be replaced by a Mozilla port
maybe Gnash can be
compiled for them as well.
But there is more work waiting to be done: In a sad kind of irony
Nokia seems to have chosen the Gtk+ library over Qt because that would
allow them to keep part of their helper library for the embedded small
screen proprietary. There are also other parts that are still kept
proprietary, like the boot loader and battery charging
application. They also seem to share the proprietary firmware problem
with the personal computer platform. Even the flashing utility is
proprietary software at the current point in time.
This has made some people very
sceptical. It may even turn out
that we will not be able to free these specific devices entirely
without Nokia's help on the hardware interfaces, which may never
come. But working to free them will inevitably end up providing more
freedom, although maybe not on these specific devices. Experience
gained can be used in many ways, and Free Software written can be
transferred to other platforms.
Like the Greenphone, these Nokia devices provide a substantial step
towards freedom, but are not yet good enough. So they have to be seen
as an intermediate step towards freedom in the embedded world. Both
Trolltech and Nokia deserve praise for making a step into the right
direction, as well as constructive criticism on the remaining
proprietary parts, which should also be set free.
There are projects that have already gotten very far in this effort
for other devices, like the Familiar Project for the iPAQ
which, I was told, is now running fully Free Software except for the
wireless driver. And there are other devices that seem capable of
running Familiar, like the Siemens Simpad, which also spawned its own
community project to set it free. So maybe a FreeMaemo.org
project is what we need for the Nokia internet tablets.
An essential element in truly achieving freedom in the embedded world
will be to further strengthen the Free Software community in this area
and enable more Free Software developers to tinker with these devices.
One person who has done extraordinary work in this area is Harald
Welte. His signature is also visible all over the OpenMoko project and the
way it actively reaches out to build a strong developer community. We need
more people like him and the other OpenMoko developers, and I hope you will
take a look at their
call for GPL'ed wireless drivers and application developers.
We also need to get more of the devices into the hands of capable
developers. This is what Armijn Hemel of gpl-violations.org did
during FOSDEM 2007 when he gave a bunch of routers to the OpenWRT
project so they would have more devices to work with and set free.
Ultimately freedom is not static. It is a process that involves a lot
of work. It is also a differential question: There are steps towards
more freedom, which are good, and steps towards less freedom, which
cause problems -- if not immediately, then in the future. The choices
of which direction to take were recently described by FSFLA as "The
As a community, we have set the personal computer free to a very large
extent. We are not yet as far with embedded devices, but there are
first signs of the Free Software community growing into this area.
With the possible exception of the GSM stack, I believe we have good
reason to expect 100% Free Software devices in the near future by
starting from the most free, although imperfect, options available and
setting them free entirely.
Through this effort we'll not only see the Free Software community
flourish in this area and we are also likely to see more hardware
vendors willing to supply the community and people who value their
freedom with such devices.
Eventually it will be possible to enter the store and buy such a
device running only Free Software out of the box, which is what I
really want. And with projects such as the GPE Palmtop Environment
we will be able to use the same software environment on different
hardware devices; something that is common on personal computers, and
a great advantage.
Working for this goal can serve to strengthen Free Software on the
desktop, because integration of the mobile devices with desktop
computers is an important issue. With Free Software it could be
possible to use the same software on both, possibly in different
versions and from different vendors. The result would be seamless
integration that proprietary software might not be able to achieve
across vendor boundaries.
It seems only a question of time until someone picks up on this and
offers the combination of freedom and convenience to people. In the
end, by walking forward on the road to embedded freedom, we might end
up strengthening Free Software overall.
(The author is initiator and president of the Free Software Foundation Europe (FSFE)
and his personal
blog is available at the Fellowship
to post comments)