Vai al contenuto

Artix Linux installation guide

In inglese perché ao arrangiatevi mannaggiadd

Intro

Welcome to the Artix Linux installation tutorial!

Artix Linux is a Linux distribution based on Arch Linux, but with one very important difference: it does not use Systemd as its init system.

Preparation

Live ISO download and USB preparation

Go on the Artix Linux download page and download the stable ISO file artixlinux-base-{your chosen init}-{YYYYMMDD}-{your cpu architecture}.iso.

Write the ISO on a storage media (USB/CD/DVD):

If you plan on using an USB support to install Artix, this guide recommends you the use of balenaEtcher or ROSA ImageWriter to write it.

Booting into the live ISO

Remember to disable Secure Boot from the UEFI Settings to install and use the distro.

If you are unable to boot after disabling Secure Boot, make sure that your storage configuration is set to AHCI.

Choose the appropriate keyboard layout and timezone, then boot to the live ISO with the correct option.

Login

On the live ISO you have two possibilities regarding login: - User root, password artix - User artix, password artix: all important commands must be prefixed with sudo.

Connecting to the Internet

Using an Ethernet cable

Make sure your Ethernet cable is plugged in correctly; you can check the status of your Ethernet connection via this command:

$ ip addr

You should see your Ethernet connection there, along with your local IP address. If everything shows up correctly, you can move on.

Using Wi-Fi

To check if your Wi-Fi card is enabled you can run this command:

$ connmanctl technologies

You can, then, check for the line that says Powered: True/False.

To enable your Wi-Fi card, in case it is disabled, simply run:

$ connmanctl enable wifi

To scan for nearby Wi-Fi access points, you can issue the following command:

$ connmanctl scan wifi
$ connmanctl services

The second command will output something like this:

*AO MyNetwork               wifi_dc85de828967_68756773616d_managed_psk
    OtherNET                wifi_dc85de828967_38303944616e69656c73_managed_psk 
    AnotherOne              wifi_dc85de828967_3257495245363836_managed_wep
    FourthNetwork           wifi_dc85de828967_4d7572706879_managed_wep
    AnOpenNetwork           wifi_dc85de828967_4d6568657272696e_managed_none

Connecting to an open access point

To connect to an open network, use the second field beginning with wifi_:

$ connmanctl connect wifi_dc85de828967_4d6568657272696e_managed_none

You should now be connected to the network.

Connecting to a protected access point

The commands in this section show how to run connmanctl in interactive mode; it is required for running the agent command. To start interactive mode simply type:

$ connmanctl

You need to register the agent to handle user requests. The command is:

connmanctl> agent on

You now need to connect to one of the protected services. If you were connecting to OtherNET in the example above you would type:

connmanctl> connect wifi_dc85de828967_38303944616e69656c73_managed_psk

The agent will then ask you to provide the passphrase, like so:

 Agent RequestInput wifi_dc85de828967_38303944616e69656c73_managed_psk
   Passphrase = [ Type=psk, Requirement=mandatory ]
   Passphrase?  

Provide the passphrase and then quit the interactive shell:

connmanctl> quit

You should now be connected to the protected access point.

Checking the connection

Check your internet connection with ping:

$ ping artixlinux.org

Hopefully it is all connected; if it is not, please double check your Internet connection steps.

Installation

Disk partitioning and file system creation

You need to figure out which disk you want to install Artix on. blkid is a utility that lists the available disks, and usually one invocation of it is enough to figure out which disk you have to work on.

For simplicity, this guide will assume the disk is /dev/sda.

  • If you need to reinitialize the disk in question (no partition table), the command to issue is:
    # cfdisk -z /dev/sda
    
  • if, on the other hand, you only need to modify the partition table of an existing disk (e.g. dual booting), the command to be issued is:
    # cfdisk /dev/sda
    

The cfdisk partition manager will open. If you are creating the partition table now and are on UEFI or a Legacy BIOS that supports booting from GPT disks, choose gpt; otherwise choose msdos.

Create the following partitions:

  • If you are booting from a legacy BIOS and have chosen a GPT partition table, the first partition must be of type BIOS boot and of size1M; In case you are booting from a legacy BIOS which only boots from MBR (msdos) partition tables, then there is no need to create this partition.
  • If you don't already have it, add the boot partition; it must be about 500 MB and preferably of EFI System type;
  • Add a partition for the root file system (and leave it flagged as Linux filesystem);
  • If you want, you can add a swap partition by creating it and flagging it as Linux swap.

