Building my new Computer, Part 2a: The Operating System War of 2016

Hardware assembly was easy peasy, but the quest to install an operating system devolved into two days of furrowed brows and steam belching from my ears. I agree this sounds a bit like a horror story, and the point of this series is to entice you to build your own computer. But it’s also my goal to document the whole process, so I can’t just not say a word abut something that went less smooth than expected.

Also, a disclaimer up front: this was a fairly Linux-specific problem. While I’ll happily bash Windows every time of day, this would have been an embarrassingly trivial affair. I’ll post the procedure for a Microsoft OS below.

Overview And Primer

Before we jump into everything that didn’t work as expected, let me bring you up to date on the general situation. The old computer let me boot into two operating systems: A literally unused installation of Windows 7 (that I kept as a fall-back in case I really needed to use Windows) and Linux Mint 17 (Official site, Linux Mint at Distrowatch.com, Wikipedia), a very beginner-friendly distribution. Since I never used Windows anyway, and grew a bit annoyed with some parts of Mint’s philosophy, I planned to ditch Windows and try a new distribution. For several reasons, my choice was Manjaro Linux 16.06 (Official site, Manjaro at Distrowatch.com, Wikipedia).

A short aside on Linux and distributions

There isn’t one OS called Linux – rather, Linux is just the operating system kernel. To make it into a full-fledged operating system, it gets bundled as a big system of software packages to provide all the functions we expect from an OS, from managing files on hard drives to providing a graphical user interface. Such a set of bundled packages is called a Linux distribution, and there are a whole lot of them.

Anyway, the usual procedure of installing Linux is to download the installer image from the distribution’s official website, burn it onto a DVD, or put it on a bootable USB stick. You then insert it/plug it in, and let the computer boot from it. It will load a fully functional version of the distribution (without installing! It’s perfect for trying out risk free.) that you can use, or choose to start the installation process from.

Getting This Damn Thing To Install

After assembling all the hardware, we plugged in monitor/keyboard/mouse, and switched it on. At this point, all the computer can load is the mainboard’s onboard control software, the BIOS. It’s usually wise to check if the bare computer will boot to BIOS, because if it doesn’t, there’s problems to solve before you go on installing things. (Could be defective hardware, not having plugged in something important, RAM modules in the wrong slots, etc.) BIOS loaded without a hitch, though, so on to the next step we go.

We put in the Manjaro USB stick, tried booting, and it froze along the way. Booo, this is not how it’s supposed to work! Several fruitless attempts later, I tried booting my old Mint 17 DVD. That worked and also displayed a warning message that Mint could not recognise my graphics card and would run without graphical acceleration. A light bulb went off! Support for hardware is dependent on the Linux kernel (new versions add support for new hardware) and in some cases, like nVIDIA graphics cards, manufacturer-supplied drivers. My graphics card is fairly new, so it’s no surprise old Mint 17 doesn’t know it. But maybe the nVIDIA drivers on the Manjaro image weren’t new enough either. Since we were running Mint 17 from the DVD at this point, we used it to connect to the internet and looked it up. Sure as hell, the included drivers were one release too old for all the new graphics cards.

A short aside on installing software on Linux

If you’re used to Windows, installing something means you download an installer, doubleclick it, and then you have the new software available. If the program can check for updates on its own, good for you, because if not, it’s your job staying on top of new versions. While this way is technically possible in Linux*, the preferred method is to use the system’s package manager and repositories. Think of them as a big catalogue of available software, a download place for this software provided by the distribution maintainer, and a program that allows you to browse this catalogue and install programs plus all the additional software it requires.

The big upside: The distribution maintainer tests new versions of each program for compatibility before making it available in the repositories. If you installed a program via your package manager, it will periodically check for updated versions and you get updates for all your programs alongside updates for your operating system. (Seriously, this is just the best.)

The big downside: For this level of maintenance comfort, you’re largely dependent on what the maintainers make available in the repositories. Philosophies differ, and some distributions push updates only after extensive stability testing, while others aim for providing the newest versions as fast as possible. (And occasionally, you get something new that doesn’t play nice with older versions of something else and then you get to run and try to fix things.)

Kinda stupid solution: Well, if it’s the graphics card, let’s try this with the CPU’s onboard graphics. We removed the graphics card, plugged the monitor into one of the mainboard’s connectors and tried again. Ha, it worked! A few minutes later, the computer was running a fresh installation of Manjaro. Success! Or so I thought.

Doing This Graphics Card Thing Smarter

Because some time in the future, I’ll have to install the nVIDIA drivers for my new graphics card anyway, I figured why not use my old graphics card until then? It uses the nVIDIA drivers as well, and that way, I’ll easily know when the new version hits and have faster graphics than the CPU onboard stuff. Easy right? Theoretically, yes. I tried for the rest of the night (until ~6am) to get this to work with no avail. That’s why the previous solution was kinda stupid: Had I thought of using the old graphics card sooner, I’d have installed Manjaro with it already plugged in and let the installer sort out which drivers to install. This way meant to tell the OS to also make these drivers available, for hardware that isn’t yet plugged in, and make it recognise it on the next reboot.

The next day, I tackled it anew, and finally got it to work. (As usual, it was easy once I figured out which detail in the whole process I got wrong.)

Warming Up With The New Distribution

One reason why I wanted to try Manjaro was that they bundle a desktop environment (the software bundle that provides most of the graphical user interface – there are many of these for Linux) called KDE Plasma, that has been looking pretty damn spiff in its newest versions.