all repos — site @ 6df2ed9dc718349d3f7a7394eee89b8cf3e00073

source for my site, found at icyphox.sh

pages/txt/five-days-tty (view raw)

  1---
  2date: '2020-01-13'
  3subtitle: I installed KISS Linux
  4title: Five days in a TTY
  5---
  6
  7This new semester has been pretty easy on me, so far. I hardly every
  8have any classes (again, so far), and I've a ton of free time on my
  9hands. This calls for---yep---a distro hop!
 10
 11Why KISS?
 12---------
 13
 14[KISS](https://getkiss.org) has been making rounds on the interwebz
 15lately.[^1] The Hacker News post spurred *quite* the discussion. But
 16then again, that is to be expected from Valleybros who use macOS all
 17day. :\^)
 18
 19From the website,
 20
 21> An independent Linux® distribution with a focus on simplicity and the
 22> concept of "less is more". The distribution targets *only* the x86-64
 23> architecture and the English language.
 24
 25Like many people did in the HN thread, "simplicity" here is not to be
 26confused with "ease". It is instead, simplicity in terms of lesser and
 27cleaner code---no
 28[Poetterware](https://www.urbandictionary.com/define.php?term=poetterware).
 29
 30This, I can get behind. A clean system with less code is like a clean
 31table. It's nice to work on. It also implies security to a certain
 32extent since there's a smaller attack surface.
 33
 34The [`kiss`](https://github.com/kisslinux/kiss) package manager is
 35written is pure POSIX sh, and does *just enough*. Packages are compiled
 36from source and `kiss` automatically performs dependency resolution.
 37Creating packages is ridiculously easy too.
 38
 39Speaking of packages, all packages---both official & community
 40repos---are run through `shellcheck` before getting merged. This is
 41awesome; I don't think this is done in any other distro.
 42
 43In essence, KISS sucks less.
 44
 45Installing KISS
 46---------------
 47
 48The [install guide](https://getkiss.org/pages/install) is very easy to
 49follow. Clear instructions that make it hard to screw up; that didn't
 50stop me from doing so, however.
 51
 52### Day 1
 53
 54Although technically not in a TTY, it was still not *in* the KISS
 55system---I'll count it. I'd compiled the kernel in the chroot and
 56decided to use `efibootmgr` instead of GRUB. `efibootmgr` is a neat tool
 57to modify the Intel Extensible Firmware Interface (EFI). Essentially,
 58you boot the `.efi` directly as opposed to choosing which boot entry you
 59want to boot, through GRUB. Useful if you have just one OS on the
 60system. Removes one layer of abstraction.
 61
 62Adding a new EFI entry is pretty easy. For me, the command was:
 63
 64    efibootmgr --create 
 65               --disk /dev/nvme0n1 \
 66               --part 1 \
 67               --label KISS Linux \
 68               --loader /vmlinuz
 69               --unicode 'root=/dev/nvme0n1p3 rw'  # kernel parameters
 70
 71Mind you, this didn't work the first time, or the second, or the third
 72... a bunch of trial and error (and asking on `#kisslinux`) later, it
 73worked.
 74
 75Well, it booted, but not into KISS. Took a while to figure out that the
 76culprit was `CONFIG_BLK_DEV_NVME` not having been set in the kernel
 77config. Rebuild & reboot later, I was in.
 78
 79### Day 2
 80
 81Networking! How fun. An `ip a` and I see that both USB tethering
 82(ethernet) and wireless don't work. Great. Dug around a bit---missing
 83wireless drivers was the problem. Found my driver, a binary `.ucode`
 84from Intel (eugh!). The whole day was spent in figuring out why the
 85kernel would never load the firmware. I tried different
 86variations---loading it as a module (`=m`), baking it in (`=y`) but no
 87luck.
 88
 89### Day 3
 90
 91I then tried Alpine's kernel config but that was so huge and had a *ton*
 92of modules and took far too long to build each time, much to my
 93annoyance. Diffing their config and mine was about \~3000 lines! Too
 94much to sift through. On a whim, I decided to scrap my entire KISS
 95install and start afresh.
 96
 97For some odd reason, after doing the *exact* same things I'd done
 98earlier, my wireless worked this time. Ethernet didn't, and still
 99doesn't, but that's ok.
100
101Building `xorg-server` was next, which took about an hour, mostly thanks
102to spotty internet. The build went through fine, though what wasn't was
103no input after starting X. Adding my user to the `input` group wasn't
104enough. The culprit this time was a missing `xf86-xorg-input` package.
105Installing that gave me my mouse back, but not the keyboard!
106
107It was definitely not the kernel this time, because I had a working
108keyboard in the TTY.
109
110### Day 4 & Day 5
111
112This was probably the most annoying of all, since the fix was *trivial*.
113By this point I had exhausted all ideas, so I decided to build my
114essential packages and setup my system. Building Firefox took nearly 9
115hours, the other stuff were much faster.
116
117I was still chatting on IRC during this, trying to zero down on what the
118problem could be. And then:
119
120    <dylanaraps> For starters I think st fails due to no fonts.
121
122Holy shit! Fonts. I hadn't installed *any* fonts. Which is why none of
123the applications I tried launching via `sowm` ever launched, and hence,
124I was lead to believe my keyboard was dead.
125
126Worth it?
127---------
128
129Absolutely. I *cannot* stress on how much of a learning experience this
130was. Also a test of my patience and perseverance, but yeah ok. I also
131think that this distro is my endgame (yeah, right), probably because
132other distros will be nothing short of disappointing, in one way or
133another.
134
135Huge thanks to the folks at `#kisslinux` on Freenode for helping me
136throughout. And I mean, they *really* did. We chatted for hours on end
137trying to debug my issues.
138
139I'll now conclude with an obligatory screenshot.
140
141![scrot](https://x.icyphox.sh/R6G.png)
142
143[^1]: https://news.ycombinator.com/item?id=21021396