gmgauthier.com/content/post/a-linux-update.md
2022-06-26 17:18:23 +01:00

27 KiB

title date tags topics image description draft
A Linux Update 2022-06-25T20:43:12+01:00
linux
software
operating systems
computing
technology
img/linux-update-banner.jpg Six months without Mac or Windows! false

Back in November, I made a blog post explaining that I would be moving to a linux-only "lifestyle", as it were, for both liesure and independent creative work in my personal life (though, for my "official" job, I am yet chained to a Mac laptop). It's been a little over six months now, and so I figure it's time for an update.

While I am indeed now 100% linux on both my desktop and my laptop, I have diverged quite a bit from the plan of my original post. Sometimes, out of necessity, and sometimes because of interesting discoveries that have made life quite a bit more entertaining on linux than I thought it would be at first. I'll break down the main differences here, and discuss them as we proceed.

Hardware

The Machines

First on the menu, is the selection of hardware. Originally, I had dollar-signs in my eyes. I was going to start fresh on a brand new Dell XPS 8940, with all the trimmings. That turned out to be a non-starter. I had nothing but trouble with the Dell ordering system, and when I decided to back out of the repeatedly postponed fulfillment of my order, they tried to upsell me.

Given that experience, I took a step back and looked at some slightly older hardware, and did a bit more research on linux user experiences with various computers. In the end, I settled on a Lenovo P330 tower unit (with a modest set of upgrades), and a Lenovo T460 laptop to replace the old Macbook Pro. Both of these choices were extremely satisfying. I was able to disable all the windows "protection" junk in the BIOS of both machines, and there are drivers-a-plenty for the peripherals used by Lenovo. All tolled, after a memory upgrade, a power supply upgrade, a used NVidia GPU, a Drop ENTR keyboard, and a matching Lenovo 1440p display, I still managed to keep the price of the desktop to £1,050, and managed to snag the T460 on ebay for £450. So, the entire hardware replacement budget came to a mere £1,500. That's about £250 less than the Dell XPS was going to cost me all by itself.

I haven't really had to sacrifice any performance for the "downgrade" either. While the Macbook Pro had a quad-core (8 thread), I had constant problems with it overheating when using things like Audacity or iMovie. The P330 has an Intel i7-9700 with 8 cores (non-threaded), running at 3GHZ. Plus, it (now) has 32GB of DDR4 (2667). Though the T460 Laptop is significantly less well endowed, it's still relatively competitive with the Macbook I had. It's got an i5 with 4 cores (non-threaded) and 16GB of ram, but can match the performance of the old Macbook (even after having the Macbook serviced). So, I don't feel like I lost anything in the trade-off from the 2015 Macbook, to the the Lenovos.

Reality Check