In a GPT partition table, pre-flagging the boot partition as ESP even if you are on Legacy BIOS is useful to make a possible conversion from Legacy BIOS to UEFI easier.

Confirm the changes by issuing the Write command; confirm by typing yes and then quit the partition manager by issuing the commandQuit.

For ease of reference, the disk used in this guide will be /dev/sda and it will be partitioned as follows:

/dev/sda
- /dev/sda1 -> EFI System
- /dev/sda2 -> Linux filesystem
- /dev/sda3 -> Linux swap

Create the file systems now:

The boot partition will be /dev/sda1 so do:

# mkfs.fat -F 32 /dev/sda1

The Linux root partition will be /dev/sda2. If you want a simple ext4 formatted root file system, do:

# mkfs.ext4 /dev/sda2

Then, mount the root filesystem on /mnt:

# mount /dev/sda2 /mnt

However, it is highly recommended to encrypt your Linux installation. Below are the instructions to use LUKS in conjunction with LVM2.

First, encrypt the Linux partition with LUKS. Remember to keep the chosen password safe!

# cryptsetup luksFormat -v -s 512 -h sha512 /dev/sda2

Open the encrypted partition:

# cryptsetup open /dev/sda2 luks_root

Create the logical volume group and also the logical volume of the root filesystem:

# pvcreate /dev/mapper/luks_root
# vgcreate lvmgroup /dev/mapper/luks_root
# lvcreate -l 100%FREE lvmgroup -n root

Finally, format the logical volume using your filesystem of choice (ext4 as an example):

# mkfs.ext4 /dev/lvmgroup/root

And mount it:

# mount /dev/lvmgroup/root /mnt

Wait, you wanted to make a BTRFS root partition? Issue the following command: (You can make a BTRFS encrypted partition; just replace /dev/sda2 with /dev/lvmgroup/root after having followed the tutorial above)

# mkfs.btrfs /dev/sda2

Then, mount the BTRFS partition with:

# mount /dev/sda2 /mnt

Create your subvolumes now. Ideally you'd want one for the root and one for the home, though more can be created (snapshots, pacman cache, etc.)

# btrfs subvolume create /mnt/@root
# btrfs subvolume create /mnt/@home

When you're satisfied, you can unmount the BTRFS partition and mount the subvolumes.

# umount /mnt
# mount -o subvol=/@root /dev/sda2 /mnt
# mkdir /mnt/home
# mount -o subvol=/@home /dev/sda2 /mnt/home

To better manage the BTRFS partition, it's usually okay to mount the root subvolume in a subfolder of your Linux root:

# mkdir /mnt/.btrfs
# mount -o subvolid=5 /dev/sda2 /mnt/.btrfs

You can now proceed to reading the rest of the guide.

The swap partition will be on /dev/sda3, so do:

# mkswap /dev/sda3

Mounting the file systems

If you have created a swap partition, activate it with the command:

# swapon /dev/sda3

Create the directory where you can mount the boot partition filesystem:

# mkdir /mnt/boot

Mount the boot partition file system:

# mount /dev/sda1 /mnt/boot

Installing the distro

Install the base packages:

# basestrap /mnt base base-devel elogind

If you're booting from a BTRFS file system, you need the btrfs-progs package:

# basestrap /mnt btrfs-progs

In case you have encrypted the disk, also install the utilities to manage the LUKS partition:

# basestrap /mnt cryptsetup cryptsetup-{init} lvm2 lvm2-{init}

You have now to choose a Linux kernel to install. Artix Linux provides three kernels: linux, linux-lts and linux-zen.

linux is the mainline kernel; it is regularly updated with each version that comes out directly by the kernel maintainers. It is slightly customized by the Artix developers to make sure it will run properly on Artix Linux.

To install it, run this command:

# basestrap /mnt linux linux-headers

linux-lts is the Long Term Support kernel; it is older than the mainline kernel and it may not offer support for newer hardware, but it is often times more stable and it is also supported for years and years. It is slightly customized by the Artix developers to make sure it will run properly on Artix Linux.

To install it, run this command:

# basestrap /mnt linux-lts linux-lts-headers

linux-zen is a customized fork of the mainline kernel, with patches to boost performance under certain system configurations. If you are a gamer and you are looking for a kernel supporting Fsync, this is it. It receives the same timely updates as the mainline kernel.

To install it, run this command:

# basestrap /mnt linux-zen linux-zen-headers

If your system needs firmware blobs that are not present in the Linux kernel (for example, to get network cards to work properly), you can install the linux-firmware package:

# basestrap /mnt linux-firmware

Install the init system of your choice:

# basestrap /mnt {init} elogind-{init}

For example, to install: - OpenRC:

# basestrap /mnt openrc elogind-openrc

  • Runit:

    # basestrap /mnt runit elogind-runit
    

  • S6:

    # basestrap /mnt s6-base elogind-s6
    

  • Suite66:

    # basestrap /mnt 66 elogind-66
    

Now, generate the partition table:

# fstabgen -U /mnt >> /mnt/etc/fstab

Finally, chroot into the new root file system:

# artix-chroot /mnt

Install configuration

Installing nano as a text editor

From here on you will need a text editor. This guide recommends GNU nano; however the choice is up to the end user.

Install nano:

# pacman -S nano

Edit /etc/profile so that subsequent logins usenano by default: at the end of the file add a line with the following text:

export EDITOR=nano

The same command can be used (and it is recommended to use it) in the current shell to take effect immediately.

For Suite66 users only: Init system configuration

If you have chosen Suite66 as your init system, you need to create its configuration files:

# 66-tree -ncE default
# 66-tree -n boot
# 66-enable -t boot boot@system

Change the boot configuration of Suite66 with this command:

# 66-env -t boot -e $EDITOR boot@system
Inside the editor, change the flags from !no to!yes where necessary.

Suite66 also manages the hostname internally to its configurations; remember to set it.

To apply the newly saved configuration:

# 66-enable -t boot -F boot@system

Locale, time and language configuration

Install the time synchronization service:

# pacman -S chrony chrony-{init}

Add the chrony service to the boot list.

For example - OpenRC:

# rc-update add chrony default

  • Runit:

    # ln -s /etc/runit/sv/chrony /etc/runit/runsvdir/default
    

  • S6:

    # s6-rc-bundle-update add default chrony
    

  • Suite66:

    # 66-enable -t default chrony
    

Set the time zone and create the /etc/adjtime file:

# ln -sf /usr/share/zoneinfo/{Continent}/{City} /etc/localtime
# hwclock --systohc

If you are dual booting with Windows, this last one is likely to have problems showing and operating with the correct time. To solve this, just tell it to use the time in UTC format. Read the ArchWiki article about it.

Edit the /etc/locale.gen file; uncomment the languages and locales you will use.

It is advisable to uncomment en_US.UTF-8 even if you will not be using your computer in the American English language; this is because many non-internationalized applications depend on this language to communicate with the user.

Generate locales with:

# locale-gen

Create a /etc/locale.conf file and type in it:

export LANG="en_US.UTF-8" <-- your language
export LC_COLLATE="C"

If you have chosen OpenRC as your init system, edit the /etc/conf.d/keymaps file:

keymap="us"       <-- your keyboard layout
windowkeys="YES"  <-- type YES if you are using a common Windows keyboard

You then need to make a new file to define the virtual console font and keymap. Create /etc/vconsole.conf:

KEYMAP=us
FONT=default8x16

If you want to see how other fonts may look like, take a look at them here.

If you plan to use a graphical X.Org session, you would do well to configure the keyboard layout now.

Create the file /etc/X11/xorg.conf.d/00-keyboard.conf:

Section "InputClass"
        Identifier "system-keyboard"
        MatchIsKeyboard "on"
        Option "XkbLayout" "en" <-- your keyboard layout
EndSection

Hostname configuration

Choose a hostname for your machine.

Edit the following files:

Edit /etc/hostname:

myhostname

Edit /etc/hosts:

127.0.0.1 localhost
::1       localhost
127.0.1.1 myhostname

If you have chosen OpenRC as your init system, edit /etc/conf.d/hostname:

# Set to the hostname of this machine
hostname="myhostname"

Microcode package installation for Intel and AMD CPUs

Both Intel and AMD frequently release microcode updates for their processors; it is therefore important to keep your system as updated as possible to avoid random crashes and stability problems.

To install the latest microcode package:

# pacman -S amd-ucode    <-- AMD CPUs
# pacman -S intel-ucode  <-- Intel CPUs

The boot loader is responsible for loading the updated microcode. For more information see this ArchWiki article.

Boot loader configuration

There are various ways to load the Linux kernel at boot and all are well explained in this ArchWiki article.

Prepare to install a bootloader

If you're on UEFI, you need to install efibootmgr:

# pacman -S efibootmgr

