all repos — site @ e9c2466337dd4fd80125dc0c7269d37beb57636b

source for my site, found at icyphox.sh

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

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