Mini Gentoo installation log

This article is more of a note to self. Would help me install Gentoo a little bit faster whenever I choose to do that again (not anytime soon :) ). More probably, I’ll use this as a reference to remember what’s in my system etc.

And what about you? So I’ve often had to tell people how to do stuff. I like to keep all my instructions online. Saves time ;) . Feel free to refer to this in case you plan to jump on the Gentoo ship.

NOTE: This article is not meant as a replacement for the awesome Gentoo wiki. Infact this is a super condensed version of the steps written there, and may not work for everyone. But would certainly help if you’re having some trouble getting something to work (for example: the bootloader).

Testing

  • Make bootable with dd command.
  • Ping internet

Make partition

  • parted -a optimal /dev/sda
  • unit mib
  • Exact same steps as on [https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Disks]
  • Created swap space of 9.5 GB
  • Mounted into directories.

Stage 3

  • Downloaded tar.gz from iitk mirror.
  • Unpacked it.
  • Wrote all my USE flags (copied from laptop. See section on other notes)

Chroot

  • Mounted all proc,sys,dev etc as written on Gentoo Wiki.
  • Did chroot and sourced etc/profile
  • Did emerge-webrsync
  • Selected plain systemd profile

Systemd

  • Symlinked: ln -sf /proc/self/mounts /etc/mtab
  • Set root password

Other

  • echo “Asia/Kolkata” > /etc/timezone
  • emerge –config sys-libs/timezone-data
  • Added locales in /etc/locale.gen
  • locale-gen
  • Set locale to en_US.utf8 using eselect
  • Installing vim

Kernel

  • emerge gentoo-sources
  • Did genkernel for now.
  • genkernel –menuconfig all to add inkernel support for ext4
  • Required kernel parameters: root=/dev/sda4, rootfstype=ext4
  • Realized that I should’ve let my boot partition be ext2
  • Did that. Recreated the boot partition and regenerated the kernel.
  • Realized I should’ve just made a backup of the previous build of the kernel.

Config

  • Edited /etc/fstab file and mounted root with noatime
  • Set root passwd
  • emerged linux-firmware
  • emerged net-misc/netifrc
  • Removed udev
  • Installed systemd
  • Did emerge -avDN @world
  • Enabled systemd-networkd service using systemd
  • Installed ssh, dhcpcd
  • Installed eix to be able to query packages
  • SUDO!
  • useradd
  • EDITOR=vim visudo and give myself permissions

Bootloader

  • Installed grub and os-prober
  • BIOS: grub2-install /dev/sda
  • Set this line in /etc/default/grub: GRUB_CMDLINE_LINUX="init=/usr/lib/systemd/systemd"
  • grub2-mkconfig -o /boot/grub/grub.cfg
  • DIDN’T WORK!!
  • Change of plans, go with UEFI.
  • Used my Arch bootable (which had a dual, UEFI and Legacy boot) to boot into a UEFI environment which had the EFI variables. Gentoo bootable wasn’t UEFI for some reason.
  • Did the regular gentoo liveUSB style chroot into my gentoo installation.
  • Add entry in make.conf to install efivars: GRUB_PLATFORMS="efi-64 efi-32 pc emu"
  • Mount /dev/sda2 to /boot
  • Mount /dev/sda1 to /boot/efi and format it as vfat
  • Now do the grub UEFI install steps
  • Enable systemd-networkd on boot

Graphics

  • Installed x11-base/xorg-x11
  • Installed ghc and xmonad
  • Installed i3 and dmenu
  • Copied xinitrc from /etc/X11/xinit/xinitrc to ~/.xinitrc
  • Startx runs i3 (added exec i3 to .xinitrc)!

Audio

  • Installed pulseaudio (fixed unmet use flags)
  • alsa-utils
  • Relogin

Packages

  • rxvt-unicode and urxvt-perls
  • networkmanager
  • Emacs and started its daemon to download packages
  • Vim and installed neobundle and vim-plug, followed by installation of my vim packages
  • elinks
  • firefox-bin-43.0
  • google-chrome-unstable
  • x11-misc/xclip
  • zsh fortune-mod cowsay
  • cabal
  • taffybar
  • i3lock
  • setxkbmap and xmodmap for keyboard layouts
  • arandr and xrandr
  • unrar, pcmanfm
  • gentoolkit, genlop

Set up ssh key

  • ssh-keygen -t rsa -C -b 4096 "your_email"
  • Set strong password
  • eval "$(ssh-agent -s)"
  • ssh-add ~/.ssh/id_rsa
  • Preferably add this to your xinitrc as follows: exec ssh-agent i3 (or whatever DE you use)

Haskell

  • Installed ghc and xmonad
  • Now sudo layman -a haskell
  • Installed taffybar
  • xmonad-contrib
  • Installed taffybar again
  • Installed ghc-mod (hell) using: emerge -av --oneshot --keep-going ghc-mod --backtrack=30
  • Failed. Did haskell-updater

Virtualbox

  • Installed virtualbox-bin

Other notes:

Here are my USE flags:

USE="bindist mmx sse sse2 udisks systemd X acl alsa gtk bindist mp3 mp4 unicode jpg xft 256-color unicode3 fading-colors jpeg bluetooth science truetype mtp png xvmc imagemagick libass fontconfig pulseaudio x264 gd gtk3 dbus"