Arch Linux Installation Guide

·

4 min read

GParted

$ sudo pacman -S gparted gpart

fdisk

$ lsblk -f
$ fdisk -l
$ fdisk /dev/sda

mount

# pacstrap -i /mnt base base-devel

File Systems Table

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

Configuration

# arch-chroot /mnt /bin/bash

Booting

# mkinitcpio -p linux
# pacman -S grub os-prober
# grub-install --target=i386-pc --recheck /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg

Adduser

# useradd -m -g users -G audio,games,log,lp,optical,power,video,wheel /bin/bash <username> 
# passwd <username>

IBUS

$ sudo pacman -S ibus ibus-table-chinese
$ cat ~/.xprofile
export GTK_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
export QT_IM_MODULE=ibus
ibus-daemon -drx --panel=/usr/lib/kimpanel-ibus-pane
$ ibus list-engine
$ sudo pacman -S adobe-source-han-sans-otc-fonts adobe-source-han-serif-otc-fonts
$ ibus-setup
Super -> Control
Input Method -> Chinese - ChangJie5

Audio

# pacman -Ss alsa

Xorg

# pacman -S xorg-server xorg-xinit xorg-server-util

Optimus Manager

$ sudo su
# mkdir backup
# mv xorg* mhwd.d backup
# exit
$ pamac install optimus-manager
$ sudo systemctl enable optimus-manager.service
$ sudo systemctl start optimus-manager.service
$ sudo reboot now
$ prime-offload
$ optimus-manager --switch nvidia
$ yay -S optimus-manager-qt
$ sudo vim /etc/optimus-manager/optimus-manager.conf
startup_auto_battery_mode=integrated
startup_auto_extpower_mode=nvidia
startup_mode=nvidia
$ sudo vim /etc/sddm.conf
[XDisplay]
# DisplayCommand=/usr/share/sddm/scripts/Xsetup
# DisplayStopCommand=/usr/share/sddm/scripts/Xstop
$ vim ~/.xinitrc
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --dpi 96 # xrandr --auto
$ vim /usr/share/sddm/scripts/Xsetup
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --dpi 96 # xrandr --auto
$ sudo pacman -R cuda nvidia-prime
$ sudo pacman -R lib32-nvidia-utils
$ sudo pacman -R linux-latest-bbswitch linux-lts-bbswitch linux-lts-nvidia-390xx
$ sudo pacman -S nvidia cuda nvidia-prime lib32-nvidia-utils
$ sudo pacman -S cuda-tools
$ fish_add_path /opt/cuda/bin
$ glxinfo | grep NVIDIA
$ glxinfo | egrep "OpenGL vendor|OpenGL renderer"
$ glxheads

Everything is laggy under nvidia/hybrid mode #314

# vim /etc/udev/rules.d/80-nvidia-pm.rules
# Enable runtime PM for NVIDIA VGA/3D controller devices on driver bind
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="auto"
ACTION=="bind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="auto"

# Disable runtime PM for NVIDIA VGA/3D controller devices on driver unbind
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", TEST=="power/control", ATTR{power/control}="on"
ACTION=="unbind", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030200", TEST=="power/control", ATTR{power/control}="on"
# vim /etc/modprobe.d/nvidia-pm.conf
options nvidia "NVreg_DynamicPowerManagement=0x02"
$ systemctl enable nvidia-persistenced.service
Created symlink /etc/systemd/system/multi-user.target.wants/nvidia-persistenced.service → /usr/lib/systemd/system/nvidia-persistenced.service.
$ systemctl start nvidia-persistenced.service
$ sudo vim /etc/optimus-manager/optimus-manager.conf
dynamic_power_management=fine

Window manager

$ sudo pacman -S xfce4 xfce4-goodies

Login Manager

$ sudo pacman -S lightdm lightdm-gtk2-greeter

Fish Shell

$ sudo pacman -S fish
$ pacman -Qi fish
Name            : fish
Version         : 3.1.2-2
Description     : Smart and user friendly shell intended mostly for interactive use
Architecture    : x86_64
URL             : https://fishshell.com/
Licenses        : GPL2

Shortcuts

  • Alt-F ; next word
  • Alt-B ; prev word
  • Ctrl-W ; remove a word
  • Ctrl-L ; clear screen
  • Ctrl-U ; clear command
  • Ctrl-F ; auto complete
  • Ctrl-P ; prev command
  • Ctrl-N ; next command
  • Ctrl-D ; remove a char

PostgreSQL

$ sudo pacman -S postgresql
$ postgres -V
$ sudo pacman -Si postgresql
$ sudo su
# rm -rf /var/lib/postgres/data
# exit
$ sudo mkdir /var/lib/postgres/data
$ sudo chown -c -R postgres:postgres /var/lib/postgres
$ sudo -i -u postgres
$ initdb -D '/var/lib/postgres/data'
$ logout
$ sudo systemctl start postgresql
$ sudo systemctl enable postgresql
$ systemctl status postgresql
$ createuser -s -U postgres --interactive
$ Enter name of role to add: <Your Arch Linux Login Name>
$ createdb <database name>
$ psql -d <database name>
$ sudo -u postgres psql
postgres=# alter user postgres with password 'postgres'
postgres-# \q

VMware Workstation Player 16

$ ls -la /usr/bin/vmware*
# vmware-modconfig --console --install-all
# modprobe -a vmw_vmci vmmon
$ sudo vim /etc/systemd/system/vmware-networks-server.service
[Unit]
Description=VMware Networks
Wants=vmware-networks-configuration.service
After=vmware-networks-configuration.service

[Service]
Type=forking
ExecStartPre=-/sbin/modprobe vmnet
ExecStart=/usr/bin/vmware-networks --start
ExecStop=/usr/bin/vmware-networks --stop

[Install]
WantedBy=multi-user.target
$ sudo systemctl enable vmware-networks-server.service
$ sudo systemctl start vmware-networks-server.service
$ sudo systemctl status vmware-networks-server.service

Docker

$ sudo pacman -S docker
$ docker info
$ docker version
$ sudo systemctl start docker.service
$ docker image ls

Kubernetes

$ sudo pacman -S kubectl
$ kubectl
$ kubectl --help
$ kubectl version --client
$ sudo pacman -S minikube
$ minikube start
$ kubectl version
$ kubectl cluster-info

Useful Tools

$ yay -S cpufetch
$ yay -S inxi

Dosbox-x

$ wget https://dl.flathub.org/repo/appstream/com.dosbox_x.DOSBox-X.flatpakref
$ flatpak install com.dosbox_x.DOSBox-X.flatpakref
$ flatpak run com.dosbox_x.DOSBox-X .

References