Build an Open-Source Focused PC?

So this has been something I've thought about for while. If I were to build a PC with no limitations in terms of hardware and peripherals with locked down features (ie motherboard features and shit like that which only work in Winderz) how would I go about selecting the proper hardware?

Basically I want a setup where all the products are either open-source friendly (or perhaps specifically focused) and not gimped by Linux. An example of what I mean are gaming mouse and keyboard software. AFAIK there is no way to change the DPI with any Razer mouse within Linux (yes I know Razer pretty much makes junk, but I bought this stuff three years ago when I was pretty much a retard), from my own experience. 

Which GPU manufacturer has the best OPEN-SOURCE-SUPPORT? Since this is an open-source strict build we should obviously stick to open-source drivers. Which CPU manufacturer offers the best interest in Linux users in terms of feature set and performance? From the little that I've heard is that NVIDIA are dicks in terms of open-source (their products tend to fall into the locked-down spectrum anyway) and AMD are generally pretty good and even have dedicated Linux people among them. Am I correct? If not, educate me.

So other things to consider in our component selection would be open-source attitudes behind each and every company we choose to select from.

So I think you guys get my point, let me know if you need further explanation.

Let's see what we can come up with in terms of a complete build list? Should be fun.

Well Intel's integrated GPU has open source drivers. AMD's open source drivers are pretty good and they keep getting better.

The hardest part will be flashing an open source BIOS on to the motherboard since those are almost all proprietary.

Arguably the best gaming mouse has full linux support, in that all settings can be directly set on the mouse itself, not through external software, and that's Zowie. There is also full linux open source support for Logitech peripherals, from the G5 to the G400s, so both for IR-laser-focused and visible-light-through-lens-focused sensor mice for people that like the classic Logitech ergonomics.

Most mice will allow you to directly edit the settings on the mouse or keyboard controller though, except for instance Microsoft and Apple hardware products, of which the internals are obfuscated in every sense. Corsair and Razer are also mostly obfuscated, and so are other typical "gaming" brands. They are still class compliant though, and open source software offers flexibility that doesn't require the hardware to be as flexible as on Windows. For instance, most open source games have an unlimited config range for sensitivity, and acceleration is not usual in open source applications, and raw mouse input is pretty much default X11 behavior... a lot of the typical gaming peripherals come with features that solve problems that are specific to MS-Windows and MS-Windows-only applications. Just about any 10 USD optical mouse will probably give you the same degree of performance you would get from an expensive gaming mouse in MS-Windows, if you can live with the build quality and the ergonomics.

In general, if you want software flexibility on open source, it's useful to run hardware that's a few years old. If you buy hardware that was released in the last two years, well, then you will run into problems with things like Debian Stable and Ubuntu LTS. New hardware is not fun, because most of the time, the performance increase is not worth the price for mainstream open source users, because the mainstream applications just aren't very demanding. Commercial applications might be nerfed, like CS:GO for linux for instance, but open source applications that do the same, display huge performance (far beyond the performance on even the heaviest Windows systems) even on very modest systems. AMD systems have the benefit of having a slower release cycle and the benefit of supporting all of the most important features throughout the range. All AMD systems will offer full hardware passthrough virtualization and bug-free/unspiked encryption modules, etc... things that are important to open source users.

There is very few hardware that doesn't work in linux. Most hardware is just supported by the linux kernel. There are a few exceptions of hardware that is only supported through hacks, but for which there is no native open source support. These are mainly only some older Broadcom Wi-Fi chips and of course nVidia GPU's.

