Getting started with Chimera Linux

Motivations

Chimera Linux is a relatively new Linux distribution based around the *BSD userland and modern system environment. The target system is an older Lenovo ThinkPad X121e equipped with an AMD E-450, this is my usual system for experimenting and trying out new distributions.

TLDR; setup

I do not see much value in writing a copy of the installation manual of Chimera Linux but I think that it makes sense which steps I took in setting up the system. Always consult the Chimera Linux documentation to setup up the distribution.

These instructions have been tested together with the chimera-linux-x86_64-LIVE-20240122-gnome.iso.

# wipefs -a /dev/sda
# cfdisk /dev/sda
label: gpt
name=esp, size=100M, type="EFI System"
name=boot, size=1G, type="Linux extended boot"
name=luks
# mkfs.vfat /dev/sda1
# mkfs.ext4 /dev/sda2
# cryptsetup luksFormat /dev/sda3
# cryptsetup luksOpen /dev/sda3 crypt
# vgcreate volg /dev/mapper/crypt
# lvcreate --name swap -L 8G volg
# lvcreate --name root -l 100%free volg
# mkfs.ext4 /dev/volg/root
# mkswap /dev/volg/swap
# mkdir /media/root
# mount /dev/volg/root /media/root
# mkdir /media/root/boot
# mount /dev/sda2 /media/root/boot
# mkdir /media/root/boot/efi
# mount /dev/sda1 /media/root/boot/efi
# chimera-bootstrap -l /media/root
# chimera-chroot /media/root
## apk update
## apk upgrade --available
## apk add chimera-repo-contrib
## apk update
## apk add linux-lts
## swapon /dev/mapper/volg-swap
## genfstab / > /etc/fstab
## echo crypt /dev/sda3 none luks > /etc/crypttab
## passwd root
## update-initramfs -c -k all
## apk add grub-x86_64-efi
## mkdir -p /boot/efi
## mount /dev/sda1 /boot/efi
## grub-install --efi-directory=/boot/efi
## update-grub

Post-installation steps after booting into the system:

# useradd myuser
# passwd myuser
# usermod -a -G wheel,kvm,plugdev,audio,video myuser
# echo chimera > /etc/hostname
# ln -sf /usr/share/zoneinfo/Europe/Amsterdam /etc/localtime
# dinitctl enable syslog-ng
# apk add ucode-amd
# update-initramfs -c -k all
# dinitctl enable networkmanager
# dinitctl enable gdm
# dinitctl enable bluetoothd
# apk add ufw
# dinitctl enable ufw
# ufw enable
# ufw default deny incoming
# ufw default allow outgoing
# ufw allow ssh
# ufw limit ssh
# apk add chrony zsh git curl tmux

Notable differences

Given the design decisions of this distribution, there are some important differences compared to other Linux distributions or other *BSD operating systems.

  • doas: replacement for sudo
  • nmcli: NetworkManager CLI interface, instead of ifconfig
Copyright © 2024 Yennick Schepers