slowpoke well

route 33 to the future

Category: English

there’s no merit in meritocracy

Ah, meritocracy! The great solution to all of society’s problems, at least if the white, heterosexual, cis-male hacker is to be believed. If just we’d had meritocracy, then we could actually solve the important problems, and everyone would be happy!

I’m tired of hearing it, really. It gets brought up every time someone calls out issues in hacker or nerd communities, and it doesn’t get any less wrong with every repetition. The idea behind meritocracy is certainly a commendable one – that everyone be judged by their merit, not superficial other criteria. Even the hacker ethics of the CCC reflect this:

Hackers should be judged by their acting, not bogus criteria such as degrees, age, race, or position.

The problem is that in practise, the ones who define merit are those already in power, and in both these communities as well as society at large, the ones in power are white, cisgendered, heterosexual men, and as long as these people get to define what merit is, meritocracy will merely reinforce existing power structures. It’s nothing radical, really. It’s the exact opposite, a reactionary, conservative rhetoric that’s used to subdue criticism.

One of the best examples for this is Linus Torvalds, idol and hero of hackers and nerds alike. He’s the “Benevolent Dictator For Life” of the Linux kernel, an unarguably brilliant engineer… and a massive, unapologetic dick. He’s been called out for his behavior for years, by many different people, and pretty much all that he has ever answered is “lol deal with it”. He’s a prime example for a toxic individual who’s tolerated a) because he is an (or rather, the most) important contributor to the Linux kernel, and b) because the abusive shit he constantly pulls is not just ignored by his peers, it’s basically applauded and espoused.

Just recently, when questioned about the lack of diversity in tech (the existence of which is inarguable), his response was basically “I don’t care, I’m an asshole”. And this is the person heading arguably the most well known FLOSS project in existence. If you look at the hashtag #IStandWithLinus on Twitter, you’ll see legions of rabid fanboys fanatically defending his right to be an abusive shitbag, people who look up to Torvalds and idolize his behavior. If you do not think this is fucked up, then please don’t bother talking to me, ever.

And it’s not just Torvalds. If that would be the case, it would be the least of our problems. The issue is that this kind of behavior is not just widespread, but also widely tolerated. You can be an abusive asshole as much as you want as long as you contribute technical things – provided you are a white, heterosexual cis-male, because otherwise, your behavior would be unacceptable.

I’ve seen this pan out before me several times already, and I still see it all the time. I’m part of several communities where assholes are tolerated as long as they do stuff, where people don’t see an issue with the fact the 98% of the people in the community are white cishet males, or if they do, they think that this will eventually fix itself as long as you tell yourself the lie that everyone will be respected as long as they have merit. Worse, if you call people out on their bullshit, instead of telling the abuser to stop, will start telling you to stop criticizing the abuser because they do stuff and how dare you imply that they are bad.

Also, as I have said above, the ones in power define what merit is. This leads to the phenomenon that everything which could potentially hurt this existing power structure is deemed as “not merit” and therefore dismissable. When people question this or call out people on their behavior, they’re questioned what they have contributed to the community and how dare they criticize someone who does more stuff than them. It’s a shaming tactic that works to constantly undermine the achievements of people, aimed at eventually getting them to question their own achievements.

Meritocracy fails because it fails to question existing power structures, it merely defines them away. This plain doesn’t work, it never has. No victory over oppressive structures has ever been achieved by saying “this structure no longer exits” and subsequently ignoring its existence, nor will this ever happen. Those victories have to be fought for, and meritocracy does not do this, because it’s a passive denial of existing hierarchies.

We seriously need to get rid of this poisonous concept for good. We need to tell the many Torvalds in our communities and spaces to either stop being assholes, or get the fuck out, no matter how valuable their technical contributions may be. We need to actively fight to end the lack of diversity instead of ignoring it. We need to stop tolerating douchebaggery, and stop being douchebags ourselves.

Fuck meritocracy.

Advertisements

On Free Speech

