Arch Linux Installation Guide (using shell scripts, incomplete)

This Arch Linux installation guide is customized for my hardware and my needs. Anyone may use these instructions to setup a system of their own, but they are not guaranteed to work on all hardware nor they are the “official” way of doing things.

Disclaimer: software components, specially the ones that I block out are my personal choice, and anyone else referencing this article should substitute their own choices.

For a generic installations instructions see the official Arch Linux Installation Guide.

Installation done using archlinux-2014.02.01-dual.iso

Preparing for Installation

Boot into the live environment, connect to internet and LAN.

# wpa_passphrase <ESSID> <uber_secret_key>|sed '/#psk=/d' > wifi.conf
# rfkill unblock all
# wpa_supplicant -B -D wext -i <wireles_interface> -c wifi.conf
# dhcpcd <wireles_interface>

Note: rfkill is optional depending on the hardware.

Then mount the pacman cache from server.

# mkdir -p /var/lib/pacman/sync
# mount -o nolock server_name:/path/to/sync /var/lib/pacman/sync
# mount -o nolock server_name:/path/to/cache /var/cache/pacman/pkg

Install git and clone the installation scripts from any of the following repositories.

# pacman -S git
--- output not shown here ---
# cd /tmp
# git clone repo_url

Important: scripts should be in the /tmp so they are shared between live and chroot environments.

Run Install Scripts

# cd archlinux-install
# ./010-prepare-disks.sh sda [sdb]
--- output not shown here ---

When installing packages, the parameter kernel will make the installation to include the Archlinux stock kernel. Omit the parameter when using a custom kernel.

# ./020-install-packages.sh [kernel]
--- output not shown here ---

Chroot into the new system

010 script should have mounted all the necessary partitions for the chroot environment, and installations scripts should also be in /tmp

# chroot /mnt /bin/bash
# cd /tmp/archlinux-install

Run Configuration Scripts

# ./031-configure.sh <machine-name> <username> [rfkill]
--- output not shown here ---

Kernel

Compile and install the kernel.

Create WPA Configuration

If ./wifi.conf already exists in the live environment, it would have been copied by the installation scripts to the correct location. Otherwise create it now.

# wpa_passphrase ESSID uber_secret_key|sed '/#psk=/d' > /etc/wpa_supplicant/wifi.conf

Exit chroot, unmount and reboot

# exit
exit
# ./040-unmount-disks.sh
# reboot

Driver installation and configuration

Sound: ALSA Support

Note: ALSA support must be enabled in the Kernel.

Do the necessary adjustments using alsamixer and test and save settings.

$ alsamixer
$ speaker-test -c 2
--- output not shown here ---
# alsactl store

Optionally, make the necessary changes to the configuration files to load ALSA daemon on boot.

Touch Pad: FSPPS/2 Seltelic

SINX-450

# pacman -S xf86-input-synaptics
--- output not shown here ---

Video: ATI Graphics Card

IBM R52

# pacman -S xf86-video-ati
--- output not shown here ---

Video: GMA500 (Intel)

SINX-450

# pacman -S xf86-video-fbdev
--- output not shown here ---

Add gma500_gfx module to modules array on /etc/mkinitcpio.conf and build initramfs

# mkinitcpio -p linux
--- output not shown here ---

Video: Intel Graphics Card

Acer V5-571PG, Acer 4738, HP/Compaq 6720s

# pacman -S xf86-video-intel
--- output not shown here ---

Note: for Acer V5-571PG see also settings up NVIDIA Optimus

Optionally, add i915 module to modules array on /etc/mkinitcpio.conf and build initramfs

# mkinitcpio -p linux
--- output not shown here ---

Video: NVIDIA Graphics Card

Lenovo 3000 N100

# pacman -S xf86-video-nouveau nouveau-dri
--- output not shown here ---
# cat > /etc/X11/xorg.conf.d/20-nouveau.conf << EOF
> Section "Device"
>   Identifier "Nvidia card"
>   Driver "nouveau"
> EndSection
> EOF

Acer V5-751PG (Optimus)

# yaourt -S xf86-video-intel intel-dri bumblebee nvidia-dkms
--- output not shown here ---
# systemctl enable bumblebeed

WIFI: Broadcom BCM4311

IBM R52

$ yaourt -S b43-firmware rfkill
--- output not shown here ---
# systemctl enable rfkill-unblock\@wifi
might have to add 'RFKILL_UNBLOCK=“wifi”' to /etc/conf.d/rfkill


WIFI: Broadcom BCM43228

SINX-450

$ yaourt -S broadcom-wl-dkms
--- output not shown here ---

GUI

Clone the installation script GIT repository again into the newly installed system, and run the final script.

# ./052-install-gui.sh <de_name>
--- output not shown here ---

Parameter de_name should be either i3 or xfce.


Post install setup

  • Clone bin and vault repositories from the shared volume and run setup script.
  • Clone dotfiles repository from local server and run setup (while in console).
  • Reboot into GUI and run the dotfiles setup again to properly configure environment variables.
  • Do a final reboot.