Archlinux Install Notes
Lenovo i7 Thinkpad (quad core laptop)

(mostly just following Archlinux install wiki with added notes where needed)

This file has been updated to be a bit more of a generic install guide / tips and tricks
after another Desktop install on November, 2021

Verify the boot mode

If UEFI mode is enabled on an UEFI motherboard, Archiso will boot Arch Linux accordingly via systemd-boot. To verify this, list the efivars directory:

# ls /sys/firmware/efi/efivars

If the directory does not exist, the system may be booted in BIOS or CSM mode. Refer to your motherboard's manual for details.

Connect to the Internet

The installation image enables the dhcpcd daemon on boot for wired network devices. The connection may be checked with:

# ping archlinux.org

If no connection is available, stop the dhcpcd service with systemctl stop dhcpcd@ and pressing Tab. Proceed with Network configuration for wired devices or Wireless network configuration for wireless devices.
This is a laptop with wifi so; For wireless settings, you can use wifi-menu [just select essid to connect to]

Update the system clock

Use timedatectl(1) to ensure the system clock is accurate:

# timedatectl set-ntp true

To check the service status, use timedatectl status.

Partition the disks

When recognized by the live system, disks are assigned to a block device such as /dev/sda or /dev/nvme0n1. To identify these devices, use lsblk or fdisk.

# fdisk -l

Results ending in rom, loop or airoot may be ignored.

The following partitions are required for a chosen device:

Note: Swap space can be set on a separate partition or a swap file.

To modify partition tables, use fdisk or parted.

# fdisk /dev/sda

See Partitioning for more information.

Note: If you want to create any stacked block devices for LVM, disk encryption or RAID, do it now.

I only created 2 partitions, one for / [the root directory], and the other for swap

Format the partitions

Once the partitions have been created, each must be formatted with an appropriate file system. For example, to format the root partition on /dev/sda1 with ext4, run:

# mkfs.ext4 /dev/sda1

If you created a partition for swap (for example /dev/sda3), initialize it with mkswap:

# mkswap /dev/sda3
# swapon /dev/sda3

See File systems#Create a file system for details.

Mount the file systems

Mount the file system on the root partition to /mnt, for example:

# mount /dev/sda1 /mnt

Create mount points for any remaining partitions and mount them accordingly:

# mkdir /mnt/boot
# mount /dev/sda2 /mnt/boot

genfstab will later detect mounted file systems and swap space.

Installation

Select the mirrors

Packages to be installed must be downloaded from mirror servers,
which are defined in /etc/pacman.d/mirrorlist.
On the live system, all mirrors are enabled, and sorted by their
synchronization status and speed at the time the installation image was created.

The higher a mirror is placed in the list, the more priority it is given when
downloading a package. You may want to edit the file accordingly,
and move the geographically closest mirrors to the top of the list,
although other criteria should be taken into account.

This file will later be copied to the new system by pacstrap, so it is worth getting right.

Install the base packages

Use the pacstrap script to install the base package group:

# pacstrap /mnt base

This group does not include all tools from the live installation, such as btrfs-progs or specific wireless firmware; see packages.both for comparison.

To install packages and other groups such as base-devel, append the names to pacstrap (space separated) or to individual pacman commands after the #Chroot step.

Ok, rather than just installing the base apps, here is what I did (keep in mind, it’s a laptop):
pacstrap /mnt base linux linux-firmware grub network-manager-applet xorg xfce4 xfce4-goodies vi vim 
alsa-utils udisks2 firefox sddm gvfs pavucontrol pulseaudio.alsa openssh sudo
Add: intel-ucode (if cpu is intel)

Configure the system

Fstab

Generate an fstab file (use -U or -L to define by UUID or labels, respectively):

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

Check the resulting file in /mnt/etc/fstab afterwards, and edit it in case of errors.

Chroot

Change root into the new system:

# arch-chroot /mnt

Time zone

Set the time zone:

# ln -sf /usr/share/zoneinfo/Region/City /etc/localtime

Run hwclock(8) to generate /etc/adjtime:

# hwclock --systohc

This command assumes the hardware clock is set to UTC. See Time#Time standard for details.

In our case: ln -sf /usr/share/zoneinfo/US/Central /etc/localtime

Locale