If you are encrypting the disk, modify the configuration files to support boot decryption. - Edit /etc/mkinitcpio.conf: Add encrypt andlvm2 to the HOOKS array between the block and filesystem entries. - Make the new configuration effective with:

# mkinitcpio -P

Option 1: GRUB

Install the packages needed to install and configure GRUB:

# pacman -S grub
# pacman -S os-prober  <-- If you're dual booting Windows

Install GRUB: - If you're on UEFI:

# grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=artix
- If you're on BIOS:
# grub-install --recheck /dev/sda

If you are encrypting the disk, modify the configuration files to support boot decryption. - Modify /etc/default/grub:

GRUB_CMDLINE_LINUX=”cryptdevice=/dev/sda2:luks_root”

If you are dualbooting with Windows or any other operating system, you have to make sure GRUB will call os-prober; to do so, add this line on the configuration file at /etc/default/grub:

GRUB_DISABLE_OS_PROBER=n

Generate the GRUB configuration file:

# grub-mkconfig -o /boot/grub/grub.cfg

To know more about GRUB, please read the ArchWiki article.

Option 2: rEFInd

Install the packages needed to install and configure rEFInd:

# pacman -S refind

Then, you can install rEFInd. Just issue this command:

# refind-install

Now, since you're in a chroot, rEFInd would have surely misconfigured some stuff in its Linux configuration file. To make sure that we can boot, we'd need to completely rewrite the file at /boot/refind_linux.conf with something that makes sense to us.

Those are sensible defaults to use:

"Boot with default settings" "rw root=UUID=<uuid> rootflags=<flags> initrd=<cpu>-ucode.img initrd=initramfs-%v.img loglevel=3 quiet"
"Boot with fallback initramfs" "rw root=UUID=<uuid> rootflags=<flags> initrd=<cpu>-ucode.img initrd=initramfs-%v-fallback.img loglevel=3 quiet"

Remember to put your variables correctly!

You can get your UUID by doing:

# blkid -o export -s UUID /dev/sda2 | grep UUID=

On BTRFS, however, you can do this instead:

# echo UUID=$(btrfs filesystem show / | grep uuid | cut -d" " -sf5)

You need your subvolume name (or ID) to properly boot on BTRFS, if your default subvolume is not your root file system.

# btrfs subvolume show / | grep Name | tr -s '\t' | cut -f3

Effectively, you can use commands to make all the configuration.

# Uuid=$(blkid -o export -s UUID /dev/sda2 | grep UUID=)
# Cpu=$(cat /proc/cpuinfo | grep AuthenticAMD > /dev/null && echo amd || echo intel)

// ONLY IF USING BTRFS
# Subvol=$(btrfs subvolume show / | grep Name | tr -s '\t' | cut -f3)

// IF NOT USING BTRFS
# echo "\"Boot with default settings\" \"rw root=$Uuid initrd=$Cpu-ucode.img initrd=initramfs-%v.img loglevel=3 quiet\"" > /boot/refind_linux.conf
# echo "\"Boot with fallback initramfs\" \"rw root=$Uuid initrd=$Cpu-ucode.img initrd=initramfs-%v.img loglevel=3 quiet\"" >> /boot/refind_linux.conf

// IF USING BTRFS
# echo "\"Boot with default settings\" \"rw root=$Uuid rootflags=subvol=$Subvol initrd=$Cpu-ucode.img initrd=initramfs-%v.img loglevel=3 quiet\"" > /boot/refind_linux.conf
# echo "\"Boot with fallback initramfs\" \"rw root=$Uuid rootflags=subvol=$Subvol initrd=$Cpu-ucode.img initrd=initramfs-%v.img loglevel=3 quiet\"" >> /boot/refind_linux.conf

Installation of a network manager

This guide recommends NetworkManager as it is supported by many desktop environments including GNOME, KDE, MATE and XFCE.

To install it:

# pacman -S networkmanager networkmanager-{init}
# pacman -S dnsmasq      <-- to add Wi-Fi AP (hotspot) support

Add NetworkManager to the list of startup services.

Alternative: connman

Install connman together with a DHCP client:

# pacman -S connman connman-{init} dhclient

Add connmand to the list of startup services.

Also install connman-gtk (if you will use GNOME, XFCE, MATE) orcmst (if you will use KDE, LXQt)

# pacman -S connman-gtk  <-- GTK-based DEs
# pacman -S cmst         <-- Qt-based DEs