Through crowdfunding, an open source driver for nVidia GPU's was developed through reverse engineering nVidia chips with an electron microscope. These open source nVidia drivers do not offer the performance of the closed source nVidia proprietary drivers, and they will never reach the same level of performance, because nVidia just won't give crucial information to the Linux Foundation about their hardware. Until 2012, nVidia had a pretty good Linux driver (proprietary of course), but since the summer of 2012, they've pretty much stopped developing that, and the linux drivers by nVidia are pretty awful. AMD used to do the same as nVidia, but even when they're more influential now than nVidia in the GPU market (which is dominated by Intel by the way, more than half of the world's GPU's are made by Intel), AMD has made it a priority to migrate towards open source friendly drivers. AMD does that in two ways: 1. they have a specialist on payroll that works on the open source driver development, and 2. they have provided open source kernel modules that work with the proprietary Catalyst driver (which can not be open sourced because it contains 2D acceleration licenses that don't belong to AMD), so that there is no more need for binary blobs in the kernel, which eliminates problems when upgrading the kernel, and eliminates security and privacy risks. Intel only has open source drivers, but - despite of Intel having by far the largest team of developers - they are having huge problems getting their shit to keep up with AMD for instance. For instance, Beignet, the OpenCL acceleration component for Intel GPU's, hardly works after over two years of development. So for basic use, Intel is a pretty good solution, but AMD also, because a modern kernel will work with AMD GPU's just fine, with 80+ % of the performance of Catalyst, and even the gamers that want more, can still use Catalyst in a pretty safe manner on bleeding edge systems.

On linux, to have flexibility in using older kernels, it's usually a good idea to keep one hardware generation behind on hardware products with a fast release cycle. The performance difference mostly isn't worth the extra cost anyway, and early adopters are basically just people that do the testing for the others. It's necessary to test stuff in open source, but not necessary to pay extra for maybe, the manufacturers should (but most often don't) provide new hardware to open source communities like they do to closed source companies, and the users should not have to pay for doing the dirty work. If you're part of a dev community, it might be a good choice to go for blazing hot new hardware, to help development, and the benefit of doing that in open source is, that you can get credit for the solutions, and that you get feedback on the state of things, and that everything just works in terms of the existing features and performance for that category of hardware, even though new features might take a few weeks to get implemented by the open source community. On closed source though, customers that buy blazing hot new hardware, are simply exploited by manufacturers for debugging, and are not informed correctly about what does and what does not work. For instance, on Windows, nVidia's Maxwell based GPU's have not been delivering working CUDA acceleration. In fact, using the proprietary drivers, the amount of open source applications in linux that have gotten CUDA to work for Maxwell, is higher than the amount of MS-Windows applications that have gotten CUDA to work on Maxwell, which is quite ludicrous...

On open source linux, AMD's offering is quite compelling for mainstream users at the moment: for little money, it's possible to have a well matured and full-featured high performance linux system based upon AMD's FX range or APU range, with a high performance AMD GP-GPU. Of the latest AMD GPU series, I particularly like the R9 285, because it's lower power, which again saves money, while still offering ample graphical and floating point performance, and a good audio experience, using only open source software. I would go for a 970 or 990FX based mobo, a good AiO cooler for the CPU, and an R9 285, which is pretty silent and doesn't require a very expensive PSU. RAM is actually more important on linux than it is for most users on Windows. The linux operating system and applications use a lot less RAM than closed source applications, but linux and open source applications can actually get more benefit from more RAM than most Windows systems. Most Windows games are still 32-bit games, even the Steam Client (also in Linux) is 32-bit, which means that it will never use more than 3.6 GB of RAM. That shows that Windows and Windows software is really holding the systems back, when people are spending ever more money on ever more powerful CPU's and GPU's, to run applications that require just about the same amount of RAM as they did 15 years ago. In linux, RAM usage is much less than in Windows, but extra RAM will lead to much better performance of common applications like Firefox (has been 64-bit for ages in linux, still 32-bit in Windows), LibreOffice Calc (huge spreadsheets will not impact performance, also because LibreOffice Calc uses OpenCL acceleration, so whereas for instance a humongous spreadsheet on Excel in Windows will become a dog to work with, it will still be snappy in Calc on linux, even on a much more modest system, and even for the same amount of RAM, and if the system starts to struggle, on the linux system all you need is a RAM upgrade to be able to load a larger spreadsheet in RAM, but on the Windows system, a lot more hardware upgrade will be needed, in particular a stronger CPU, because there is no OpenCL acceleration, and thus a new mobo, etc...). So I would go with 16 GB of RAM as a minimum, so that there is some space for some virtual machines, etc... just more functional flexibility.

