Monday, 2 January 2017

Like changing religion, only harder, part 1.

I've used Debian or some derivative (UbuntuLinux Mint and even a brief stint with Corel Linux) as my primary desktop OS at home for around 16 years. Ok, I'll admit there was a brief period when I used Mandrake, before it was Mandriva and long before OpenMandriva. I also used OpenSUSE for a good few months, until RPM reminded me just how much I hate it.

Sure, I reboot to "that other OS" to game and sometimes dev (though that's mainly on a notebook now) and to observe windows updates. Gotta have a hobby. But my home pc spends upwards of 90% of its life in Linux land -- even more recently because I've been too lazy to reboot to game :/

I liked most of Debian, only choosing a derivative when I wanted more current software. I used Ubuntu long before it was the OS of the kool kids, all the way from Warty. It was all I liked about Debian with more current software but not the mad downloads required to keep up with Debian testing. I gave up on Ubuntu partly because of Unity / GNOME3 -- I had swiched to KDE, but it was never particularly fast. But something had already begun to bug me: PulseAudio.

Sound in Linux has traditionally been hard. I started before ALSA, when OSS was the way and there were a few sound daemons you could choose from, but honestly the best approach was to just get a sound card with hardware mixing -- I found a Creative AWE32 and things were good. But this PulseAudio beast was foisted on me and I never quite figured out how to shake it. I dislike it because it introduces noticable latency (even to my non-studio ears) and was always a little flaky. Last time I reloaded (from Ubuntu back to Debian plain, about a year ago), it was after finally simply having had enough of PA dying randomly. Nothing I tried would fix it for long and my desktop was laggy too -- it was just time for a clean house.

Going back to Debian was like a breath of fresh air -- things were faster, but there's still no (easy) hiding from PulseAudio. And Debian has also chosen to go the SystemD route -- another piece of software which I gave a chance, but just grew to hate more and more. Where are my logs? I have to learn journalctl commands, because they're not just in nice little text files under /var/log any more. How do I start/stop/restart a service? I have to learn systemctl commands, because /etc/init.d/(some service) (start|stop|restart) is only available for "antiquated" packages which haven't "upgraded" to systemd yet.

And don't get me started on boot (and even worse: shutdown / reboot) times. I'm running an i7 3770k with 16 gig RAM and an NVidia 660ti. Yeah, none of that is cutting edge -- but none of it is slothful either. Windows 10 on the same machine was making my precious Linux desktop feel positively sluggish.

We can't have that!

So I did what any other pedantic geek would do: downloaded ISOs and started checking out other distros in VirtualBox VMs. Primarily, I was interested in finding something that didn't use systemd, but it also had to be actively maintained, have a decently-sized community, have a lot of packages, have a good history (or be built on the shoulders of a giant with good history, like Debian). I found a nice comparison chart here: and set to work on evaluating in virtual environments. Ideally, I'd like to have found something Debian-based as I know the layout and tooling fairly well, but I was open to new experiences.

Most of the options I tried out didn't wow me, but a quick glance at the list linked above shows that one of the systemd-independent distributions is Gentoo.

Rewind a decade or so, and I remember having a good friend who loved Gentoo. Personally, it always felt like the OS of choice for an habitual tweaker. It just didn't seem to be worth the effort. For a while, the argument that compiling all packages locally would give a faster desktop was the primary reason I heard that I should consider it. It was also the primary reason for angst back then -- when getting a Gentoo box up and running with a desktop environment, browser, email client, office suite, etc, would take around a week. Those were the days when an Athlon 1800 was the business -- and there's no way an Athlon 1800 can compete with even a low-power current chip for compiling. Gentoo was the distro for people with nothing better to do than watch compilation output scrolling across their screens.

But I noticed that

  • OpenRC is the default init system for Gentoo (not some unsupported "you can do it, but good luck" option, like with Arch Linux, another distro I did consider because I've read a lot of good things about it),
  • Gentoo had a clear howto on setting up ALSA for sound cards which don't support hardware mixing and 
  • Gentoo is documented to the max -- there are wiki page upon wiki page of information
The last point is good -- but it's also a little scary for the same reason that over-documented code is scary: at some point, the documenting comments fall out of sync with the actual software logic and become misleading lies (and I've found some rabbit-holes in Gentoo wiki pages -- but mostly, they've been really helpful)

So Gentoo looked like a good choice.... Onwards and upwards!

No comments:

Post a Comment

NExpect level 3: you are the key component

In previous posts, I've examined how to do simple and collection-based assertions with NExpect . These have enabled two of the desig...