Skip to content

Instantly share code, notes, and snippets.

@wjlafrance
Last active January 8, 2023 00:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wjlafrance/b0d87fab147abc91804e92296f2e3ccf to your computer and use it in GitHub Desktop.
Save wjlafrance/b0d87fab147abc91804e92296f2e3ccf to your computer and use it in GitHub Desktop.
Install Arch Linux i486
  • Promox / QEMU VM, 512MB RAM, 128GB SCSI HD, 1 core pentium
  • IBM ThinkPad 600, 128MB RAM, 100GB ATA HD, 1 core pentium 2 (deschutes)

Begin by booting archlinux32-2021.07.16-i486.iso.

Partition the hard disk:

$ fdisk /dev/sda
 # o to create new dos partition table
 # n, default (p), default (1), default, +2G
 #   to create 2GB /boot partition as /dev/sda1
 # n, default (p), default (2), default, +4G
 #   to create 4GB swap partition as /dev/sda2
 # n, default (p), default (3), default, default
 #   to use remaining space as /dev/sda3
 # t, 2, 82 to set /dev/sda2 as linux swap type
 # w to write

Format and mount the disk, turn on swap, and write the fstab:

$ mkfs.ext4 /dev/sda1
$ mkfs.ext4 /dev/sda3
$ mount /dev/sda3 /mnt
$ mkdir /mnt/etc /mnt/boot /mnt/tmp
$ mount /dev/sda1 /mnt/boot
$ mkswap /dev/sda2
$ swapon /dev/sda2
$ genfstab -L /mnt > /mnt/etc/fstab

# this may not be necessary where tmpfs is large enough
$ mount --bind /mnt/tmp /tmp
$ mount --bind /mnt/tmp /var/tmp

Bring up the network:

$ ip link set ens18 up
$ dhcpcd
$ ping google.com

Set up a temporary pacman config for parallel downloads and ignoring signature verification, and use that to pacstrap the system:

$ cp /etc/pacman.conf /mnt/pacman-tmp.conf
$ nano /mnt/pacman-tmp.conf
 # set ParallelDownloads = 10
 # set SigLevel = Never
 
$ pacstrap -C /mnt/pacman-tmp.conf /mnt base archlinux-keyring archlinux32-keyring linux linux-firmware vim dhcpcd grub sudo

Enter the chroot, set locale, configure and run pacman, set the root password, and install grub:

$ arch-chroot /mnt
$ rm /pacman-tmp.conf

$ vim /etc/locale.gen
 # uncomment en_US.UTF-8 UTF-8
$ locale-gen
$ echo "LANG=en_US.UTF-8" > /etc/locale.conf
$ ln -sf /usr/share/zoneinfo/America/Chicago /etc/localtime

$ vim /etc/pacman.conf
 # set Architecture = i486
 # otherwise it'll fetch i586, as seen in `pacman -Sy --debug`

$ passwd root

$ grub-install --target=i386-pc /dev/sda
$ grub-mkconfig -o /boot/grub/grub.cfg

Exit the chroot, remove the installation media and reboot.

Get back online:

$ ip link set ens18 up
$ systemctl enable --now dhcpcd@ens18

Create an unprivileged user, let them sudo without password:

$ useradd -m -G wheel -s /bin/bash username
$ EDITOR=vim visudo
  # uncomment this: line
  # %wheel ALL=(ALL:ALL) NOPASSWD: ALL

Log out (Ctrl+D) and log in as your new user.

Build and run windowmaker:

$ sudo pacman -S base-devel git xorg xorg-xinit xterm
$ git clone https://aur.archlinux.org/windowmaker.git
$ cd windowmaker
$ vim PKGBUILD
  # update `arch=('i486' 'i686' 'x86_64')`
$ makepkg -si
$ echo "exec wmaker" > ~/.xinitrc
$ startx

Right click the wallpaper to open the WindowMaker menu, select Run... and type xterm.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment