Dear Future Self,
If you’re reading this, hopefully it’s because you’re about to embark, once again, on the journey known as ‘installing Linux anew’. You’re predictable, you’re not particularly adventurous, so you’re almost certainly opting for Ubuntu out of some delusion that its consumer-friendly nature will make the install quick and seamless. But you only want the machine for writing/coding on, so you’re going to ruin your chances of a simple install by opting for Minimal. You’ve done it several times before, so it couldn’t be that bad, right? No, it won’t be, but I can tell you… I wish I had a me to guide me through it last time or the time before.
The actual install is simple enough. You may want to research the bundles of packages offered up during install time, I still haven’t figured those out. Also, it’s probably worth reviewing the encryption options, and the current state of the various filesystem choices, though you’re just going to choose whatever unstable thing has the most toys to play with anyway. Just let it do its thing, prepare a martini, relax.
So that’s out of the way, it’s time to boot… to a blank screen. Ubuntu does this… thing… where it messes with the contents of the video memory, juggles things around until finally allowing the kernel to do its thing and return operations to normal. Presumably, this works well when booting straight into X11, and supposedly it makes for a more seamless boot. However, future self, you’re stubbornly going to avoid X11 for as long as possible, which means this blank screen is a pretty large seam.
The boot parameter we need to get rid of is
$vt_handoff. You can temporarily edit your boot settings by pressing e on the bootloader (GRUB)’s selection, and deleting that word. This will get old quick, and Googling will result in a whole host of bad ideas, namely those which involve writing directly to GRUB’s generated configuration files, or setting
nomodeset. Don’t do either of those things. Fortunately, this kubuntuforums post offers what seems like a clean, stable answer.
vi /etc/default/grub, add the line
GRUB_GFXPAYLOAD_LINUX=text, :wq, and then run
sudo update-grub. You should get a login screen now. You might briefly see some warnings about btrfs (you chose the unstable but fun filesystem, remember?) but supposedly they’re nothing to worry about.
Alright, you’re in! Your screen is probably very, very bright, see whether or not those controls work. If they don’t, you’re going to need to edit
/etc/default/grub again, some ACPI related line or lines specific to your machine. Of course, while you’re making temporary boot parameter edits from GRUB, you’ve probably run into an
esetterm error by now.
setterm is the first word in the boot configuration, and you got impatient and mashed e too many times. Don’t do that. Also note that any time the boot process is being screwy, you can remove the
quiet splash parameters for a verbose boot.
You’ve probably gotten a few errors trying to invoke
vim on a system that only has
vi, and may have come across a few other missing packages as well. The internet would be handy right about now. Run
ifconfig to figure out what your ethernet device is called, and then
sudo vi /etc/network/interfaces. If you’ve opted to ignore me, you’ve probably followed some Googled advice that tells you to set
auto eth0 (or whatever your ethernet device is), and now you’re stuck with a 5-minute boot time whenever you’re not plugged in. What you want is
allow-hotplug, something like…
allow-hotplug eth0 iface eth0 inet dhcp
sudo /etc/init.d networking stop && sudo /etc/init.d/networking start, and hopefully when the dust settles, you can
ping brhfl.com. Go ahead and have a field day
sudo apt installing
elinks, and while you’re at it you may as well get
wicd-curses, and ignore your impulses to manually configure wifi via
YOU KEEP TYPING THINGS IN ALL CAPS because you can’t remember how to remap caps lock to ctrl. Google tells you a lot about xmodmap, but you’re still resisting X11. Frankly, you may as well get that out of the way because you are going to install X11 as well, but you’ll also want to refamiliarize yourself with
showkey, and ultimately
loadkeys. You’ll verify which keymaps you’re using via
dumpkeys, verify the keycode for caps lock with
showkey, and ultimately make a mapping file something like…
keymaps 0-127 keycode 58 = Control
…which you will then load via
loadkeys in your profile. Since nothing is ever really that simple, this will fail because
loadkeys needs root permission. You have to edit
/etc/sudoers (or, more elegantly,
/etc/sudoers.d/loadkeys) to add a directive like
brhfl x220 = (root) NOPASSWD: /bin/loadkeys. You’re smart enough to know that you really should be using
visudo to edit these files, but you don’t feel like Googling how to fix Ubuntu’s default editor choice of
sudo update-alternatives --config editor. There.
One last thing, this machine is not really for web browsing, but you need to be able to see what you’re working on. Maybe by the time you read this, Chromium’s Ozone framebuffer implementation will be readily available, or maybe you’ll be smart enough to get
netsurf working in the framebuffer (hint: you definitely need to add yourself to the groups that the mouse and framebuffer devices belong to). Maybe Wayland will be a viable option. Things are already looking up since the last time I did this, but we’re not there yet. I doubt we will be by the time you read this, so you’re probably just going to have to bite the bullet and install X11. I’ll probably have written up a few thoughts on minimalist windowing setups by then, but there’s a good chance you’ll settle on i3 or bspwm for a window manager, with a buggy Chrome install and a stable uzbl install, as well as vim-athena for some reason.
Hope this helps —
— the ghost of /home/bhefele past