Uncomment en_US.UTF-8 UTF-8 and other needed localizations in /etc/locale.gen, and generate them with:

# locale-gen

Set the LANG variable in locale.conf(5) accordingly, for example:

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

If you set the keyboard layout, make the changes persistent in vconsole.conf(5):

/etc/vconsole.conf
KEYMAP=de-latin1
I did not change keyboard layout, defualt is fine for us in the USA

Hostname

Create the hostname file:

/etc/hostname
myhostname   (hostname of your choosing)

Add matching entries to hosts(5):

/etc/hosts
echo lenovo-i7 > /etc/hostname

Network configuration

The newly installed environment has no network connection activated by default. See Network configuration#Network managers.

For Wireless configuration, install the iw and wpa_supplicant packages, as well as needed firmware packages. Optionally install dialog for usage of wifi-menu.



Since we have NetworkManager-applet, just enable NetworkManager with command:
systmectl enable NetworkManager

(after reboot, Network Manager will be running)

Initramfs

Creating a new initramfs is usually not required, because mkinitcpio was run on installation of the linux package with pacstrap.

For special configurations, modify the mkinitcpio.conf(5) file and recreate the initramfs image:

# mkinitcpio -p linux
Usually not needed, I usually skip above Initramfs section.

Root password

Set the root password:

# passwd

Boot loader

A Linux-capable boot loader must be installed in order to boot Arch Linux. See Category:Boot loaders for available choices.

If you have an Intel CPU, install the intel-ucode package in addition, and enable microcode updates.

Iinstall and enable grub boot loader with following commands:

# grub-install /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

Create a user and add him to a bunch of groups and set password for said user:

Example for user “joe”:
# useradd -m -G wheel,video,audio,scanner,network,optical joe

# passwd joe  
   type password 
   again…
Enable NetworkManager and the login manager sddm
# systemctl enable NetworkManager sddm



Done……..The initial install should take about an hour

-----Reboot-----

Post install

install intel-ucode (*if your cpu is intel and if you haven’t already)

If your video card is intel, install intel-ucode
If you have Nvidia video card, install nvidia (and more if needed)

# pacman -Syu intel-ucode
# pacman Syu nvidia nvidia-dkms nvidia-settings

To enable multilib uncommented the [multilib] section in /etc/pacman.conf
(be sure to uncomment both lines):

[multilib]
Include = /etc/pacman.d/mirrorlist


and to make it immediately effectual run:
# pacman -Syu

Set up the system for building AUR packages (Arch User Repository)

# pacman -S --needed base-devel
# pacman -Syu



To install irssi, Libreoffice and gimp
# pacman -S irssi
# pacman -S libreoffice-fresh
# pacman -S gimp

From AUR, you have mythtv and teamviewer

See:
https://aur.archlinux.org/packages/mythtv/
and
https://aur.archlinux.org/packages/teamviewer/

and they both should work ok, mythtv will automaticall the mythtv server on the network
so there was no configuration accept for selecting pulseaudio for audio server.
Teamviewer requires enabling teamviewerd:

# systemctl enable teamviewerd

Hard drive usage [at this point] should be 8G + or -

Further developments; install packages as needed such as:

'pacman -S kdeconnect'
'pacman -S x11vnc tigervnc'
'pacman -S gtypist'
'pacman -S deja-dup'
'pacman -S speedtest-cli'
'pacman -S lynx'
'pacman -S net-tools'
'pacman -S cups'
'pacman -S hplip'
'pacman -S calibre'
'pacman -S okular'
Extra fonts:

ttf-merriweather ttf-merriweather-sans ttf-opensans ttf-oswald ttf-quintessential ttf-signika ttf-ubuntu-font-family ttf-mac-fonts ttf-google-fonts-git

Lots of font families above, maybe more than needed but...  optional.
Maybe just do:
all-repository-fontsAUR - Meta package for all fonts in the official repositories.
Also, if needed: bind-tools
etc. etc.
Additional Resources
To search and find out about Archlinux Packages:
https://archlinux.org/packages/
To search or find out about AUR Packages (Arch User Repository):
https://aur.archlinux.org/
Archlinux News Archives:
https://archlinux.org/news/
Archlinux irc: https://libera.chat/ Server:
irc.libera.chat:6697 (TLS)