Note: This guide is for people who want to run 100% Free Software, not just mostly free software. Most people probably won’t be able to use 100% Free Software due to the practical limitations outlined in this doc. If your goal is mostly Free Software, but not entirely Free Software, it is a LOT easier than what’s uncovered here.

Computers

Pretty much every modern computer relies on proprietary software to some extent. So to have a fully free computer, we need to go back in time. I’ve outlined two criteria for this hardware:

  1. It must support GNU Boot or Canoeboot - I’m not counting Libreboot support because although Libreboot itself is free software, some Libreboot hardware requires non-free blobs to post (as part of their “Binary Blob Reduction Policy”). Canoeboot is a fork of Libreboot maintained by the same dev which explicitly forbids these non-free blobs.

  2. It must support disabling the Intel Management Engine or Platform Security Processor (preferably, it shouldn’t include them in the first place).

Recommendations

  • Lenovo ThinkPad X200
    • I’ve tested this laptop myself (flashed Canoeboot, tested with PureOS) and can confirm it works with 100% Free Software… unfortunately, with a Core 2 Duo and Intel GMA graphics, it’s not very fast. Other compliant laptops (e.g., ThinkPad T400) aren’t much better.
  • ASUS KCMA-D8 Motherboard (mentioned on ryf.fsf.org)
    • Desktop/Server motherboard designed for older AMD Opteron CPUs… probably your best option if you need a desktop powerful enough for work like video editing and CAD, though the board may be expensive or hard to come by.
  • Gigabyte GA-G41M-ES2L Motherboard
    • Compatible with Intel Core 2 Duo, Quad, and Extreme CPUs. Those CPUs are not as fast as those compatible with the ASUS KCMA-D8, but this board is cheaper, more readily available, and when paired with a Core 2 Quad/Extreme, 8GB of RAM, and an SSD could be decent enough for regular computing.

Graphics

You would think AMD would be better than NVIDIA because AMD’s Linux drivers are free whereas NVIDIA’s official drivers are not, but modern AMD GPUs require non-free firmware. So if you use an AMD GPU with a fully free distro, it either will not work or will be very limited (e.g., lacking GPU acceleration).

Older NVIDIA GPUs do technically work with fully free software thanks to the unofficial nouveau driver (I tested on Parabola with a GT 520, a GTX 660, and a GTX 780). 3D acceleration works (I was able to play Luanti/Minetest with decent performance), but performance is still significantly lower compared to the proprietary NVIDIA driver and I noticed some graphics glitches and freezes with the GTX 660 (not sure if it’s the GPU itself or the nouveau driver).

Intel iGPUs are the best case scenario in terms of stability and reliability. Newish Intel iGPUs can be surprisingly capable for things like light gaming (most free/libre video games aren’t that demanding anyway), but for these older Intel systems that are compatible with fully free software, you’re looking at older iGPUs like the GMA 950, where the limitation is the performance of the iGPU itself… assuming the CPU even has an iGPU.

Wi-Fi

For internal Wi-Fi cards (such as in laptops), your best bet is to use an Atheros Wi-Fi chip (I have an Atheros AR9280 in my laptop). These can be found fairly cheap, I picked up two of them from two different sellers for two different computers, both costed less than £10 on eBay. Though your laptop’s BIOS may blacklist third-party Wi-Fi cards.

For external USB Wi-Fi cards, you can use something like the TP-Link TL-WN722N (note: there are two models with the same name… thanks TP-Link. You’ll want the older style green box).

(Note: Pretty much all of these free software Wi-Fi cards are Wireless N rather than the newer AC/AX variant.)

Operating Systems

Desktop

Microsoft Windows and Apple’s macOS are obviously off the table, but most GNU/Linux distributions also contain some degree of non-free software.

For a distro to be considered 100% free software, it must not have any non-free software. This doesn’t just include applications, it also includes fonts, codecs, drivers, firmware etc. Even the kernel cannot contain non-free blobs, so most FSF distros use the Linux-libre kernel.

Moreover, a distro cannot be “optionally” free. So even if a distro doesn’t come with non-free software, if there’s a non-free repo or if there’s a tickbox in the installer to allow non-free software, that disqualifies the distro from FSF status.

Currently, there are seven distributions that are fully free (for PCs and workstations): Dragora, Dynebolic, GNU Guix System, Hyperbola, Parabola, PureOS, and Trisquel.

From personal experience, Trisquel (based on Ubuntu) and PureOS (based on Debian) the easiest to use, while Parabola (based on Arch) and GNU Guix System are good for power users. You can obtain a fully-free system without using an approved distro, but I’d recommend using an approved distro to reduce the chance of running non-free software by mistake.

Mobile

The only real option for a fully libre mobile Operating System is Replicant (based on Android), which primarily runs on older Samsung devices like the Galaxy S2 and S3.

While Replicant itself is free software, these smartphones (like pretty much all smartphones) have a lot of proprietary components. Things like Wi-Fi, Bluetooth, some of the cameras, and GPU acceleration do not work properly. For connectivity, you will either have to use an external Wi-Fi adapter that’s compatible with free software or use mobile data (if the device is compatible with it).

Even though Replicant itself is free software, none of the supported devices (except the GTA04, which is extremely hard to come by) run free bootloaders. Replicant advises against using a smartphone at all if said compromises are not acceptable.

Purism’s Librem 5 runs PureOS (an FSF-approved GNU/Linux distribution), but it has a non-free modem and it’s also very expensive.

Applications

Believe it or not, this is actually the easy part!

Web Browsers

I would recommend GNU Icecat since it is free software and comes with LibreJS (which blocks non-free JavaScript). Other free software browsers like qutebrowser, LibreWolf, and ungoogled-chromium could work and they are free software, but you may wish to disable JavaScript since they do not come preinstalled with LibreJS (LibreWolf can run LibreJS since it’s based on Firefox).

Unfortunately, due to the nature of the modern web, a lot of things don’t work properly if you block non-free JavaScript (or all JavaScript). So a lot of things that you may do with a web browser, you may want to use with other programs (e.g., using a desktop mail client instead of webmail).

Mail Client

Pretty easy choice, use Thunderbird (Trisquel uses a fork of Thunderbird called Icedove Mail).

If you wish to avoid Mozilla, other options include KMail (a KDE application), Geary (a GNOME application), or mutt (a terminal application).

(Note: Not all mail services can be used with desktop mail clients).

Media Playback

If a media file cannot be played without non-free codecs, you can use Handbrake (a GUI application) or ffmpeg (a command line tool) to transcode it so you can play it with free software.

Other Hardware

Routers

Look for routers that can run LibreCMC (an embedded distro approved by the FSF).

Helpful resources