Install Arch Linux

Important things first.

  1. Before you start, make sure you have created a partition, formatted it and ready to install Arch.
  2. In this tutorial, I will use internet via wireless. Make sure you have downloaded the latest version of Arch, because I had terrible luck previously.
  3. Use root as username in multiple terminals
  4. Copy text from blocks from this tutorial (depending upon context) and use sudo whenever you run commands as normal user. You can use sudo su to switch to root user.
  5. If you have dual graphics cards (e.g Intel and AMD) and your laptop’s dicrete graphics card is awake and burning the laptop like fire (in this case AMD with radeon drivers) shut the discrete card.

echo OFF > /sys/kernel/debug/vgaswitcheroo/switch

1. Mount media

If you have downloaded text from this tutorial or others from and kept it in a separate partiton (e.g a ntfs partiton, which we will call D drive in this tutorial), you can mount it using following command.

mkdir -p /media/D
mount /dev/sda3 /media/D

Here /dev/sda3 is my NTFS partition.

2. Create and enable swap.

/dev/sda7 is my existing swap partition from another distribution.

mkswap /dev/sda7
swapon /dev/sda7

3. Mount installation drive

mount /dev/sda1 /mnt

If you have separate partition for /home, this is the time to mount it too (unmount it later when unmounting /dev/sda1)


mkdir /mnt/home
mount /dev/sda2 /mnt/home

4. Wireless

a. Find

iw dev

Interface wlp2s0

You might get another name for the wireless interface, replace that name in all the places where we use wlp2s0 below. If nothing shows up, you are in a little bit of trouble. Use “lspci” command or “dmesg | grep -i wireless” and determine your wireless drive, reboot and search how people have solved this problem while installing Arch. This is such a broad topic, I could not do it justice discussing here. Most of the things are discussed in Start from there. If your driver is not loaded, you might have to download and setup before following the tutorial.

b. Bring it up

ip link set wlp2s0 up

c. Search wireless SSID

iw dev wlp2s0 scan | grep SSID


d. Edit /etc/wpa_supplicant/wpa_supplicant.conf

proto=WPA RSN
key_mgmt=WPA-PSK WPA-EAP

You will have to again create this file later in chrooted environment too (before we restart, I will mention later)

e. Enable dhcp

dhcpd wlp2s0

Simultaneously (above will break, if you take much longer time)

f. Connect

wpa_supplicant -i wlp2s0 -c /etc/wpa_supplicant/wpa_supplicant.conf

5. Install base system

a. Pacstrap

pacstrap  -i /mnt base-devel

Select all and press Enter

b. Generate Fstab

genfstab -U -p /mnt >> /mnt/etc/fstab

c. Chroot

arch-chroot /mnt

d. Set up the local language

nano /etc/locale.gen


en_US.UTF-8 UTF-8

Run following commands to set this

echo LANG=en_US.UTF-8 > /etc/locale.conf
export LANG=en_US.UTF-8

e. Replace zone and clock

ln -s /usr/share/zoneinfo/Country/Location /etc/localtime
hwclock --systohc --utc

Note: Here Country is your country, and Location is your timezone location. E.g /usr/share/zoneinfo/Africa/Abidjan

f. Multilib for 64-bit users

nano /etc/pacman.conf

Uncomment following lines


g. Update Software Repository

pacman -Sy

6. Setup

a. Root password


b. Add user

useradd -m -g users -G wheel,storage,power -s /bin/bash yourusername
passwd yourusername

c. Add sudo

pacman -S sudo

d. Add user to sudo

EDITOR=nano visudo

Scroll and find “%wheel ALL=(ALL) ALL” and uncomment it

e. Install bash-completion

pacman -S bash-completion

f. Hostname

echo yourusername-comp > /etc/hostname

g. Setup grub

pacman -S grub-bios
grub-install --target=i386-pc --recheck /dev/sda
cp /usr/share/locale/en\@quot/LC_MESSAGES/ /boot/grub/locale/

If second command does not execute due to missing file, don’t worry.

h. Grub dual boot (os-prober)

pacman -S os-prober
grub-mkconfig -o /boot/grub/grub.cfg