If you are going to use a wireless network card, you will also need wpa_supplicant:

# pacman -S wpa_supplicant wpa_supplicant-{init}

Optional: Installing a system logger

Install Syslog-ng:

# pacman -S syslog-ng syslog-ng-{init}

Add syslog-ng to the list of startup services.

Optional: Install Logrotate

The system log, if not kept clean, can get pretty heavy in disk usage.

That is why it is recommended to install Logrotate:

# pacman -S logrotate

Install Filesystem in Userspace

Filesystem in Userspace allows you to mount external media without having to invoke any commands via root.

To install it issue the following command:

# pacman -S fuse2 fuse3 fuse-{init}

Add fuse to the list of startup services.

User configuration

Change the root password:

# passwd

After that, create a user that you will use for your normal operations:

# useradd -m username

Set a password for this new user:

# passwd username

Add this user to the wheel group (so it can operate as an administrator):

# usermod -a -G wheel username

Other useful groups are lp, storage, input, games, rfkill, optical, disk.

The audio and video groups are useful to communicate to audio and video related hardware.

sudo configuration

You need to configure sudo so that it grants users of the wheel group the ability to run commands as root.

# visudo

At around three quarters of the file, you will find this line; uncomment it:

# %wheel ALL=(ALL) ALL <-- uncomment this line

X.Org installation

X.Org is the de facto standard server for graphical sessions on Linux; it can be installed via:

# pacman -S xorg

Please read archwiki's article on X for more information about X.Org and/or X11

Optional: NVIDIA drivers installation (for NVIDIA GPUs)