Another thing with linux, is that the desktop PC isn't the central piece of the linux environment any more. A lot of devices run linux these days, and they all work together out of the box in a linux environment. No more pesky proprietary protocols that make it impossible to use advanced features out of the box, etc... no more need for spyware-enabled proprietary software to connect interestingly priced appliances like media servers or NAS boxes from the WD consumer line for instance. For 100 USD, you can actually buy a WD MyCloud with 2 TB of space, and WD delivers a free DNS service that is pretty well thought out, based upon the hardware identifier and full strong encryption. If you use that with the WD software, it's of course not that interesting from a privacy point of view, but these devices (and also devices like the WD-TV Live Hub for instance), run linux inside, and are just out of the box compatible with any linux machine, without any downloaded application for Windows, without any specific software that spies upon you, etc... it just works very well right out of the box, and you don't even have to pay for a DNS service to roll out your own cloud if all you need is ftp and dlna. So buying hardware as an open source user, is a completely different thing than buying hardware for closed source. An open source user sees things completely differently, selects devices for other reasons, because the software is much more important than the hardware, and there is no need to buy ever more hardware to compensate for the failure of the software. Open source users don't buy new hardware because they need more performance very often, they mostly buy new hardware because they want more features and functionality, like NASes, 3D printers, dev kits, larger and more monitors for more clutter free vertical desk space that makes life simpler and work more efficient, etc...

Is your goal Open Source, or Free Software?

For GPU its currently Intel > AMD > Nvidia. AMDs open drivers are getting better, and there newest line of cards should soon be supported by there upcoming amdgpu drivers when it comes out. They're goal is to move more to open drivers as much as possible, and there amdgpu driver is a step towards this. Its not out yet though.

For peripherals, there is support for some gaming keyboard that have things like lcd screen on them, but honestly. Just get a keyboard, a nice mechanical one if you want to. In almost all cases things like media buttons are supported and configurable by your favourite DE or WM. For mice, I have a logitech G5 and the hardcoded dpi settings are just right for me, the best case solution would be some software to allow programming of the mouse but im not sure there is any for any mice? But in this case if you are never going to change the default settings, its ok.

Logitech's unifying receiver is supported with solaar. additional buttons is a little tricky, i dont think theres an easy way to configure them, but they can be configured with xbindkeys.

BIOS is a _big_ problem. In older motherboards a non-free BIOS was considered acceptable because it was never meant to be updated or changed. it had all the options you could use on the motherboard anyway.

Theres things like coreboot. but support is limited, it looks like ASUS has the most support but they are all older boards. Modern bios seams to be a problem if you wanting to use only Free Sfotware as there generally configurable, upgradable and arent just permanent non-changing code on rom.

Now if your fine with a proprietary bios as long as you can access all the features, ive generally found you can get that if you stay away from specialist boards like gaming motherboards that usually come with some proprietary control software. I dont have any specific recommendations though.

for other hardware, like webcams, sounds cards, other fancy devices, you can usually easily google the specific device and find if it is supported or not. for example, there is a driver matrix for webcams showing what is supported by the various drivers.

There is also full linux open source support for Logitech peripherals, 

As far as im aware though, editing things like dpi settings for the mouse hardware buttons still isnt supported?

If you want to go FULL FULL FULL stallman, you're going to have a bad time mmkay? This is one of the more powerful machines that I know of that is, more or less, completely open:

It ain't happening on modern PC hardware if you want it to be really, for real, full stallman open. Not even full stallman, just open but technically with no redistribution rights to the source, is tough.

Most people don't realize there are many, many, many embedded systems in a PC now and you don't have full access. The Zowie mouse you can configure, but you don't have access to the firmware. Same deal with Unicomp Model Ms-- they have a flash-based cypress controller in there. You have no idea what that is doing. There could be a 128k keystroke logger in there-- you'd never know.

UEFI is the same way. Even the Intel hardware-assist Random Number Generator has been called into question (though Linux arguably uses this entropy source along with others so perhaps that's mitigated).

The typical PC has no less than 8 distinct programmable memories in various components and peripherals that you don't have access to.

Did you know your hard drive has an ARM cpu on it almost as powerful as a raspberry pi? And that you can do a lot of interesting things there as well? 

see also this: 


So.. even RMS has to be pragmatic at some point to do the cost/benefit tradeoff on parts/etc. :)