However, I have to offer a few caveats. First, the relationship between NVidia and the Linux community has not been very good, I've discovered. The proprietary driver set they've offered up to now has been very buggy, and often lacked many of the essential features that made the video platform useful on Windows. Recent events have somewhat improved the prospects, but I have to admit my experience with Nvidia on linux has been a difficult one (I'll discuss this in more detail in the OS section).

Second, it turns out that the linux community hasn't advanced much in terms of stability in the realm of support for various sound devices. I'll explain this more in detail in the OS section, but essentially, you have three different audio layer "standards" that have formed, with three separate zealous communities defending them: Pulse, ALSA, and OSS. But rather than collaborating, these three communities seem to be competing with each other for the affections of the user community. As a result, none of the three work all that well when they have to work together, and they frequently have to work together.

Third, the third-party hardware market is a disaster. Separate from the original purchase price, I have been shopping around for a PCIxe expansion card with additional USB ports on it (I am attaching loads of things to this desktop). I've been through three of them, and all of them have various problems. One won't allow me to use the type-C ports if I'm using the type-3 ports. One seems to block all motherboard hosted ports, the minute I plug anything into it. The third seems to be causing interrupt problems. So, sometimes it works, and sometimes it doesn't. This isn't explicitly a Linux problem, but let's be honest: if I was sticking with Mac or Windows, I'd have just gotten some click-and-forget prepackaged system that didn't need a lot of nerd love in the first place.

Finally, I have to admit, it took me several months of re-conditioning to get used to the erasure-head mouse on the Lenovo. Ever since the old IBM Thinkpad days, I've been intimidated by that thing, and found it hard to use. However, having put my mind to it over the last six months (mainly, because the resolution on the Lenovo track pad is trash), I can say that I've actually come to prefer it. It keeps my fingers close to the keys (less travel to manipulate the mouse), and I can get a much finer-grained response from it than from the trackpad.

All that said, these machines have been rock solid over the last six months. I've never once seen them fail, overheat, hard-reboot, or freeze (for hardware reasons). What's more, the desktop turns out to be still under warranty for another year, and Lenovo is providing firmware and BIOS updates that are compatible with Linux.

Operating Systems

The Desktop

Debian 11 (bullseye), Linux Kernel 5.10.0-15

{{< fluid_imgs "pure-u-1-1|img/desktop-front-view.jpg" >}}

{{< fluid_imgs "pure-u-1-3|img/desktop-cpu.png" "pure-u-1-3|img/desktop-gpu.png" "pure-u-1-3|img/desktop-system.png" >}}

I had an extensive list of Linux OS distributions I wanted to try out when this experiment first began, but I ultimately settled on two: Debian 11, and Pop!_OS 21.10. I put Pop!_OS on both machines to begin with. Mainly, because I was impressed with the development work being done by System76, and liked a lot of the changes they had planned for the OS in the coming year. However, I ended up backing it off of the desktop machine because after an update at the end of May, it failed hard. When I tried to re-install from a USB key, the newer version (22.04) refused to even boot. So, I opted to give Debian 11 a second look for the desktop, and I was not disappointed. With the right tweaks to Gnome, it has basically the same functional conveniences as Pop, and is more "GNU", to boot. The original Pop installation lasted just over 5 months. The current Debian install was done on June 9. We'll see how long that lasts.

The Laptop

Pop_OS! 22.04 LTS, Linux Kernel 5.17.5

{{< fluid_imgs "pure-u-1-1|img/laptop-front-view.jpg" >}}

{{< fluid_imgs "pure-u-1-3|img/laptop-cpu.png" "pure-u-1-3|img/laptop-gpu.png" "pure-u-1-3|img/laptop-system.png" >}}

As for the laptop, I've stuck with Pop!_OS. The reason for this, is that Pop is a lot like Ubuntu, in that it mixes both the open source os, and proprietary firmware and hardware driver repositories, in its installation media, to enable a clean installation on laptops. In other words, Pop makes it possible to be Debian-ish, and yet also for all of your laptop hardware to be supported right out of the box: wifi, bluetooth, audio, video, camera, mic, mouse, etc. Overall, I do still somewhat prefer the aesthetic that System76 is going for with their fork of Gnome, and having the laptop run their OS makes it possible for me to keep up on what they're doing. I upgraded it from 21.10 to 22.04 on April 2nd, and have not had any issues with it so far.

Additional Notes

Installation

Putting Linux onto these machines was a fairly straightforward process, for anyone who's somewhat familiar with computers. It was just a matter of booting into the BIOS on each machine, disabling the windows features, setting a USB port to be the first boot device, and then rebooting to a USB key with the OS flashed to the key. Debian-like distros all have a fairly similar installation process. Provide some basic hardware profiling information, a disk layout, a primary user, and a software stack selection, and away you go. Pop actually just sets a default software stack for you, by default. But once that's done, the machines are essentially ready to go. Though, the laptop requires a little bit of additional setup to get on the wifi network and pair with bluetooth devices.

Peripheral Support

One of the biggest fears when moving to Linux, is whether or not all your stuff is going to work. On that front, Linux has made enormous strides forward over the last decade. While the peripherals I have are not the bleeding-edge, Some of them are a bit "edgy". For example, all of the following items worked out-of-the-box, without my having to do anything to get them working, on either Debian or Pop!_OS:

  • M-Audio Keystation 61 (MK3) 61 Key MIDI Keyboard
  • SDRPlay RSPdx Software Defined Radio
  • Apple Trackpad (seriously, still the best trackpad on the market)
  • Kindle Fire 8, Kindle Paperwhite (both charging and file transfer)
  • Logitech C920 720p Webcam
  • (on the laptop) Bose QuietComfort 2 Bluetooth Headset
  • Audio-Technica AT-2020 Podcast Mic

What's more, the Lenovo P330 comes with an old-school 9-pin serial connector. So, in theory, I could attach an ancient serial terminal to this thing and Linux would probably support that too!

There will be more to say about the MIDI keyboard (and audio support in general) later, in the software section. But overall, I've found the hardware support provided by Linux to easily cover any of the most common uses you'd expect from a Windows or Mac machine.

Maintenance

You will get varying advice on whether to enable auto-updates or not. I'm going to take the side of "don't do it". Some say that it insures you get the latest security patches and whatever, without having to be conscious of it all the time. But more often than not, auto-update has done nothing but reek havoc on my systems, whether those were Mac, Windows, or Linux. And the desktop was no exception. The last Pop!_OS update that broke my desktop, was an auto-update. Best to do a little reading first.

Software

Here is where the improvements in Linux over the last decade have really shown themselves. For the vast majority of computer users, the only reason to own a computer, is to get something done with it. It is a means to an end. An instrument, or tool, required to produce something else of value. While it's true that more sophisticated workmen can make due with bad tools, the bad tools will put a limit on how much good even the best workman can do. The same is true for computers. On linux, not only is the range and variety of tools better than Windows and Mac, in a few cases, I'm finding that even the quality of those tools is better than Windows and Mac.

Software Development

Take the range of development tools, for example. This may seem like an obvious place to begin, but seriously, there really is no better place to be if you're a developer. Every major commercial/"community" IDE has a port to linux that is actually better in some ways than it's Windows and Mac cousins, primarily because of the availability of underlying affinity with the GNU toolset (the GCC, the library bindings, the debugging features, the logging, GIT, and on and on). And you sacrifice none of the conveniences of a code-sensing GUI, if you don't want to. Here's this blog, opened in Intellij Webstorm:

{{< fluid_imgs "pure-u-1-1|img/webstorm-ide.png" >}}

For those of you more firmly commited to the open source ethos, Jetbrains is not the only option. Indeed, there are dozens of other options. My two favorites are Geany and Builder. But there are also several well known terminal based editors (VIM, and EMACS being the kings). For something more hard-core, there's SASM. For those of you looking to tinker with a tool for its own sake, there's Code Blocks.

In addition to this, there are hundreds, and hundreds of both gui and command-line tools available on linux, that don't exist anywhere else (apart from an impressive subset ported to Mac via Homebrew). Listing them would take an entire series of blog posts, all by itself.

Productivity

But what about the more mundane chores? Things like your usual readin', writin', 'rithmetic, and collaboration with coworkers? Can Linux do that? Well, I am presently enrolled in a masters program at Birkbeck in London, and in the last six months I've written three separate exam essays, done research, read books, listened to lectures, taken notes, attended discussions, and even given a talk. All via a linux machine. To do all this, I've used:

  • MarkText, Tilde and Gnome Notes - for writing, and note-taking (more on this in a moment).
  • LibreOffice Writer - for packaging my writing as a Word Document for submissions.
  • LibreOffice Impress - for reading instructor classroom slides, and for giving my own presentations.
  • LibreOffice Calc - for tracking class assignments, and grades
  • GIMP and Pixelorama - for editing/creating graphics for presentations or demonstrations.
  • Min and Brave - for research (via SEP, Gutenberg, and JSTOR), collaboration with other students (via the uni web/moodle), and reading books (via the Kindle web reader).
  • Gnome Dictionary - for general reference
  • LBRY, youtube-dl, and MPV - for viewing video lectures and documentaries (outside of uni).
  • Zoom and MS Teams (Web) - for attending classes, work meetings, and other real time collaborations.
  • khal for maintaining a todo/event calendar
  • Mutt and ProtonMail (Web) - for email communications
  • Signal (both GUI and Terminal) - for direct communications

That list is pretty extensive, but it is not exhaustive. There are dozens of other options besides the applications I've mentioned here. With regard to the two web apps mentioned, I would be using them as web apps on other platforms as well. In their cases, I actually don't want to use a desktop app -- and, the research tasks would also be happening on the web on other platforms, obviously. The web is the only way to access JSTOR and SEP.

Where Linux did fall flat, is in the realm of academic reference management. On Windows, there are several tools for collecting, collating, and reformatting academic references, and then plugging those automatically into a Word document, as footnotes, end-notes, and/or a bibliography. While there are one or two options on linux (one of them being a bad port), they're all substandard and not worth the effort to learn. It's faster just to type the references.

{{< fluid_imgs "pure-u-1-3|img/example-marktext.png" "pure-u-1-3|img/example-LBRY.png" "pure-u-1-3|img/example-impress.png" "pure-u-2-4|img/example-writer.png" >}}

Creativity

Then, there are the creative pursuits. Art, music, literature, videos, and so forth. Here, Linux did way better than I had expected it to. I've spent most of my career working on variations of Debian and Red Hat in server form. So, I was roughly aware of what it could do, from a "command-line" perspective. Text editing and calculating are no-brainers on all computers. If you can't do that, you don't have much of anything. But being able to use Linux to do things like record podcasts, edit and publish videos, and generate quality graphics, is something that one only expects from equipment that is directed at creatives. Which is why Apple had such a reputation in the mid-2Ks.

Again, accomplishing these tasks turned out not to be too much of a headache. To be completely honest, my use-case is extremely light-weight in most of these areas. I don't lead a band or an orchestra. I don't run a film studio. I'm not a graphic artist. But I ocassionally have need of some of the tools that these folks need, because I do publish my own podcast, ocassionally write music (for myself, really), and more frequently recently, make videos. To do that, I found myself preferring the following apps:

  • Audacity and ffmpeg with command-line options - For recording/editing audio for podcasts and other reasons.
  • OBS Studio and Shotcut - for recording/editing video, both on-screen, and on camera.
  • MuseScore and Ardour - for capturing/writing music via my MIDI keyboard.
  • GIMP and Pixelorama - for graphics and pixel art (the banner on this blog post, for example, was produced with GIMP).

Of course, some of these will be controversial options for some of you, who are more heavily invested in the open-source/privacy ethos. But my point with this post (and the previous one), is to show only that Linux is a functional substitute for those interested in leaving Windows or Mac. Not that it is a purified replacement for the legal regime under which those platforms operate.

Finally, with the MIDI applications, I've spent many hours over the last six months struggling with getting sound out of the applications, and to the places I want it to go (whether headphones, or speakers, or recording apps). This is (as I mentioned above), there is so much churn and competition between the underlying soundsystem layers fighting for dominance, that applications are never quite sure what to support, or how to support it. MuseScore and Ardour were my choices, mainly because they struck the best compromise, and allowed me to get at least something to work. Though, I will put in an honorable mention here for CSoundQT, which I think has incredible promise as a MIDI development platform.

{{< fluid_imgs "pure-u-1-3|img/example-audacity.png" "pure-u-1-3|img/example-shotcut.png" "pure-u-1-3|img/example-csoundqt.png" "pure-u-2-2|img/example-ardour.png" >}}

Hobbies

Apart from creative pursuits like podcasting or videos, I also have another technical hobby. I used to be an active HAM radio enthusiast. My callsign (though, now expired), was KB9ZYW. These days, however, I mostly spend my time listening to others operating, or searching for inexplicable signals. To that end, I have been using an app called SDR++ to control one of the recent products released by SDRPlay, called the RSPdx. I use this in conjunction with another app, called fldigi to decode digital transmissions like RTTY, Morse Code, or other increasingly popular digital modes that fall under the umbrella of "frequency shift keying". Here I am, recording morse from an infamous "numbers station". This one is extremely rare, because they usually do this with synthesized voice, and usually all numbers (hence the label "numbers station"). But this one is using sets of alphanumerics in various patterns. Note that I'm using OBS-Studio to record this!

{{<odysee "6825khz-numbers-station-on-cw" >}}

Liesure

Finally, we come to the kick-off-your-shoes-and-relax part of the review.

I don't really have a lot of "entertainment" favorites. I can probably count on one hand, the number of TV shows I've watched since 2003. But, once in a while I like to tune in to some old favorites. Among them, Mystery Science Theater 3000, and the follow-on "Rifftrax" program, which was originally released as a private internet / DVD thing. After that, I occasionally look at one of the many content creators who post on LBRY (often, cross-posting from YouTube). These are the apps for that:

  • Hypnotix - Note: to really get use out of this, you'll have to go fishin on the internet for one of the many sites storing the Pluto TV M3U files (which contain the streaming urls for all the free tv channels around the world).
  • LBRY -- I mentioned this once before, as a productivity tool, but given how much variety and diversity is available here, it's also useful as a casual viewing platform replacement for YouTube.

After that, what do you do for music or podcasts? Well, I settled on three terminal applications:

  • Castero - this is a nice Python-based ncurses TUI, providing a really clean interface for adding, queuing, and listening to podcasts.

  • VLC Player - I've never been a huge fan of VLC as a GUI application. I've always found it ugly and bloated. However, VLC on the console is perfect. Just point it at your music library, and away it goes. It has tons of useful keybindings. If you prefer a GUI application, then I would suggest Rhythmbox, which offers a lot of the same functionality as VLC's terminal player, and a lot more.

  • GoStations - and finally, my very own GO application. This is a dirt-simple terminal application that uses a public domain database of streaming internet radio stations, to provide a selectable list based on search criteria provided on the command line.

Last, and for me probably least (because I'm just not a big gaming guy), is games. What would a computing experience be, without video games? But what do you do, when you don't really like any of the games on Steam (and, to be sure, there is a linux port of Steam, and verified ports of about half the games on steam). Well, it'll have to be Lutris, which gives you a platform from which you can launch and run in emulation, just about every 8, 16, and 32 bit gaming platform you can imagine. For me, the go-to would definitely be 8-Bit Atari 800 games. But your mileage may vary.

Oh, also: I was able to find some cheap XBOX-like joysticks that connect via USB, and seem to work just fine on the Atari 800 emulator!

{{< fluid_imgs "pure-u-1-2|img/example-vlc.png" "pure-u-1-2|img/example-castero.png" "pure-u-1-2|img/example-hypnotix.png" "pure-u-1-2|img/example-donkey-kong.png" >}}

Conclusion

I have a confession to make. When I first started this project, I purchased a Windows 10 license, and put it in a Virtualbox image. The thinking was that I was probably going to run into something I'd forgotten about, for which I'd need either a Mac or a Windows machine. In years past that was always the case, because inevitably there was some application for which Linux was not quite ready yet. Before 2010, for example, HAM radio rig control software was basically only available on Windows (and, to be sure, Windows still dominates that space). In addition, I was initially lamenting the thought of losing iMovie (out of which, which I got a lot of use on the Macbook).

But I can admit now that within a month or two, I was completely beyond all worry. Everything I was doing on my Macbook, or needed Windows for in decades past, I can now do -- and do comfortably -- on Linux. There are open source or commercial products available on the platform for just about anything you'd need, as someone who is slightly beyond power-user, but not quite "professional", in any number of different endeavors or activities. In other words, as far as I'm concerned, parity has been achieved.

Of course, no platform is perfect, whether at the level of hardware, firmware, OS, or applications. All three primary platforms are prone to bugs and glitches at times. But -- apart from the weirdness around Nvidia proprietary drivers, and the hodge-podge chaos of the audio/midi layer -- I would say that you're going to find Linux roughly equivalent in its imperfections, to any other platform.

But what you will also find, is that it will enable you to work in ways you may not have imagined before. There is so much variety and flexibility on Linux, it's almost overwhelming. With a little skill in scripting, it becomes even more powerful. I have an entire library of short convenience scripts now, written in bash, golang, and python, that would be useless to me on Windows or Mac. What's more, is the fact that privacy and security are an intense focus in the Linux world. So, not only can you do everything you did on Mac or Windows, but you can do it without being tracked, traced, or monetized, and you can do it without worry about violating anyone's EULA or terms of service. The only limit, is the GPL or MIT license associated with your applications, and even that is fairly flexible.

I used to scoff at the advocates who urged "switching to linux", mainly because I was (rightly, at the time) convinced that Linux was not ready-for-prime-time. I am now coming round to their point of view. However, I do have a worry about this.

Microsoft has been making significant moves towards Linux in the past 5 years. Major commercial vendors have always been involved in Linux. But it's typically been limited to datacenter and backoffice applications. As they start to shift toward retail consumer, and semi-professional product offerings (the way Adobe and Microsoft now do on Mac and Windows), how long is it going to be, before Linux is transformed into the monetization hellscape, similar to that of Mac and Windows (or the mobile space) now? I hope that never happens. Because right now, it seems like being a Linux user is the best of both worlds: high quality and variety, and low intrusion.

Inevitably, as commercial interests start moving into the space, homogeneity, and exploitability, will be the general direction things move in. Doubt me? Just look at computing hardware over the last 30 years, or the movie-making industry over the last 50 years.

This raises all kinds of questions about the nature of the free market, the forces at work within it, and the tendency of mankind to drift too far from the golden mean, and lose what was valuable in any given circumstance. But that's a blog post for another time.

For now, suffice to say: I'm a Linux user.