Installing Arch Linux is not too hard, but there are a few tricks that will help new users to get everything working.

If you want me to post more tips on Arch installation, leave a comment.

Table of Contents

Install a text editor

During installation process you will have to edit some files, so you will need to install a text editor, like nano.

pacman -S nano

Make bootloader to recognize other installed operating systems

  • When you are going to install grub:
    pacman -S grub efibootmgr os-prober ntfs-3g
    
  • Mount other systems partitions, for example:
    mkdir /mnt/windows
    mount /dev/sda4 /mnt/windows
    
  • Run grub-install.
    grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB
    
  • Open /etc/default/grub and add or uncomment this line:
    GRUB_DISABLE_OS_PROBER=false
    
  • Create the main configuration file.
    grub-mkconfig -o /boot/grub/grub.cfg
    
  • Check that all OS are showed in the command output.

Install a network manager (in order to have Internet access)

pacman -S networkmanager
# Once you've finished the installation and after you've restarted the system
systemctl start NetworkManager
systemctl enable NetworkManager

Install sudo and create a user

# as root
pacman -S sudo
useradd -m <username>
passwd <username>
# Type a password for your new user

groupadd sudo
usermod -aG sudo <username>
nano /etc/sudoers
# Uncomment following line
%sudo   ALL=(ALL) ALL

Log out and log in again.

Installing a desktop (XFCE)

sudo pacman -S xorg-server xfce4 xfce4-goodies lightdm lightdm-gtk-greeter
sudo systemctl enable lightdm
# Reboot

Change keyboard layout for the desktop

localectl set-x11-keymap <keymap>
# Log out and log in

Enabling audio (pipewire)

sudo pacman -S pipewire pipewire-pulse gst-plugin-pipewire
systemctl --user enable pipewire.service pipewire-pulse.service
# Reboot

Fixing SD card reader error (Broadcom BCM57765/57785)

Create a file named “sdcard-fix” in /bin and paste this:

#!/bin/bash

rmmod sdhci-pci sdhci
modprobe sdhci debug_quirks2=4
modprobe sdhci-pci

Make the file executable.

sudo chmod +x /bin/sdcardfix

Execute the file to confirm that works.

Create a service file (/lib/systemd/system/sdcardfix) and paste this:

[Unit]
Description=Fix SDCard reader error
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=on-failure
RestartSec=1
User=root
ExecStart=sdcard-fix

[Install]
WantedBy=multi-user.target

Reload, start and enable service.

sudo systemctl daemon-reload
sudo systemctl start sdcardfix
sudo systemctl enable sdcardfix

Installing an all-in-one HP printer

  • Install cups, hplip.
  • Start and enable cups service.
  • Find your printer’s usb URI with lpinfo -v:
    $ sudo lpinfo -v
    usb://HP/PSC%201500%20series?serial=XXXXXXXXXXXXX&interface=1
    
  • Search your printer model with lpinfo -m and grep:
    $ lpinfo -m | grep 1510
    drv:///hp/hpcups.drv/hp-deskjet_1510_series.ppd HP Deskjet 1510 Series, hpcups 3.21.8
    lsb/usr/HP/hp-deskjet_1510_series.ppd.gz HP Deskjet 1510 Series, hpcups 3.21.8
    
  • Add a new queue with lpadmin.
    lpadmin -p <queue_name> -E -v <uri> -m <model>
    # lpadmin -p HP_1510 -E -v "usb://HP/PSC%201500%20series?serial=XXXXXXXXXXXXX&interface=1" -m drv:///hp/hpcups.drv/hp-deskjet_1510_series.ppd 
    
  • List printer options.
    lpoptions -p <queue name> -l
    
  • Set an option.
    lpoptions -p <queue name> -o <option>
    # lpoptions -p HP_1510 -o PageSize=A4
    

Installing fonts

You can use pacman to search and install fonts or you can download a font (from Google Fonts for example) and then copy it to ~/.local/share/fonts/ for a single-user installation, or /usr/local/share/fonts/ for a system-wide installation. Subdirectory structure depends on the user preferences, but a good example could be the following:

/usr/local/share/fonts/
└── ttf
    ├── AnonymousPro
        ├── Anonymous-Pro-B.ttf
        ├── Anonymous-Pro-I.ttf
        └── Anonymous-Pro.ttf

Installing asian fonts

sudo pacman -S noto-fonts-cjk