I have had good luck lately from AMD graphics cards. Especially the 79XX series of cards (And R9 270/280 and even the R9 290X).

Almost all motherboard manufacturers have improved their linux support dramatically. Gigabyte, generally, I think has led there with Asrock not far behind. ASUS seems to have been somewhat linux ambivilent in the past, but lately I have had good experiences with onboard components. I am not sure if that is because a few peripheral manufacturers have taken over the universe, or what (looking at you, realtek).

just something to be aware of. When I found out malware can live in your battery firmware I just gave up. lol.


Even Stallman says that certain types of firmware don't necessarily need to be free software, when its more of a single purpose ROM which was never intended to be changed. But of course that barley applies with most firmware being more powerful, upgradable, and doing things that might not even be documented.

I was also blown away by how far back our intelligence community has exploited flaws in scada: -- purportedly one of the largest non-nuclear explosions in history  

If these memories were ROM then I think stallman would be okay, but when he talks about his philosophy of "owning" the hardware.. it's hard to be sure that your hardware is working for you, and you alone. At least, to me, it is in the face of these kinds of bits of software lurking underneath. Perhaps if there were better tools to audit these kinds of things. When this happens.... it makes you wonder.


Did that person eventually receive the keyboard? Otherwise isnt this more likely a case of mis-labelling?

But yes, companies seam to be trying to move people away from the concept of owning your hardware, or maybe more accurately owning your hardware where you have control, holding the software back under the guise of intellectual property or protecting their position in the market and the usual nonsense. I mean if that was the case would intel and amd be pushing open drivers?

RMS made a good point in the talk he did at 31c3 the other week when he touched on security, noting that if you cant see the code it simply isn't secure (my heavy paraphrasing). And its absolutely correct, if you cant see what the code is doing you have no idea what the hardware could be up to.

Maybe the only stop gap solution at the moment is analysing and blocking any suspicious traffic on the network side, so that if your hardware is spying on you, you can at least stop it transmitting.

it was a laptop,ordered from amazon CA to seattle. 

In the corner it says that the package contains a Lenovo Thinkpad Keyboard? Either way, do you know if she ever received the device?

Ah the picture says its a lenovo keypad so I assumed thats what it was and that it was never received.

Most people don't want to go open source for the RMS reasons, but rather for reasons of efficiency, quality and control.

Spy organizations are going to spy, that's what they do. Unless you're a government or a corporation that controls governments or parts of governments, protection against alphabet agencies is not very high on many open source users' list of priorities lolz.

Open source is much more about leveraging economic power, about leveraging knowledge, about getting the most out of assets, more than anything else.

Business users know that they have to put enough security measures in place to prevent liability, and that's it, no more, no less. That's a completely different ballpark than to make sure the alphabet agencies don't have access to the data. Who cares what those analysts in all of those alphabet agencies fap to when they go wild on spying upon people's data lolz... really subversive elements hide in plain sight, and there is nothing the alphabet agencies can do about it...

In the end, it's just about using math and science to your advantage, and about avoiding obfuscation thereof to facilitate the ruling class. Just like in medieval times, it wasn't allowed for common people to learn how to read and write, and only clergy was allowed to interpret texts. It's the age old battle of the cyphers, and in the end, it all comes to the same basic principle: who lives by the sword, dies by the sword. No organization in history has been able to keep it's power through obfuscation and limiting access to knowledge and information. So the internet is a weapon... big deal, it was always a weapon, it was bloody well developed as a weapon in the first place lol. So was computer hardware, which started out as a ballistic solution calculating project in WWII.

If we apply the open source principle to the Internet, there is nothing any obfuscation can do about it lolz.

