ASUS ZenBook UX330UA ArchLinux Setup
I recently got the ASUS ZenBook UX330UA-AH54, which is a really awesome machine. I've been using it for one month now, and its beautiful.
So first thing I did with the laptop was install archlinux (dual boot with windows). These are the steps I took to set up archlinux. Most of these steps can be found in one form or another on the archlinux wiki
Hard Drive Preparation
I partitioned the hard drive using windows tools.
I then downloaded archlinux iso file in another machine that had archlinux, and attached a flash drive. To setup the iso file, I did this from the terminal:
dd if=archlinux.iso of=/dev/sdb bs=4M status=progress
I then connected this flash drive to the Asus laptop and did a reboot. When the Asus logo shows, I pressed <Esc> so that I could choose which bootable media to use. I selected the flash drive and unfortunately got the error:
Invalid signature detected. Check secure boot policy in setup.
I then went to set up and disabled secure boot policy.
I successfully managed to enter the archlinux environment. I verified uefi mode by using:
ls /sys/firmware/efi/efivars
This gave me some content, thus it was fine.
Internet Connection
I connected to the internet via wifi. To do this:
iw dev #to get name of wireless interface. I got wlp2s0
ip link set wlp2s0 up #I had to activate the kernel interface
ip link show wlp2s0 #To check if activated. There was an UP between the <> info
iw dev wlp2s0 scan | less #list wifi Access Points in area
wpa_supplicant -i wlp2s0 -c <(wpa_passphrase "SSID" "keytoaccesswifi") -B #connect to wifi
iw dev wlp2s0 link #to check if associated
dhcpd wlp2s0 #to get up address from wifi
System Clock
To update the system clock, I did:
timedatectl set-ntp true
timedatectl status # checks the time
Initial Setup
To install arch, I had to view the partitions and the sizes so that I could choose the correct one.
fdisk -l
After getting the correct one:
mkfs.ext4 /dev/sda4 #format partition as ext4
mount /dev/sda4 /mnt #mount partition to start working with it
I then set up some basic packages for arch:
pacstrap /mnt base base-devel
I generated the fstab:
genfstab -U /mnt >> /mnt/etc/fstab
Now change into the new file system root:
arch-chroot /mnt
I set the time zone for my system:
ln -sf /usr/share/zoneinfo/Africa/Nairobi /etc/localtime
hwclock --systohc
For the time zone once '/user/share/zoneinfo' has been type, clicking tab will autocomplete.
I set the locale by uncommenting the 'en_US.UTF-8 UTF-8' and the 'en_GB.UTF-8 UTF-8' lines in the /etc/locale.gen file and then ran:
locale-gen
To set the default locale, I create a file /etc/locale.conf and added LANG=en_US.UTF-8 to it.
echo LANG=en_US.UTF-8 >> /etc/locale.conf
The Hostnames file /etc/hosts was already existing so I did not edit it. I then set the root password by running:
passwd
Bootloader installation
I first installed grub and efibootmgr.
pacman -S grub efibootmgr
I needed parted so that I could know my ESP partition ( EFI system partition). The actual partition will have the name shown. So to do this:
sudo pacman -S parted
parted /dev/sda print # to know which was my ESP partition
After getting the ESP partition, I mount /boot/efi onto it and install grub.
mount /dev/sda1 /boot/efi
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub
pacman -S intel-ucode #enabling microcode updates
grub-mkconfig -o /boot/grub/grub.cfg
I then reboot the machine. I get an error at the login prompt but it can be ignored.
User Creation
To create a user:
useradd -m -G wheel -s /bin/bash username
passwd username
I then set up sudo on the laptop:
pacman -S sudo
EDITOR=vi visudo #and uncommnet the line %WHEEL ALL= (ALL) ALL
The line containing "%WHEEL ALL= (ALL) ALL" is uncommented.
Window Managers and Other Applications
I first set up xdg-dirs, and the run xdg-user-dirs-update. I then open the file .config/user-dirs.dirs and set the values to how I want my home directory to be organised.
I then copy the /etc/xdg/user-dirs.code file to the .config folder and set enabled to false.
I then create all my directories as pwer user-dirs.dirs manually using mkdir.
sudo pacman -S xdg-user-dirs
run xdg-user-dirs-update
vi .config/user-dirs.dirs
cp /etc/xdg/user-dirs.conf ~/.config/
vi .config/user-dirs.conf #change enabled=False
I then install vim and tmux and configure it as per the link .
sudo pacman -S gvim tmux
I also set up powerline fonts as found here to help in vim_airline setup.
I then install zsh:
sudo pacman -S zsh zsh-completions
And then setup oh-my-zsh as per the instructions here: zshlink
I then install xorg group, sfce4 and xfce4-goodies for one of my desktop environments.
I also install i3 as my main window manager.
Other Installs
sudo pacman -S python python2 python-pip python2-pip
sudo pacman -S kicad kicad-library kicad-library-3d
sudo pacman -S openssh
sudo pacman -S mtp gvfs-mtp
I also use ledger to manage my finances so I have to install it. Ledger is only found in AUR so I first installed yaourt from instructions found here :yaourt
After that I install ledger with:
yaourt -S ledger
The following installs are requirement for my i3 config to work properly:
sudo pacman -S redshift feh scrot dmenu
sudo pacman -S python-gobject python-xdg librsvg #required for redshift-gtk
For xfce4, I added the following shortcuts:
exo-open --launch TerminalEmulator Super+Return
xfce4-terminal --drop-down F12
To switch capslock and escape, I added this to my .xinitrc:
setxkbmap -option caps:swapescape
The audio by default was muted so to fix this I did the following:
sudo pacman -S alsa-utils
alsamixer
#went to master and unmuted by pressing m
And with that I was comfortable enough with my archlinux setup.