April 10, 2020

Install Arch on XPS13

arch linux installation dell xps13

Dell XPS 13 9343

This machine was the first of the XPS lineup to sport an InfinityEdge display with ultra-thin bezels, it comes with a Broadcom BCM4352 802.11ac Wireless Network Adapter. This page describes the requirements and installation process for Arch Linux on the XPS 13.

USB ISO image

Download the latest ISO image for Arch Linux from https://www.archlinux.org/download/ or http://mirror.rackspace.com/archlinux/iso/

If you are using windows I recommend Rufus to write the ISO to a USB Stick, Rufus can be downloaded here: https://rufus.ie/ for Linux you can write the iso image to the USB medium with "sudo dd bs=4M if=path/to/input.iso of=/dev/sdb1 conv=fdatasync status=progress" where sd<?> is the usb device

Insert the USB stick with the ISO image, switch on the machine and hit F2 to get into the bios menu, make sure you have UEFI boot on and secure boot off.
By using the F12 key during boot you can select the USB stick to boot from.

Tethering with USB

For connecting to the internet connect your Android phone with a USB cable, enable USB tethering. To connect first find the right interface with ifconfig -a or ip addr besides the loopback interface you should see the USB interface, start the dhcp daemon to get an IP address for the interface by running dhcpcd <interface-name>

ping 8.8.8.8 should work when tethering is set up right.

Partitioning

This is just a suggestion for the partition table on the 250G SSD. Find the name of the block device with lsblk, start parted /dev/sda The whole partitioning process:

 mklabel gpt
 mkpart ESP fat32 1 MiB 513MiB
 set 1 boot on
 mkpart primary ext4 513 MiB 30 GiB
 mkpart primary linux-swap 30GiB 38GiB
 mkpart primary ext4 38GiB 100%
 quit

format the partitions

 mkfs.ext4 /dev/sda2
 mkfs.ext4 /dev/sda4
 mkfs.fat -F32 /dev/sda1
 mkswap /dev/sda3
 swapon /dev/sda3

mount the partitions

 mount /dev/sda2 /mnt
 mkdir /mnt/boot
 mount /dev/sda1 /mnt/boot
 mkdir /mnt/home
 mount /dev/sda4 /mnt/home

the basic packages we need

 pacstrap -i /mnt base base-devel
 pacstrap -i /mnt linux linux-headers linux-firmare
 pacstrap -i /mnt vi

create the fstab file: genfstab -U /mnt > /mnt/etc/fstab

chroot into the environment for the next step arch-chroot /mnt /bin/bash

setup boot loader

 bootctl --path=/boot install
vi /boot/loader/loader.conf

should look like:

 default arch
 timeout 3
 editor 0

create the arch config: first we need the UUID of the boot partition

  blkid -s PARTUUID -o value /dev/sda2
  vi /boot/loader/entries/arch.conf

should look like:

 title Arch Linux
 linux /vmlinuz-linux
 initrd /initramfs-linux.img
 options root=PARTUUID=419a86d8-d5b5-4bae-b8ba-107351079dec rw
 vi /etc/mkinitcpio.conf
should look like:
 MODULES=(nvme)
171  cat /etc/fstab
172  ls /dev/disk/by-uuid/

update the bootloader

 bootctl update
 mkinitcpio -p linux

setup more software

    74  vi /etc/locale.gen
   75  locale-gen
   76  echo LANG=en_US.UTF-8 > /etc/locale.conf
   77  export LANG=en_US.UTF-8
   78  tzselect
   79  ln  -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime
   80  hwclock --systohc --utc
   81  echo snoopy > /etc/hostname
 pacman -S broadcom-wl-dkms
 pacman -S xfce xfce-googdies lightdm lightdm-gtk-greeter
 pacman -S git
 pacman -S accountsservice

 pacman -S ttf-liberation ttf-bitstream-vera ttf-droid ttf-dejavu gst-libav ttf-ubuntu-font-family ttf-anonymous-pro

taking care of the wlan card

 git clone https://aur.archlinux.org/yay-git.git
 cd yay-git/
 makepkg -si
 yay -S bcm20702a1-firmware
 ls /lib/firmware/brcm/BCM20702A1-0a5c-216f.hcd

some links