Forays into Linux – Part 1 (of many, hopefully)


My forays into Linux haven’t been with tremendous success. I previously ran Linux on my laptop in college in 2009 and discovered several nasty things that prevented me from actually making use of it – namely, the lack of driver support in the kernel for my network card and no hardware support for my GPU, which at the time was a VIA Chrome S3 built into the chipset. I later shrugged it off and soldiered on to Windows 7, though I have always dabbled in running a Linux distribution from time to time. However, the times are a-changin’, and Bob Dylan warned that the rug could be pulled out from under your feet at any moment.

This is my Terminal, this is my gun…

A bit of background is needed before I begin, I suppose. My Linux training is actually formal, though I haven’t had to use it in over two years professionally. In college we had a semester dedicated to learning Linux and grokking the fundamentals, but we were learning on Fedora 5 through a virtual machine – not easy, I can assure you. The textbooks were also outdated, referencing commands and techniques used in Fedora 3.

During my class I got frustrated with both the course material and the lecturer and ditched Fedora and Virtual PC 2007. I swapped in VirtualBox and used Ubuntu instead. The concepts of what I was learning in the textbook translated well enough for me to figure out what to do in Ubuntu. In fact, I ended up being ahead of the rest of the class because I wasn’t trying to figure out Fedora’s package manager, or how to install software from the command line, or how to get the graphical environment working so that Fedora could boot inside Virtual PC (hint: it requires enabling legacy drivers, then you have to run a command that sets the resolution to 800 x 600). I even had Aptitude installed to save time when configuring Samba, or turning my machine into a proxy server (thereby also allowing everyone in the class to bypass the college’s firewall and browse wherever we wanted). I learned early on that the benefit of running Linux was that it was supremely powerful. Nothing that I had learned or accomplished with Server 2003 was anything like what I could to with Ubuntu.


Over the years, I dabbled here and there with some things. I managed a proxy server at one of my previous work places. I fixed a couple of mail servers for various companies. I even fixed a Macbook through terminal commands because a lot of what you learn from Linux can be ported to Mac OS X, which is based on BSD. But despite years of tinkering here and there, I never switched over myself. I was always stuck in a Windows world.

So, when my Windows 10 install died a few weeks ago, I resolved to reformat the drive and use Linux instead, the Ubuntu 14.04 LTS (Utopic Unicorn). Since then, I’ve danced about with how I’ve set up things and what follows is both the good and the bad parts of my switch to Linux and what I learned in the course of my trials.

Getting up and running was really easy

I had expected issues with my hardware because I’m using a MSI 970 Gaming motherboard with an Athlon X3 processor and a Radeon R7 265. Knowing that Intel is the preferred vendor for Linux, I chose to first boot into a live environment on USB to test things out. Live environments are great for doing hardware tests before running an install, because you can always check first for incompatibilities before spending hours trying to figure out why your install won’t work properly. All of my hardware was detected properly and I chose to start the install right away.

If you’re an IT guy like me, you might also want to check up on how to configure a Live environment for persistence, so you basically have Linux installed to a USB drive and boot off it on any machine you want. It is really handy for troubleshooting computers on the go and Microsoft chose to mimic this functionality with Windows To Go.

aptitude browser window
Aptitude basically lists everything available in the Apt repository and even gives you a list of Tasks, which allow you to install a bunch of things with a single button press, rather than have to type out everything manually in the terminal instead.

So I started off when the install was done. Install Aptitude? Check. Install Samba? Check. Install Steam? Check. Things were going pretty well so far and I installed a bunch of different packages, including Mumble and Audacity, to get going. I hit a snag with sharing files on a NTFS drive with Samba, though. I discovered later that even though Ubuntu includes the software to interact with NTFS file systems properly, the permissions weren’t being transferred to me. I couldn’t delete or rename anything. After about an hour I figured out how to get Samba shares working with the correct permissions given to network users and I cursed the Samba documentation on the Ubuntu wiki because it is outdated. I still haven’t created an account there to perform an edit and correct this.

