As the year 2021 looms upon us it seems that there's hope, just like every year - for GNU Hurd 1.0, for Mac gaming, Windows server and Linux desktop. Desktop, though, is easy mode nowadays, as Canonical really did the hard work of including non-free firmware and other ugly binary blobs and things mostly work. Laptops, however, continue to be another story, only giving way to the SoC-based concoctions running Linux Kernel 2.6.36 because that particular crappy SoC vendor wrote the code back in 2013 and thus you must suffer the hilariously outdated software that runs your freshly shipped (and probably rather exploitable) WiFi router.

That aside, there's good news for a fellow penguin lover, because after almost 30 years of penguins crawling through everyone's screens and the majority of the internet running on one gitty Finns' hobby project, some of the less crappy vendors have actually started providing laptops that just might run Linux in 2021 - making them Linux certified. Lenovo stands out for me as one of the best vendors if you want something that, yes, can run that exotic piece of software.

What do you mean there used to be more than 3 viable operating systems in the world?

In any case, Thinkpads are mostly Linux certified* (*if you run two flavours of Linux either known for being produced by corporate begemoth that is only marginally better than Oracle [and having a pwnie award winner on its' payroll] or introducing ads in your OS since 2012 - pick your poison). Yes, sure, Ubuntu is nice in the sense that most of the things actually kind of work because it goes to grab vendor drivers and other questionable binaries behind your back and you probably get Chromium with all the good binary blobs, but no, I actually have a long-running dream that 20xx is the year that Debian finally is the best desktop (laptop?) distribution in the world.

I got acquainted with Debian back in version 3, 2003, I think, it was the best distribution and probably is still, aside from the fact that its' legendary stability and functional completeness has perhaps, in my opinion, somewhat degraded (for example Docker in "buster" refused to work properly unless you reverted to iptables-legacy instead of nftables), but I digress; come, reader, and let's try to get Debian as our daily driver.

It all starts nicely enough. There are dozens of tools that can make your flash drive bootable and available as Linux installer. You marvel at the way we've gone from creating Linux boot floppies. The days of CD-ROM pretending to be a floppy with LILO are long gone: your 128GB flash disk pretends to be a very large optical storage now. Perhaps even a DVD-ROM, but still mounted under /media/cdrom. You choose a text-based install for the sake of old days and love of console. This part hasn't changed much. You proceed happily until it's time to set up your network. Consistent Network Device Naming (hardly consistent across computers) makes sure that enp0s31f6 doesn't roll off your tongue as softly or as easily as eth0 used to, but it is as good as any identifier to clearly indicate that Debian only takes your ethernet card as network interface. Where my non-aetheros wl0 at, bro?

Back in the day you would give up, take the twisted-pair cable that is always laying around somewhere and just plug it in to later on grab the Intel firmware from the non-free deb repo (or give up and install Ubuntu); but this time you come prepared, with all the possible firmware downloaded from the repository. You even have it on a separate flash drive.

"Insert media and press enter to continue" - installer helpfully prompts. You do that. You do that again. You remove original installation media, and insert the flash disk. You try renaming the directory the firmware resides on to "firmware". You try putting the firmware directory on the installation media, but ...

Remember that we moved a long way forward? That your installation media now emulates a large optical media?... Yeah, that means that we're on a read-only ISO 9660 filesystem, tough luck bub.

Debian gatekeeping (Gandalf at the Doors of Durin by Darrel Sweet)

It's easy to overlook the fact that Debian installer has had a log on tty6 or 7 since 2003 or so, and if you look closely enough, just before it shows a couple of hundreds of lines where exactly the installer could not find the missing firmware, you'll see mount cursing at some wrong options or a filesystem it doesn't actually like (it's vfat, if you're wondering).

Then, it's as easy as spawning a shell on tty2 or 3, and mounting your flash disk manually, oh, I don't know, under /mnt.

Just like Gandalf figuring out the "speak FRIEND" riddle, which would have been so much simpler if only Elvish had quotation marks, you slap yourself on the forehead. "Insert media!" - you curse at yourself - "of course, you have to insert it into the system!", and just like that firmware is finally found and you have a consistently named device wlp0s20f3 (or, as you used to know it in simpler times - wl0). It works! And just like in the halls of Moria, treasure awaits.

And just like fool-of-a-Took you screw up when configuring your cryptfs. You'd think that you're smart enough to remember that /boot should actually be unencrypted. You're wrong. You've assigned all available disk space to /. It's encrypted. You can not continue. You have no /boot. You can't delete encrypted / - partition editor says it's in use. Game over.

The only thing worse is the shame of coming back.

You are now in hour one of installing Debian on your newish Linux certified laptop. It does start to seem like a true Linux experience.

You are disappointed: everything just works later on. You don't even have to tweak xorg.conf, i915 drivers are good enough for Wayland to handle just fine. You just copy /home directory over, install the same packages as you had (exported using apt list --installed from your previous Debian laptop), and it's like you never left.

And then you remember the reason you chose Thinkpad. Back in the day you used to work on a T560 and it was so fun to scan your fingerprint in sudo prompts.

Does this work, too? You type in sudo. It prompts for password.

You still remember the invocation: apt-get install fprintd libpam-fprintd; It installs. It doesn't work.

Your eyes light up. Yes, finally, the Linux experience. You start googling: ah, yes, Lenovo recently released Linux-compatible firmware for the fingerprint device. Almost two years after product launch. Linux (foundation) has not been still in terms of firmware, you notice as you read up on fwupd.

Yes! fwupdmgr doesn't detect the upgradable firmware. People on forums say it's because fwupd is outdated. You check the version: of course, Debian is still consistently behind the versions available from vendor. You build fwupd from source, or, more appropriately, you attempt to. Apparently even C developers had enough of ./configure and automake magic. They use Meson now. Meson claims to be user-friendly. It isn't.

It has happened to me, for sure.

You're now in hour two of your Linux Laptop experience. You've just built fwupd from source. It doesn't detect the upgradable firmware. People on the forums say it's because you have to get the version just right. You wince. You are enjoying this.

You update your sources, you upgrade, you dist-upgrade. Twice. You are now using Debian Sid. Sid never changes. Sid's never been released. Your life is Sid now.

And, finally, your fwdupd is just the right version. It detects and upgrades your fingerprint sensor. While you're at it, you upgrade your old Logitech wireless unifying device.

Yet your fingerprints still can't be enrolled. There's no device, fprintd claims, oblivious to the output of lsusb. People on forums say you have to build fprintd from source.

It's hour three of your Linux Laptop experience.

You are not surprised to see that fprintd also uses Meson. It's good that you got kind of acquainted with it. The build fails. You have to have libfprint2. You try to build it from the source. Building master branch fails with compiler error; it hurts so good.

Purely by incident you find a compatible package in the experimental Debian repo. You can now build fprintd. You build and install it.

SystemD unit for fprintd fails to start for reasons unknown; you're now in fourth hour of your Linux Laptop experience. Completely at loss you apt purge fprintd and reinstall it. Much to your surprise, you can now enroll fingerprints. Sudo expects you to authenticate using fingerprint reader now, ant it works great.

Until you foolishly try to enroll the same finger in windows. That somehow breaks the enrolled fingerprint database. It doesn't matter: you can just use different fingers for different OSes.

You go to sleep completely satisfied and absolutely sure that Linux will definitely be the laptop OS in 2021.

Next week you buy an eGPU: two days later you are knee deep in xorg configs, the rendering only works in specific monitor layout and breaks if you change it (you work around this changing the physical monitor layout), sometimes you have to modprobe nvidia_drm manually to get xrandr to work correctly and it all runs at responsive 25 fps (60 fps if you only use one monitor).

You are the happiest man alive. Linux will surely remain your laptop OS for a long, long time. Because

"It’s the joy of a man in his element, a man and machine working in perfect synergy, where a man asks the machine to do exactly what he wants it to, and the machine doing exactly what it’s told; which is not necessarily always the same thing, but that’s part of the joyous feeling that not many understand" - Linas Klimaitis