Trigger Warning: Hate Speech, Abuse

To make the introduction short, I’m sick and tired of people screaming “Free Speech!” when you call them out for abuse or hate speech. I’m fed up with entitled, privileged people immediately accusing you of “censorship” when you tell them that what they say is hurtful, dehumanizing, and therefore unacceptable. And I’m so fucking done with people giving platforms to these kinds of assholes under the banner of protecting Human Rights.

Free Speech is a very specific kind of right that many people completely misunderstand or intentionally misrepresent, often to push their own oppressive agenda or to escape eating up to the consequences of their actions. And this is despite the fact that Free Speech is actually a very simple right that can completely and sufficiently be defined in a single sentence:

Free Speech is your right not to be interfered with in expression by the government.

Notice the emphasis? That’s because it’s important. The right to Free Speech exists to prevent your government to stop you from criticizing it. It exists to make it possible to have free and unhindered political discourse without fear of governmental repression. That is literally all that Free Speech is. Nothing more, nothing less.

Now let’s focus on what Free Speech isn’t:

Free Speech is not your right to abuse people and get away with it. Free Speech is not your right to harass people and then complain about people telling you to fuck off. Free Speech is not your right to demand a soapbox, and not your right to have an audience that listens to you. Free Speech does not mean there are no consequences to what you say. Free Speech does not make you immune to scrutiny and criticism. Free Speech is not your ticket to be an asshole and not get called out for it. Free Speech does not mean you’re allowed to say anything anywhere to anyone.

Likewise, censorship simply means the restriction of Free Speech. As I have explained above, that means censorship only happens when the government stops you from expressing yourself.

Calling people out on harassment is not censorship, that’s called being a decent human being. Not giving hate speech a platform by kicking out the people who espouse it (or outright denying them entry) is not censorship. Telling white supremacists and Nazis to fuck off is not censorship. Blocking people on social media is not censorship. No, not even when it’s done with shared blocklists. Not wanting to listen to sexist, racist, ableist, homophobic, transphobic, or elitist bullshit is not censorship. Demanding that all of the above happens, everywhere, is not censorship, either.

In a decent society, hate speech and abuse do not exist. There’s no need for them to have a platform, anywhere. If you demand that they be given one, you support them, and if you support hate speech and abuse, you’re a shitty excuse for a human being – so do not complain that people will treat you like one.

Automagic Screenshot Twitter Account

I watch a ton of animu. I also take a lot of screenshots while doing so. Occasionally, I will post some of them – mostly the silly or cute ones – to my Twitter Account, sometimes with a more or less funny comment.

Last night. I had the idea of making a separate account so I could spam screenshots as much as I want without annoying my followers too much. I immediately secured @slowpokeshots, then realized it would be pretty cool if I could automate this. Since I had planned to write something interfacing with the Twitter API for quite a while, I quickly looked for some viable libraries, found this nice python package, and set out to hack something together.

Now, some two hours later, I have a working, if somewhat hackish, script that automagically uploads every screenshot I take in mpv (the player you should seriously be using if you’re on any Linux distro) to the aforementioned Twitter account.

Now, how does this work?

The simplest part is actually interfacing and uploading stuff to Twitter. Basically everything is already taken care of by the aforementioned python library, though I had a little derpage with OAuth in the beginning.

The somewhat harder part was interfacing with mpv, which has no API in the strictest sense. What it does have, however, is the ability to read commands from a named pipe (a FIFO file). I’ve fucked around with this a bit before because it essentially allows you to very simply remote control mpv over SSH – you simply echo stuff like “pause” into the file, MPV(1) has a list of all
commands it accepts (see the “List of Input Commands” section).

This input file must either be passed to mpv with every invocation via –input-file, or configured in ~/.mpv/config. In my case, it’s set to /tmp/mpv.fifo, which is created during X startup.

Now, there are three commands for mpv of interest: screenshot, screenshot_to_file, and run.