Everything else, software-wise, was going well. I still had my regular browsers and Chromium is way easier to install and use in Linux. My workflow changed a bit because I no longer had Adobe Photoshop Express and while Shotwell is a nice picture manager, it doesn’t have GPU acceleration, so everything feels a lot less fluid. GIMP still works as expected, but the way Unity put all the menu options on the top system bar is, frankly, idiotic. I changed that as soon as it began to annoy me.

Then things went a little awry. In installing Steam, I forgot to install drivers for my graphics card. AMD’s cards aren’t yet supported as well as they should be in the Linux kernel, so you have to download either the open-source Gallium drivers to make things work, or the closed-source fglrx drivers from AMD. Being the idiot that I sometimes am, I didn’t install these from the Software Updates window in Ubuntu, I instead went to AMD and downloaded all the files manually.

Always use the fglrx-updates package from AMD because it’s the most stable. If you’re using a Nvidia GPU, your driver support is way less of a pain in the neck.

AMD doesn’t tell you how to install them either, but you need to open the terminal and chain all the .deb files to install at the same time. It worked, but I’m not going to go through all that work again just to get the graphics drivers installed. There are far easier ways to do that.

Gaming on Linux… Eish!

Installing Portal was a cinch. I had made a backup of it previously on my Windows machine, so it was just a matter of opening Steam, starting a restore and using the data from the Windows backup. Surprisingly, only 100MB of new data needed to be downloaded after that, which shows how closely related the versions are between the operating systems.

Performance, however, was another thing entirely. If you’re a regular reader of Phoronix then you’ll be familiar with this, but if you’re not, just know that AMD’s driver support for their GCN cards under Linux has been abysmal. When you see a GTX 560 Ti beat down a Radeon R9 290 in Team Fortress 2 benchmarks, you know that something is wrong. AMD to their credit has been making progress in this area, but they’re not moving nearly fast enough. Portal was unplayable thanks to stutters and I had some mouse acceleration issues which I couldn’t solve at the time (and didn’t know how to). Bastion was seemingly running fine, so I wonder how much of the problem was really AMD’s fault.

The show-stopping bug always needs to be there, though, and I found it sure enough. There’s a problem with the kernel support for USB 3.0 ports that aren’t natively integrated in Intel’s chipsets (so, pretty much almost every third-party solution in existence). It affects USB 3.0 ports based on VIA hardware as well as others from Broadcom and even Realtek. The issue also exists upstream in the latest testing kernels, so not even Linux 4.0 will fix it. There’s likely to be a fix in 4.1 or possibly 4.2 if it doesn’t get in before the deadline for kernel integration, so I’ll just have to live with the fact that my USB 3.0 ports don’t work under Linux for now. Maybe this gets fixed within a year, maybe not.

If I was using a semi-recent Intel platform with USB 3.0, it would be fine. Aside from this issue in particular, all of my hardware was functional. There were other things in software that annoyed me, though. Continuous Scrolling in Chromium doesn’t work for me, even though the browser clearly says that it is enabled. I got Netflix to work in Chrome, but not Firefox, because Firefox doesn’t implement its own version of flash internally (and installing Flash on Linux is a pain and should never be done). The Unity launcher also has its flaws – to rearrange icons you have to drag them out of the dock and then move them. It seems like you also can’t click on an icon to minimise it. Maybe I’ll play around with the Unity Tweak Tool and see how that works.


Overall, my Linux experience out of the box was more than positive – I actually had enough good things to appreciate that I wasn’t yearning for Windows immediately. Some of the issues are difficult, if not impossible to solve on my own, which includes crappy driver optimisation from AMD.

There are things that I really like already, like the ability to customise or change nearly anything I want, or the integration of a chat client into Ubuntu itself, or the software center. I like the fact that I can run quite a lot of games through Steam natively, with WINE as an additional resource for those that don’t have ports ready. I also like the fact that my workflow isn’t affected at all, really, I just end up using different applications to do the same job.

Honestly, I could give up using Windows exclusively in lieu of Linux. I’d like to claim that I continued to use Ubuntu since the day Windows 10 crashed, but I didn’t. I’m currently dual-booting with Windows 8.1 and Ubuntu 14.10 and I may revert to 14.04 again because of some bugs in the audio that drop the volume very low. I’m just not on the right kind of platform to be able to enjoy using Linux as much as I hope, but that isn’t going to stop me from tinkering.

The journey will continue in part 2…