From the command line, install nvidia (or nvidia-lts if you're using a LTS kernel version):

# pacman -S nvidia

If you have a laptop with dual GPU (e.g. Intel integrated Graphics and NVIDIA Graphics) you'll also need nvidia-prime

# pacman -S nvidia-prime

Desktop enviroment and login manager installation

You will find instructions on how to install the supported desktop environments and the corresponding login managers below.

Please note, the preferred login manager is always the first one below the chosen desktop environment.

KDE Plasma

To install Plasma and KDE's applications, you will need the plasma and kde-applications packages' groups respectively:

# pacman -S plasma
# pacman -S kde-applications

it is recommended to not install all the packages in the kde-applications group, but rather only a user-chosen subset; here are some recommendations for the average user:

ark
dolphin
dolphin-plugins
ffmpegthumbs
gwenview
kate
kcalc
kdeconnect
kdegraphics-thumbnailers
kdesdk-kioslaves
kdesdk-thumbnailers
kdialog
kfind
kio-extras
kio-gdrive
konsole
kwalletmanager
okular
spectacle
zeroconf-ioslave

SDDM (Simple Desktop Display Manager) installation
# pacman -S sddm sddm-{init}

Add sddm to the list of startup services.

MATE

To install the MATE desktop environment, you can install the packages in the mate and mate-extra groups:

# pacman -S mate mate-extra

XFCE4

To install the XFCE4 desktop environment, you can install the packages in the xfce4 and xfce4-goodies groups:

# pacman -S xfce4 xfce4-goodies

LightDM (display manager) installation
# pacman -S lightdm lightdm-{init}

Add lightdm to the list of startup services.

LXQt

To install the LXQt desktop environment, you can install the packages in the lxqt group:

# pacman -S lxqt

LXDM (Lightweight X11 Display Manager) installation
# pacman -S lxdm lxdm-{init}

Add lxdm to the list of startup services.

GNOME

To install the GNOME desktop environment, you can install the packages in the gnome group:

# pacman -S gnome

If you want extra applications (mail client, GNOME Tweaks, and a set of games) you can install the packages in the gnome-extra group:

# pacman -S gnome-extra

Note: GNOME support is still in the testing phase. Install GNOME at your own risk.

GDM (GNOME Display Manager) installation
# pacman -S gdm gdm-{init}

Add gdm to the list of startup services.

Exiting the chroot

You can exit the chroot simply by exiting the interactive shell, like so:

# exit

Unmounting the partitions

You can unmount all the partitions you previously mounted by using umount and the -R (recursive) option:

# umount -R /mnt

Reboot

Issue the reboot command.

Remember to remove the installation medium.

Post-installation

Turn off beeping

Just for interactive shells

Edit /etc/inputrc:

# do not bell on tab-completion
set bell-style none             <-- uncomment

Or globally

Create the file /etc/modprobe.d/blacklist.conf with the following text inside:

blacklist pcspkr

Install the Bluetooth daemon

Install the BlueZ package:

$ sudo pacman -S bluez bluez-{init}

Add bluetoothd to the list of startup services.

You might need a frontend if you are using MATE or other GTK+ desktop environments; if that's the case, you can install Blueman:

# pacman -S blueman

Install the printing daemon (CUPS)

Install the CUPS packages:

$ sudo pacman -S cups libcups cups-filters cups-{init}

Add cupsd to the list of startup services.

Add your user to the cups group:

$ sudo usermod -a -G cups $USER

And install system-config-printer, a GTK frontend:

$ sudo pacman -S system-config-printer

NOTE: Not installing this package could lead to this error: The name org.fedoraproject.Config.Printing was not provided by any .service files

If KDE Plasma is your desktop environment, it is recommended to install print-manager:

$ sudo pacman -S print-manager

Install the printer scanner daemon

Install the SANE package(s):

pacman -S sane sane-frontends sane-{init}

Add saned to the list of startup services.

install Samba for local network file sharing

Install Samba:

$ sudo pacman -S samba samba-{init}

Download the example Samba configuration file from the Git repo:

$ sudo curl -o /etc/samba/smb.conf "https://git.samba.org/samba.git/?p=samba.git;a=blob_plain;f=examples/smb.conf.default;hb=HEAD"

Add smb to the list of startup services.

Create a sambashare group:

$ sudo groupadd sambashare

Add your user to the sambashare group:

$ sudo usermod -a -G sambashare $USER

If KDE Plasma is your desktop environment, it is recommended to install kdenetwork-filesharing:

$ sudo pacman -S kdenetwork-filesharing

Configure Pacman

It's possible to edit /etc/pacman.conf to personalize it's behaviour:

  • Uncommenting the Color option makes the Pacman output colored and more readable;
  • Uncommenting the [lib32] section (and relative include) you can enable multilib support;

If any modifications are made to Pacman's list of repositories, it is mandatory to refresh the database by issuing this command:

# pacman -Sy

Optional: Add the Universe repository

You can add Artix's Universe repository to expand your package selection. Add these lines to your /etc/pacman.conf:

[universe]
Server = https://universe.artixlinux.org/$arch

The Universe repo is not first party nor third party. It is maintained by trusted people, but it is not officially supported. Use it at your own risk.

Optional: Add Arch Linux's repos

NOTE: The Artix team has chosen NOT to include Arch's repos as a fallback; this is due to a possible accidental installation of Systemd-dependent packages from those repositories. This can lead to a corrupted, often unusable system. Before enabling these repos, it is highly recommended to try and use the system as it comes.

If you need the Arch Linux repositories, first install the artix-archlinux-support package and then append the following to /etc/pacman.conf:

#
# ARCHLINUX
#

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

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

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

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

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

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

If you use the lib32 repo(s) you can also install lib32-artix-archlinux-support and uncomment multilib and the relative Include statement.

Populate the Pacman keyring with Arch Linux contributors' public keys:

# pacman-key --populate archlinux

Finally, refresh the database:

# pacman -Sy

Speed up the compilation of AUR packages

It is possible to speed up significantly the compilation of most AUR packages, because we can specify the number of parallel jobs that GNU Make (and some Make-dependent building systems, like Ninja) can spawn; for more information about GNU Make, refer to the manpage (man make).

To achieve this, edit /etc/makepkg.conf:

Search for the MAKEFLAGS variable, and uncomment it; then change the value from -j2 to -j + the cores of your CPU.

For example

MAKEFLAGS="-j16"

To get the number of cores that are on your CPU:

$ nproc --all

Optional: Configure the regulatory domain of your wireless card

Install the crda package:

$ sudo pacman -S crda

Edit /etc/conf.d/wireless-regdom: you need to uncomment the WIRELESS_REGDOM line containing your country prefix.

For example

WIRELESS_REGDOM="US"

NOTE: Some wireless cards (expecially Intel's) might arbitrarily choose which regulatory domain to use.

Troubleshooting

Steam does not remap non-Xbox controllers to the Xbox layout

Create the file /etc/modules-load.d/uinput with the following text inside:

uinput

mDNS service(s) cannot be found; a service cannot advertise itself via mDNS

Install the Avahi package:

$ sudo pacman -S avahi avahi-{init}

And add avahi-daemon to the list of startup services.

KDE Plasma does not automatically refresh the application list

Trigger a manual refresh:

$ kbuildsycoca5