The first two are somewhat self-explaining. screenshot takes a shot, named according to whatever is specified in the screenshot-template option. In my case, it will put them into ~/screenshots and name it after the filename of the video plus a four digit incrementing number (again, see MPV(1) for how to configure screenshot-template). This is not super-important to the use case at hand, but I thought I’d mention it.

screenshot_to_file, as the name implies, takes a filename as an argument, where it will save the taken screenshot. Both screenshot and screenshot_to_file take an optional argument (first argument for the former, second for the latter) which decides whether subtitles are included in the screenshot (“subtitles”, the default if nothing is given) or not (“video”). Per default, screenshot subtitles is bound to s in mpv, and screenshot video to S. I use both quite a lot.

run is for running shell commands, nothing much more to explain about it.

Now, what my script does is the following: when called, it will use the aforementioned named pipe to tell mpv to take a screenshot to a specified location with screenshot_to_file, then another regular screenshot (because I want my shots archived), waits for the first shot to appear, and uploads it to Twitter. I’ve bound this script, using the run command, to the keys formerly used for taking screenshots – the whole process is transparent.

I’ve posted the code to a gist because I don’t think I’m gonna change anything about it in the future (and if I do, I can still put it in a repository proper).

It’s public domain. Use it if you like it (you might want to change the API keys and make your own version, though).

Season Kickoff Frenzy (Fall 2014)

Last weekend, the Season Kickoff Frenzy – a quarterly, cozy event where we kick off the newest anime season by marathon-ing shiny new first episodes – took place at the RaumZeitLabor for the sixth time (if I counted correctly). The entire thing once started because I was drunk on Twitter and had a lot of anime to watch, but now it’s a regular event at the RZL. Life’s funny like that sometimes.

Anyways, as usual, we cooked semi-authentic Japanese food (usually fitting for the season) before we began. This time, I was somewhat uncreative and decided to go with Rāmen (which technically is Chinese, thus semi-authentic). Sadly, I didn’t snap any pictures this time, but rest assured that it was delicious. I also planned to make Jin Deui (Sesame Balls, also technically Chinese), but we eventually decided to do this some other time because we were already late (as usual, as I may add) with starting to actually watch anything.

Well, without further ado, here’s what we watched, in chronological order.

