Skip to content

Instantly share code, notes, and snippets.

@Fleafa
Last active February 2, 2024 17:58
Show Gist options
  • Save Fleafa/b4d8af19fce08b6ac612e87104008065 to your computer and use it in GitHub Desktop.
Save Fleafa/b4d8af19fce08b6ac612e87104008065 to your computer and use it in GitHub Desktop.
Installing Artix Linux on Linx1010B Bay Trail 32bit EFI 64bit CPU

Installing Artix Linux on Linx1010B

Bay Trail 32bit EFI 64bit CPU

Pre-Installation

I've been pleasantly surprised by how few stumbling blocks I've hit getting Artix installed. One of the nice features of Artix is that it is derived from Arch, but eschews systemd in favour of a choice of alternatives. As I am more familiar with openrc from installing Alpine previously, I chose to use it again here.

Create bootable USB

  1. Download Ventoy, and x86_64 Artix Linux openrc ISO.
  2. Create a Ventoy USB with GPT format.
  3. Add artix-base-openrc-VERSIONNUMBER-x86_64.iso to 'Ventoy' partion.

Setup Artix openrc x86_64

Login as artix, password artix. Rotate the framebuffer console! Your neck will thank you.

su
echo 1 | tee /sys/class/graphics/fbcon/rotate
exit

Set the keyboard layout loadkeys uk

Partition your disk

cfdisk /dev/mmcblk1

mmcblk1p1 512M EFI partition mmcblk1p2 24.4G linux filesystem mmcblk1p3 4.1G linux swap

mkfs.ext4 -L ROOT /dev/mmcblk1p2
mkswap -L SWAP /dev/mmcblk1p3
mkfs.fat -F 32 /dev/mmcblk1p1
fatlabel /dev/mmcblk1p1 ESP 

Mount Partitions

swapon /dev/mmcblk1p3
mount /dev/mmcblk1p2 /mnt
mkdir - p /mnt/boot/efi
mount /dev/mmcblk1p1 /mnt/boot/efi

Wi-Fi

sudo rfkill unblock wifi
sudo ip link set wlan0 up
connmanctl
agent on
scan wifi
services
connect wifi_######_xxxxxx
quit

Installation

Update the system clock, install base system & kernel:

rc-service ntpd start
basestrap /mnt base base-devel openrc elogind-openrc
basestrap /mnt linux linux-firmware
fstabgen -U /mnt >> /mnt/etc/fstab
fstabgen -U /mnt/boot/efi >> /mnt/etc/fstab

chroot into the installation and install stuff:

artix-chroot /mnt
pacman -S nano visudo
pacman -S grub os-prober efibootmgr
pacman -S dhcpcd wpasupplicant connman-openrc connman-gtk

Configure the System Clock

Set the Time Zone:

ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
hwclock --systohc

Generate Locales

nano /etc/locale.gen
locale-gen
echo "export LANG='en_UK.UTF-8'" >> /etc/locale.conf
echo "export LC_COLLATE='C'" >> /etc/locale.conf

Boot Loader

grub-install --target=i386-efi --efi-directory=/boot/efi
grub-mkconfig -o /boot/grub/grub.cfg

Users

Set the root password: passwd Create a regular user and password:

useradd -m user
passwd user
usermod ben -G wheel
visudo

Uncomment the line: %wheel ALL=(ALL:ALL) ALL Then type :q & press Enter.

Network configuration

Create the hostname file, add entries to hosts:

echo artix1010 >> /etc/hostname
echo "127.0.0.1 localhost" >> /etc/hosts
echo "::1 localhost" >> /etc/hosts
echo "127.0.1.1 artix1010.localdomain artix1010" >> /etc/hosts
echo "hostname='artix1010'" >> /etc/conf.d/hostname
rc-update add connmand

Reboot the system

Reboot doesn't complete. We'll fix that later. For now:

exit
umount -R /mnt
poweroff

Remove Ventoy USB, and power on again.

Post-installation configuration

Log in as root to complete the post-installation configuration. Change keymap permanently:

sudo nano /etc/conf.d/keymaps

openrc config

Not sure netmount is needed:

rc-update del netmount
sudo nano /etc/rc.conf

This change should speed up boot. At the top of the file, find & set:

rc_parallel="YES"

The following changes should fix reboot. At bottom of the same file, find, set & save:

rc_send_sighup="YES"
rc_timeout_stopsec="10"
rc_send_sigkill="YES" 

Disable rfkill blocking all on boot:

sudo rfkill unblock all
sudo nano /etc/local.d/rfkill.start

Add, and save:

#!/bin/sh
rfkill unblock all
ip link set wlan0 down
ip link set wlan0 up

Make executable:

sudo chmod +x /etc/local.d/rfkill.start

connman was pissing me off, so:

rc-update del connmand
rc-update del connmand sysinit
sudo pacman -S dhcpcd dhcpcd-openrc wpa_supplicant-openrc
rc-update add dhcpcd
rc-update add wpa_supplicant

Power config

sudo pacman -S acpid acpid-openrc tlp tlp-openrc
sudo rc-update add acpid
sudo rc-update add tlp
sudo nano /etc/tlp.conf

I'm testing the following settings; they are not a recommendation!
I'm not entirely convinced it's working yet.

CPU_SCALING_GOVERNOR_ON_AC=performance
CPU_SCALING_GOVERNOR_ON_BAT=schedutil

CPU_SCALING_MIN_FREQ_ON_AC=499800
CPU_SCALING_MAX_FREQ_ON_AC=1832600
CPU_SCALING_MIN_FREQ_ON_BAT=499800
CPU_SCALING_MAX_FREQ_ON_BAT=1832600

CPU_MIN_PERF_ON_AC=0
CPU_MAX_PERF_ON_AC=100
CPU_MIN_PERF_ON_BAT=0
CPU_MAX_PERF_ON_BAT=30

INTEL_GPU_MIN_FREQ_ON_AC=187
INTEL_GPU_MIN_FREQ_ON_BAT=187
INTEL_GPU_MAX_FREQ_ON_AC=646
INTEL_GPU_MAX_FREQ_ON_BAT=369
INTEL_GPU_BOOST_FREQ_ON_AC=646
INTEL_GPU_BOOST_FREQ_ON_BAT=646

START_CHARGE_THRESH_BAT0=80
STOP_CHARGE_THRESH_BAT0=90

The min CPU freq according to tlp-stat -p is 499800, but TLP wiki suggests that lowering freq may not impact battery life so I've left it for now.

Repositories

https://packages.artixlinux.org/

sudo nano /etc/pacman.conf

Append:

[universe]
Server = [https://universe.artixlinux.org/$arch](https://universe.artixlinux.org/$arch)
Server = [https://mirror1.artixlinux.org/universe/$arch](https://mirror1.artixlinux.org/universe/$arch)
Server = [https://mirror.pascalpuffke.de/artix-universe/$arch](https://mirror.pascalpuffke.de/artix-universe/$arch)
Server = [https://artixlinux.qontinuum.space/artixlinux/universe/os/$arch](https://artixlinux.qontinuum.space/artixlinux/universe/os/$arch)
Server = [https://mirror1.cl.netactuate.com/artix/universe/$arch](https://mirror1.cl.netactuate.com/artix/universe/$arch)
Server = [https://ftp.crifo.org/artix-universe/$arch](https://ftp.crifo.org/artix-universe/$arch)
Server = [https://artix.sakamoto.pl/universe/$arch](https://artix.sakamoto.pl/universe/$arch)
sudo pacman -Syu
sudo pacman -S artix-archlinux-support
sudo pacman-key --populate archlinux
sudo nano /etc/pacman.conf

Append:

# Arch
[extra]
Include = /etc/pacman.d/mirrorlist-arch

[community]
Include = /etc/pacman.d/mirrorlist-arch

#[multilib]
#Include = /etc/pacman.d/mirrorlist-arch
sudo pacman -Syu

We'll need this later:

sudo pacman -S wget

Install an AUR helper. I'm trying out paru:

sudo pacman -S git
sudo pacman -S --needed base-devel
cd /tmp
git clone https://aur.archlinux.org/paru.git
cd paru
makepkg -si
paru gendb

Installing Hyprland

Many thanks to Ian Renton and his commenters, as well as all the other posts/articles/guides I've found over the last few weeks!

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