Simple example: so the Internet is under surveillance, and let's assume that all digital encryption techniques are compromised. Math is still math, and encryption is still encryption. The only thing that matters, is the open source tool kit. Suppose you have an encrypted message, encrypted using your own encryption algorithm, and you display that message in the background of a casual Twitch stream, just on a piece of cardboard in a fixed spot in the image. How easy is it to convey messages that way with 100% security? Super easy! There is no software that will detect it, there is no software or mathematical tool that will allow anyone to break the encryption within a useful time span, and the entire message is there for all to see in plain sight, on a highly surveilled, controlled and obfuscated medium, the Internet, using highly compromised hardware and software... using nothing else but open source knowledge, simple math... that's the power of open source.

Closed source is when people are made to forget those simple applications of open source, because they are made to believe that they can only send a message using this or that application or hardware. The reality is, that because of open source knowledge, you can defeat the entire system by using unsafe tools, in the example above, let's say pencil and paper and a Ti-83+ (which also has proprietary obfuscated firmware lolz)., and a Logitech webcam (yup, obfuscated firmware) and a PC with obfuscated firmware and most probably any number of alphabet agency backdoors...

Open source is not about principles if you want to leverage it, it's about just one single principle: being allowed to think outside of the box!

In that sense, the Novena laptop is a bad example of open source from the perspective of most users. It costs over 1500 EUR for a handicapped ARM machine... let's be serious for a second here... how is that a useful allocation of assets for most customers? A 200 USD Nexus 7 is more powerful, some bloody 50 USD PC-on-a-sticks are more powerful! It's about the tools the user uses with that hardware! Open Source software is the pencil and paper and pocket calculator of the example above, it's the element of entropy that makes all the obfuscation and limitation efforts useless with regards to the net result obtained by the concerned user. What is the economic benefit in using a Novena? None whatsoever! It's as much nonsense as buying a perfectly functional 750 USD x86 laptop and then buying closed source handicapware for the same amount for the same price. That's also a bad allocation of 1500 USD. Except maybe for people that want to learn how to create hardware solutions or other specific uses. For those, the Novena might very well be a very cheap solution. It bloody well costs less than mere FPGA tools cost 10 years ago lolz... the benefit for the developers of the Novena is great though: they found a way to use open source to leverage their assets: they have become specialists in hardware solutions without spending a dime, everything was crowd funded and they have gotten a better education in less time than any commercially available education for the same skill set.

Closed source business models have a tendency to destroy themselves. Look at Microsoft, their recent panic reaction of open sourcing development tools for their pathetic software console platform are just too little too late, because the talent they would have needed, has already moved on. Look at nVidia, they have invested ever more in obfuscation, to the point now where they've obfuscated so much, that there are no developers of application any more that are interested in targeting CUDA acceleration, and their obfuscated platform becomes superfluous. Look at Intel, they've toyed around so much with all kinds of alphabet agency and Microsoft interests in their products, that the only ones even capable of developing drivers for the hardware, are the Chinese, the "enemy" if you want from the view point of the agencies and corporations Intel has been serving for all of those years.

Open source is not about absolute principles, it's about using as much common, openly available and usable knowledge, as possible, to make the best out of any assets available. Back in the old days, open source software saved our bacon as kids because the latest and greatest computer hardware was just too bloody expensive. Nothing has changed really, open source is still about doing more with obfuscated and locked down tools, about making money instead of wasting it. Open source is about recognizing that human skills and knowledge are more important than brands or commercial systems, it's about believing in yourself, it's about knowing that you can run your own life and business without paying "protection money" to some corporation.

Wow this thread is really eye-opening. I guess it is pretty much impossible to be fully open-source in terms of hardware. I really like the point Zoltan made about open-source software being about getting more use of "obfucscated" (all commercial hardware) hardware.

Maybe a dumb question but what is the difference between Open Source and Free Software?

Intel and AMD for OSS GPU driver support, here's more or less what the current situation looks like for the oss drivers looks like:


Compute/OpenCL should be shaping up soon though as AMD and the rest of the HSA Foundation member companies have been dropping quite a few patches in the last few months due to AMD getting set for Carrizo and their ARM based Opteron A series as well as companies like Qualcomm and the rest getting ready to release HSA compatible ARM chips for everything.


If you're going super OSS without going "Full Stallman" then you'll probably also want to consider getting a Coreboot compatible mobo though the list isn't particularly large yet.

Its not a dumb question at all. Theres a fairly solid distinction between the two. I think Zoltan described open source well