j. Install wpa_supplicant, iw and configure wpa_supplicant.conf as above (i.e configuration file)

pacman -S wpa_supplicant iw

i. Exit

umount /mnt

7. Post Install Setup

a. Network

You could follow following steps without rebooting, but this is the good time to reboot and see if things works as we planned. After reboot configure and connect to internet using wpa_supplicant as we did during initial section above.

b. Install X11 packages and video drivers

pacman -S xorg-server xorg-xinit xorg-server-utils
pacman -S mesa
pacman -S xf86-video-intel

c. Input devices

pacman -S xf86-input-synaptics

d. Desktop Environments


pacman -S gnome network-manager-applet

systemctl enable gdm.service
systemctl start gdm.service



pacman -S kde  kdeplasma-applets-networkmanagement

systemctl enable kdm.service
systemctl start kdm.service

In this tutorial I went gnome route.

e. Mount ntfs

pacman -S ntfs-3g

Add to /etc/fstab

UUID=18BDC844149627BC          /media/D        ntfs-3g  uid=yourusername,gid=users,umask=0022

f. Install some apps

pacman -S gedit skype lib32-libpulse firefox vlc pavucontrol smplayer transmission-gtk
pacman -S file-roller p7zip unrar zip arj unace nautilus-open-terminal nautilus-actions
pacman -S uget aria2
pacman -S flashplugin

g. Media plugins

pacman -S gstreamer0.10-plugins a52dec faac faad2 flac jasper lame libdca libdv libmad libmpeg2 libtheora libvorbis libxv opus wavpack x264 xvidcore ffmpeg totem-plugin gst-libav

h. Fix font

pacman -S gnome-tweak-tool

Go to gnome-tweak-tool Fonts -> Antialiasing and set it to Rgba

If you still did not like these fonts, look at I found Infinality quite good. See Infinality: the easy way section. If the installer asks about conflicting lib32-freetype2 and similar packages you can choose to replace them in the interactive installer.

i. Install vgaswitcheroo using aur

Download aur archive (e.g systemd-vgaswitcheroo-units.tar.gz, search for vgaswitcheroo aur)

pacman -U systemd-vgaswitcheroo-units-1.2-2-any.pkg.tar.xz

Enable vgaswitcheroo

echo radeon > /etc/modules-load.d/radeon.conf
systemctl enable vgaswitcheroo.service

j. Enable NetworkManager at startup

systemctl enable NetworkManager
systemctl start NetworkManager

k. 32-bit libraries for some games

pacman -S lib32-sdl lib32-openal lib32-alsa-lib lib32-libstdc++5 lib32-intel-dri lib32-libgl lib32-glu

l. PowerSaving
Download and install tlp and tlp-rdw aur

pacman -S git # (Dependency for aur)
pacman -S hdparm wireless_tools rfkill ethtool

While installing aur first try to install dependencies using pacman, if those files are not found there, find them in another aur file and try to install them first.

systemctl start tlp
systemctl enable tlp

To run TLP on suspend/hibernate

# Copy following text into /etc/systemd/system/tlp_start.service

Description=Start the TLP power management script after suspend/hibernation

ExecStart=-/usr/sbin/tlp start


m. Disable auto suspend (optional)

Add following line to /etc/systemd/logind.conf


n. Other package management


pacman -R package_nameg packages  # Single package
pacman -Rs package_name # Dependencies, not required by others
pacman -Rsc package_name # All dependencies (Be careful)


pacman -Syu


pacman -Ss package1 package2
pacman -Qs package1 package2 # Already installed


pacman -Si package_name
pacman -Qi package_name # Locally installed


pacman -U package.tar.xz
pacman -U # Remote

o. Install cinnamon
If you found gnome 3 tiresome and uncomfortable to configure, you can install cinnamon

pacman -S cinnamon cinnamon-control-center cinnamon-screensaver muffin nemo

Reset your Desktop and reboot before login to cinnamon

cd ~/.config
rm -rf compiz-1 dconf evolution gnome-session gtk-3.0 ibus libaccounts-glib nautilus Trolltech.conf update-notifier user-dirs.dirs  user-dirs.locale

I hope, you found this tutorial useful.




Leave a comment

Filed under Uncategorized

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s