Ushinawareta Mirai o Motomete (#waramete_anime)

Waramete is an adaption of an adult Visual Novel of the same name (which translates to “In Search of Lost Future”), which I haven’t read/played yet, and is animated by feel. (who animated, among other shows, the great Outbreak Company last fall). It also has two manga adaptions, neither of which I have read, either.

As far as I could gather from the synopsis, the show’s about the astronomy club of the local high-school (although only the protagonist, Sou, seems to really care about the club’s topic), which has apparently attracted some of the school’s well-known students. The driving plot line is the upcoming school festival (because, as even casual watchers of anime should know, school festivals are SERIOUS BUSINESS). The episode’s end left me somewhat confused, but since it’s the first episode, I don’t mind that much. I’m curious how this will continue, it looks decent so far.

Inou Battle wa Nichijou-kei no Naka de (#異能バトル)

The second show, which is also know as When Supernatural Battles Became Commonplace, brings us the first Light Novel adaption from TRIGGER of KILL la KILL fame – and there’s at least one very obvious shout-out in the first episode already.

Basically, it’s a show about the members of the literature club, who have, through an as of yet unexplained event, acquired what amounts to reality-breaking superpowers – but there’s nothing to use them on, so they just goof around. This results in some hilarious situations, especially because pretty much all of the characters are wackos.

I’m looking forward to more of this show – my diaphragm is prepared.

Akatsuki no Yona (#暁のヨナ)

For the third show, the random generator chose a fantasy manga adaption, animated by Pierrot.

Let me first say, I’m in love with this show’s OP already. It’s actually rather rare for a show to have instrumental OPs, and this one fits the show very well.

It also makes it pretty obvious that this show is a reverse harem, centered around Yona, the princess of a kingdom reminiscent of historic Japan.

Most of the first episode is spent with exposition, as well as Yona being head over heels for her cousin, Soo-Won – who soon turns out to be plotting his own schemes, and the episode ends with a bang.

If the show keeps moving the plot forward at this pace, it’ll be pretty enjoyable.

Donten ni Warau (#donten)

Another manga adaption, this one’s done by Dogakobo. I must say off the bat that I’m not terribly impressed by it so far, and that has nothing to do with the fact that it’s a shōjo show about three bishōnen – whose task is to ferry people to an inescapable prison in the middle of a lake. While the backstory is sort of interesting, it barely gets mentioned in the first episode, and I really hope they explain more about this in the next two episodes.

Sanzoku no Musume Ronja (no hashtag)

I must admit that I haven’t actually read the Astrid Lindgren book, Ronja Rövardotter, and it’s been probably like 20 years since I’ve watched the movie, so I can’t say I have any specific feelings of nostalgia for this show. I also haven’t watched that many Ghibli works so far (I can only think of Tonari no Totoro and Mononoke Hime off the top of my head), so I don’t have a lot to compare it to.

However, I’m pretty surprised by the choice of animation style – it’s entirely computer animated. While I personally think I can get used to the CGI style (it does have a lot of attention to detail), some other people in the room were pretty disappointed – they probably looked forward to something more akin to classic Ghibli movies. Oh well.

However, all was well when we got to the next show:

Yūki Yūna wa Yūsha de Aru (#yuyuyu)

Quite honestly, this show was completely not what I was expecting – in the best way possible. It’s very probable that Studio Gokumi has delivered us (or at least me) the Anime of the Season already.

Don’t be fooled by the show’s rather meek start, disguising itself as Yet Another School Club Comedy™. About a third into the first episode, shit starts hitting the fan, and once you get to the halfway mark, the rest of the episode is basically a non-stop psychedelic Magical Girl acid trip. I’m not sure what drugs the people at Gokumi are taking, but they should never stop and probably do more.

I’m also already pretty hooked on the soundtrack – composed by Okabe Keiichi – which manages to turn some of the already great parts of the first episode into terrific displays of pure awesome. However, see for yourself:

Yes, she just transformed while getting shot at with explosives, and because that’s not yet enough of a “fuck you” to the poor monster, she finishes her transformation by punching a gigantic hole into its abdomen. I’ve watched quite some Magical Girl shows in my time, but this already ranks up there as one of my favorite first-time transformations period.

I’ve already watched the second episode on Sunday, and it continues to be awesome – and I’ll be severely disappointed if this doesn’t keep up.

Kiseijū (#kiseiju_anime)

Quite honestly, I can’t sum this up better than a friend in the room did:

Kiseijū is an adaption of a manga from the early 90s (it’s quite uncommon for older source material to get adapted into an anime) done by MADHOUSE, and weird is probably still an understatement.

The story is about aliens called Parasytes, which take over human bodies to devour other humans. The protagonist, Shinichi, is also attacked by one of the larvae, but due to lucky circumstances, it only manages to take over his right arm, and the two have to learn to coexist, and fight other Parasytes.

Kiseijū also has a great OP, performed by Fear, and Loathing in Las Vegas – if you’re into Screamo, that is.

World Trigger (#ワールドトリガー)

Another manga adaption, this time a battle shōnen, done by Toei. To be honest, the first episode was rather lackluster, and I don’t really know what to say about it. Maybe it’ll get better over the next few episodes.

Cross Ange: Tenshi to Ryū no Rondo (#クロスアンジュ)

Well, another show I’m seriously not sure about. It’s an original story produced by Sunrise, and is about a world where everyone can use magic – except rare humans called “Normas”, who can simply destroy Mana, and are thus seen as abominations and are hunted and quarantined. On the other hand, Normas pilot Mechas to fight some weird dragons from another dimension. Oh, and for as of yet unexplained reasons™, only girls can be Normas.

The first episode is somewhat all over the place, but I really like the Mecha designs, and the setting as a whole. I do suspect this show will devolve into random ecchi shenanigans, though. We’ll see.

Magic Kaito (#kaito1412)

This show is based on a manga by Aoyama Gōshō, creator of the widely known Detective Conan – which is very obvious, considering his pretty unique style.

It’s animated by A-1 Pictures, and will be running for 24 episodes total. There’s not a lot to say about the show so far, except that it’s rather fun so far and that I’m looking forward to more of it.

Denkigai no Honya-san (#denkigai)

Shin-Ei Animation brings us a pretty light-hearted comedy about a bookstore in “Electric Town”, or in other words, Akihabara, where manga, dōjinshi, and magazines are sold. It focuses on the staff of said store, full of wacky weirdos, and their daily shenanigans. The show is full of otaku-related jokes and shout-outs (there’s a JoJo reference right in the first episode, for instance), and celebrates the (sub)culture surrounding Akiba in a tongue-in-cheek fashion.

The show managed to constantly make me smile with its sympathetic wackiness, and some laughs were had, as well. If it keeps up the pace from the first episode, this will be a very decent comedy anime.

Trinity Seven (#トリニティセブン)

From the creators of Dog Days (for which I’m pretty hype for the third season) and Mahō Shōjo Lyrical Nanoha (for which I’m pretty hype for the third movie), Seven Arcs, or technically Seven Arcs Pictures, brings us a manga adaption this season. I haven’t read the source material for this either, but the synopsis makes it painfully obvious that this is a harem show with fantasy elements – the latter of which are actually quite interesting, as is the entire setting.

On the other hand, the episode is already full of random ecchi comedy, so if that’s not your thing, don’t watch this.

Let’s see where this goes, and whether they manage to do anything cool with the setting.

Hi☆sCoool! SeHa Girl (#セハガール)

This truly was another of the gems of the evening – if you’re into Retro gaming, that is. The plot – if we may call it that – revolves around anthropomorphized Sega consoles, three of which already appear in the first episode (Dreamcast, Sega Saturn, and Megadrive). They are attending the “SeHaGaga Academy”, and to graduate, they must apparently enter classic Sega games. It’s made by TMS Entertainment (who are a direct subsidiary Sega Sammy Inc).

Oh. Did I mention that they have transformation sequences? Because they have transformation sequences. There’s also a 56k modem sound used in a gag in the first episode. Yep. And that’s just beginning. I’m sure more hardcore Sega nerds than me – I used to be in the Nintendo camp when I was younger – will find a lot more lulzy shout-outs, references, and homages in this show.

Shingeki no Bahamut GENESIS (#バハジェネ #bahamut_genesis)

Based on a virtual Trading Card Game for iOS and Android, and animated by MAPPA, Shingeki no Bahamut begins with a flashback to 2000 years before the story, then skips back to the present, where two hot-headed bounty hunters named Favaro and Kaisar are fighting with each other while destroying half the city. Nobody, however, seems to really care, and soon the plot begins to move when a woman appears before Favaro and wants him to lead her to a place called Helheim.

The premise promises a pretty cool action adventure story with refreshing character designs, and already has some pretty decent fight scenes. I seriously hope it keeps up the pace of the first episode, then this will be a very enjoyable show.

Garo: Honoo no Kokuin (#anime_garo)

Another show by MAPPA, Garo is based on a Tokusatsu franchise of the same name, but has nothing to do with it in terms of continuity. The story takes place in a fictional country resembling Spain during the Spanish Inquisition (and the first episode contains quite a few witch hunt executions). It revolves around the two protagonists, León Louis and Germán Louis, who are able to transform into powerful forms called Makai Knights, which they use to seal “Horrors”.

To be perfectly honest, I’m pretty neutral toward the show so far, though it has a cool style and some very decent CGI. I’ve been meaning to get into Tokusatsu since a while, but so far have been too lazy to start somewhere. Maybe this show will give me the needed incentive.

Log Horizon S2 (#loghorizon #Eテレ)

The long awaited second season of Log Horizon, which started airing about a year ago in 2013’s Fall Season (and was obviously included in the Kickoff Frenzy for that season). Produced and animated by Satelight (known for a broad variety of shows, among them Hellsing Ultimate, Shugo Chara, several entries in the Macross franchise, and quite a lot more), it tells the story of an MMORPG in which several thousand players become trapped one day without knowing how or why.

If you thought of Sword Art Online now and that this might be a cheap ripoff trying to ride on SAO‘s popularity, rest assured that these two shows have barely anything in common beyond the basic premise – which is exactly why I love both of them. I can seriously recommend watching the first season, it’s a brilliant anime with some great characters, and a very cool story.

The first episode of the second season was, for the most part, rather slow and uneventful, but was obviously busy with setting up the further plot, giving hints of where the story will move, and generally showing what some of the characters were/are up to since the end of the last season. All in all, this was already one of my highlights for this season before it even began, so I’m gonna enjoy the fuck out of this anime, and so should you.

Madan no Ou to Vanadis (#madan_anime)

The seasonal dose of Hiryuu subbed goodness comes in the form of Madan no Ou to Vanadis, a fantasy show set in medieval world where seven Vanadis exist, maidens who have received powerful dragon weapons. One of them takes interest in a young lord she takes prisoner during a large battle, and the story supposedly will resolve around the relationship they develop, as well as the wars in the fictional world.

The show has some elements of fan-service, but it’s comparably tame compared to other stuff. Like Log Horizon, it’s animated by Satelight.

Nanatsu no Taizai (#七つの大罪)

The Seven Deadly Sins – as the name translates to in English – is another adventure show, animated, like Magic Kaito 1412, by A-1 Pictures. It’s about a group of legendary warriors, the eponymous Seven Deadly Sins, who disappeared ten years before the start of the story after (supposedly) trying to overthrow the king. What exactly happened on that day appears to be the major driving force behind most of the plot.

I’ve already watched a few more episodes, and so far it has been a very enjoyable experience.

Kaitou Joker (no hashtag)

To make things short, I basically threw in this show merely because I already decided I’d watch Magic Kaito, and I wanted to compare the two shows. I didn’t expect much of this show, but it’s a surprisingly funny, if somewhat silly, comedy show.

Ore, Twintail ni Narimasu (#ore_twi)

Somehow, the random generator always manages to put something at the end which is a worthy final episode for the Kickoff Frenzy. This time, the honor went to Ore, Twintail ni Narimasu – which is about a guy with a twintail fetish who gets caught up in the completely crazy battle to save all twintails on earth from being stolen by alien invaders, and that’s really just the beginning of utter absurdity – wait until the transformations start to completely lose your shit.

All in all, this show is nuts enough to be awesome. It really doesn’t seem to take itself seriously, and seems to want to go the way of the gleeful parody – and I’m completely okay with this.

In Conclusion

While definitely not outstanding so far in terms of titles, this year’s Fall is a very solid season, and I’ll definitely not be short of good stuff to watch. At least as far as I’m concerned, this Kickoff Frenzy was a great night, and I hope to see everyone who was there again – and anyone who’s now interested, too.

See you next time!

Love Football, Hate the World Cup

It’s not really a secret that I don’t really get Football (or Soccer, for you crazy Americans), and don’t really understand what’s so interesting about watching twenty-two people in mostly single-sex teams chasing a round object. I do understand it’s a thing a lot of people apparently find interesting, though, and I respect that. Other people might not understand why people gather at various places in weird clothing to listen to loud, abrasive music, or hold entire congresses devoted to creative usage of computers and ethical considerations of technology. Or any of the other diverse things the uncountable subcultures on this planet do.

What I do not respect, however, are people who go on to claim that any of the aforementioned things are not political. Nothing is not political, especially if it involves a gigantic international sporting event with several billion dollars of corporate sponsorship and governmental aid behind it – aid that’s missing in so many other areas, like education – in a country where street kids are being murdered by the police to “clean up the city” for the influx of foreign visitors, slums are raided to crack down on drug trafficking without actually trying to fix the problems behind it, child prostitution is common, and social unrest is met with violence and repression by the government.

This is as political as it will ever get. Every conscious supporter of the World Cup, every sponsor, every athlete playing in it, every artist associated with it, and every football fan who doesn’t boycott it are as guilty of the crimes happening in Brazil as the perpetrators – they have the blood of countless innocent victims on their hands, murdered and abandoned for the entertainment of the rest of the world. It’s an insult to any conceivable definition of sportspersonship. And don’t get me started on the braindead surge of nationalism, xenophobia and racism it causes – especially here in Germany.

If you are truly a football fan, if you really love the sport, it is your duty to boycott the World Cup. Instead, go support a cool local football club (i.e. one without a fan scene full of homophobic, racist macho nutjobs). Or better yet: go campaign and protest against the capitalist abuse of your favorite sport.

Fun with UEFI

As a matter of fact, the title of this post is not meant in a sarcastic fashion. If you’ve come here thinking this is a rant about (U)EFI, I’ve got to disappoint you. :)

Anyways, since my SSD recently died and my backups were, ahem, lackluster, I had to set up my system from scratch. Since I didn’t really like the previous setup (LVM on LUKS) anyways, I figured I might as well try root on ZFS again. And if I’m at it, boot the whole thing with UEFI.

Now, I’ve heard some people curse UEFI like it’s the second coming of Bill Gates, and that it’s a royal pain in the ass to get working, etc. As I’m currently writing this from my shiny, new system booting from UEFI, you might guess that I can’t confirm this notion – though your mileage might vary.

Setup

Let’s get started, by stating the initial goal of the install:

  • a shiny new Gentoo GNU/Linux
  • booting entirely off ZFS
  • from within an encrypted LUKS partition
  • without a bootloader
  • and nothing besides the kernel outside of the crypted partition

For the most part, I’ve followed the UEFI Quick Install Guide and the excellent Gentoo Handbook, with a bit of duck-fu on the side. This worked pretty smoothly, and I had no noteworthy problems with getting the entire thing to work.

Now, the interesting part, and the question that most of you will probably have had while reading the list of goals:

“How in the name of Eris are you supposed to boot an encrypted system running off ZFS without a bootloader or an initram?”

How it works

Enter two (more ore less) little-known Linux kernel configuration options: CONFIG_INITRAMFS_SOURCE and CONFIG_CMDLINE. What do they do? Let’s start with the latter: CONFIG_CMDLINE specifies a built-in kernel command line for Linux. Normally, you’d pass options to the kernel from the bootloader, but you can also compile a fixed default one into the kernel. Here is mine (stripped of a few uninteresting things):

CONFIG_CMDLINE="crypt_root=UUID=blahblah real_root=ZFS=KOS-MOS/ROOT/gentoo dozfs=force ro"

The options you see here are used by an initram generated with Gentoo’s genkernel utility, which brings us directly to the other option, CONFIG_INITRAMFS_SOURCE. This option takes a path to a cpio-compressed initram, and builds it directly into the kernel – and that is pretty much the entire magic behind this setup.

Implications

This setup has a few cool side effects, but the most important one is that there is only a single attack vector outside of the encrypted partition (well, two if you count the UEFI implementation). I’ve not tried this yet, but it should be possible to sign the kernel and activate Secure Boot, which would enable a completely trusted boot chain. I’m gonna fuck around with kernel signing a bit this week and maybe post a follow-up.

Caveats

I’m not gonna lie, this setup has its downsides, too. First of all, it’s a pain in the ass to have to recompile (parts of) the kernel if you need to change the boot options. The same goes for changing something in the initram (though I only have to do this very rarely). It’s severely inflexible.