Open source is much more about leveraging economic power, about leveraging knowledge, about getting the most out of assets, more than anything else.

Open Source is essentially all about the code, and about ensuring the authors code is kept open. Its very much beneficial in the traditional business model because its very flexible in the amount of control someone has over the programs created from Open Source code.

You can see the Open Source definition here

Free Software is very much about protecting the users freedoms, there are 4, you can read here

  • The freedom to run the program as you wish, for any purpose (freedom 0).
  • The freedom to study how the program works, and change it so it does your computing as you wish (freedom 1). Access to the source code is a precondition for this.
  • The freedom to redistribute copies so you can help your neighbor (freedom 2).
  • The freedom to distribute copies of your modified versions to others (freedom 3). By doing this you can give the whole community a chance to benefit from your changes. Access to the source code is a precondition for this.

When it comes to the code its self, Open Source and Free Software are very similar. Most Open Source licences are Free Software licenses and all Free Software licenses are Open source licenses. The differences is in the 4 freedoms that defines Free Software. Open Source does not give users freedom 0 (and partly 1), the right to run the program as you wish. You see this all the time on embedded devices that that are locked down or contain DRM to ensure only the manufacturers copy runs. You still have access to the code but you lose access to all the proprietary parts that would allow it to work in the first place and in some cases there are restrictions on the hardware preventing the use of modified copies of the source code.

That is the main difference. Code can be both Open Source and Free Software, but when you talk about Open Source its very much about the code/development, and Free Software is more a social movement ensuring the protection of user freedoms in how they run there computer and software.

Bit more reading if your interested:

It's worth saying. You've seen the problem of trying to go fully free/open, but there's nothing wrong with using hardware with blobs if there is no reasonable free(libre) option. So for example motherboards with no reasonable alternative like coreboot/libreboot. you can get laptops that are _almost_ completely free of binary blobs, and certainly at the OS level. 

Even if you can't run a completely free system, you can still advocate for open/libre systems, the more people that say the want it the more likely it is to happen.

Even if you can't run a completely free system, you can still advocate for open/libre systems, the more people that say the want it the more likely it is to happen.

Thats a good way to think about it. Makes me feel a little better inside.

So do you guys feel like open-source and free software movements are growing in terms of popularity and progress? Are these types of ideals and projects making progress in the industry? Are free and open source systems and solutions becoming more commonplace in the business/enterprise fields? 

I am soaking all of this in. I think I want to steer towards a career on this subject instead of just being a dime a dozen sysadmin or something.

My feeling is that Free and Open source´s influence on the technological field is constantly increasing. Free/Open OSs and software are already dominating in most computing areas. almost all major innovations are accomplished in the FOSS side of things. Many things that actually have great influence on the field as a whole rely on Free software.  The only place that this dominance has not happened yet is the desktop platform (it is getting there though) which is the most easily identifiable by most people and this gives the idea that FOSS is not that widely use and that is truly false.


In industry things are quite complicated. Traditional cooperations are ultimately powerful but their business model does not allow them to develop and innovate with the same way FOSS products can and thus they seem to be mostly trying to milk what they already have, halting progress (buying out competition or gaining profits by exploiting copyright law) and on the same time leading themselves to a dead-end because they now have to begin competing with the FOSS development model. And a big cooperation is such a complex and monolithic organization that after a while its virtually impossible to change your development/business model.  More newer companies with a much less traditional structure and models or SMEs on the other hand are much more favourable to the development/adoption of FOSS and many have largely adopted a business model that does not monetize the actual product, thus allowing it to be Free and monetize the services and support around it. And can be amazingly sustainable and profitable. Of course cooperations are still cooperations. The need to make a profit is far more important than anything else. Most of the times there is no or little idealogical reason behind the adoption or development of FOSS and many might not hesitate to violate the values that these movements adhere to if it serves profitability. And this is where the distinction between Free and Open can become important. Good thing that the community has also proven that for-profit business is not the only way to produce influential and useful technology out there. 


Generally besides the important practical viewpoint of seeing FOSS the social and cultural changes that Free software brings as a movement is even more influential.