265 lines
7.4 KiB
Markdown
265 lines
7.4 KiB
Markdown
# Arch with Gnome
|
|
|
|
<!-- TOC -->
|
|
|
|
- [Arch with Gnome](#arch-with-gnome)
|
|
- [Installation](#installation)
|
|
- [Post Install](#post-install)
|
|
- [TPM2 LUKS Decryption](#tpm2-luks-decryption)
|
|
- [Fingerprint Reader Support](#fingerprint-reader-support)
|
|
- [Bluetooth](#bluetooth)
|
|
- [Audio](#audio)
|
|
- [RDP Remote Desktop](#rdp-remote-desktop)
|
|
- [Virtualization](#virtualization)
|
|
- [CUPS Printing](#cups-printing)
|
|
- [Steam](#steam)
|
|
- [Help](#help)
|
|
- [Update Grub](#update-grub)
|
|
- [Downgrading Kernel](#downgrading-kernel)
|
|
- [Packages](#packages)
|
|
- [Official](#official)
|
|
- [AUR](#aur)
|
|
|
|
<!-- /TOC -->
|
|
|
|
## Installation
|
|
|
|
Follow most of the instructions here:
|
|
<https://wiki.archlinux.org/title/Installation_guide>
|
|
|
|
1. Download Arch
|
|
2. Verify the image
|
|
3. Create a bootable ISO
|
|
4. Disable secureboot (reenable later)
|
|
5. Boot into the live image
|
|
6. Check for network connectivity
|
|
|
|
```bash
|
|
# Check for internet
|
|
ip a
|
|
ping archlinux.org
|
|
```
|
|
|
|
7. `timedatectl` to update system clock
|
|
8. Create disk partitions
|
|
|
|
```bash
|
|
fdisk -l
|
|
fdisk /dev/vda
|
|
```
|
|
|
|
- +1G for /boot
|
|
- t EFI SYSTEM for /boot
|
|
- remaining for /
|
|
|
|
9. `mkfs.fat -F 32 /dev/vda1` (/mnt/boot partition)
|
|
10. `cryptsetup luksFormat /dev/vda2`
|
|
11. `cryptsetup luksOpen /dev/vda2 root`
|
|
12. `mkfs.btrfs /dev/mapper/root` (root partition)
|
|
13. Mount the root partition with `mount /mnt`
|
|
14. Mount the boot partition with `mount --mkdir /mnt/boot`
|
|
15. `pacstrap -K /mnt base linux linux-firmware`
|
|
|
|
Note: linux-zen works, linux-hardened breaks appimages
|
|
|
|
16. `genfstab -U /mnt >> /mnt/etc/fstab`
|
|
17. `arch-chroot /mnt`
|
|
18. `ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime`
|
|
19. `hwclock --systohc`
|
|
20. `echo 'LANG=en_US.UTF-8' > /etc/locale.conf`
|
|
21. `echo 'hostname' > /etc/hostname`
|
|
22. `pacman -S grub`
|
|
23. `grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=BOOT` (this will fail)
|
|
24. Note: for some systems you'll have to move grubx64.efi into an expected location:
|
|
|
|
```bash
|
|
cp /boot/EFI/BOOT/grubx64.efi /boot/EFI/BOOT/bootx64.efi
|
|
```
|
|
|
|
25. `pacman -S vim`
|
|
26. Edit /etc/default/grub
|
|
|
|
```conf
|
|
GRUB_CMDLINE_LINUX="quiet splash rd.luks.uuid=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
|
|
GRUB_ENABLE_CRYPTODISK=y
|
|
GRUB_DISABLE_SUBMENU=y
|
|
GRUB_DEFAULT=saved
|
|
GRUB_SAVEDEFAULT=true
|
|
```
|
|
|
|
27. Edit /etc/mkinitcpio.conf and set up systemd/sd-encrypt
|
|
|
|
```conf
|
|
HOOKS=(systemd autodetect modconf kms keyboard sd-vconsole block sd-encrypt filesystems fsck)
|
|
```
|
|
|
|
28. `mkinitcpio -P`
|
|
29. `grub-mkconfig -o /boot/grub/grub.cfg`
|
|
30. `pacman -S gdm gnome dhclient dhcpcd`
|
|
31. `sudo systemctl enable gdm`
|
|
32. `useradd ducoterra`
|
|
33. `passwd ducoterra`
|
|
34. `pacman -S sudo`
|
|
35. `groupadd sudo`
|
|
36. Edit /etc/sudoers and uncomment the section allowing sudo and wheel group privilege
|
|
37. `usermod -aG sudo ducoterra`
|
|
38. `usermod -aG wheel ducoterra`
|
|
39. `mkdir /home/ducoterra`
|
|
40. `chown ducoterra:ducoterra /home/ducoterra`
|
|
41. `exit`
|
|
42. `reboot`
|
|
|
|
## Post Install
|
|
|
|
Set up locale with correct information (required for certain binaries like minecraft-launcher)
|
|
|
|
1. `vim /etc/locale.gen`
|
|
|
|
Uncomment the line:
|
|
|
|
en_US.UTF-8 UTF-8
|
|
|
|
2. `sudo locale-gen`
|
|
|
|
### TPM2 LUKS Decryption
|
|
|
|
2. `pacman -S tpm2-tss`
|
|
3. `systemd-cryptenroll /dev/vda2 --wipe-slot=tpm2 --tpm2-device=auto --tpm2-pcrs=""`
|
|
|
|
### Fingerprint Reader Support
|
|
|
|
1. `sudo pacman -S fprintd`
|
|
2. `sudo systemctl enable --now fprintd`
|
|
3. Enable fingerprint terminal login but prompt for password first (enter switches to prompt for fingerprint)
|
|
|
|
sudo vim sudo vim /etc/pam.d/sudo and at the top of the file:
|
|
|
|
```conf
|
|
# fingerprint auth
|
|
auth sufficient pam_unix.so try_first_pass likeauth nullok
|
|
auth sufficient pam_fprintd.so
|
|
```
|
|
|
|
### Bluetooth
|
|
|
|
1. `sudo pacman -S bluez bluez-utils`
|
|
2. `sudo systemctl enable --now bluetooth`
|
|
|
|
### Audio
|
|
|
|
Without pipewire-pulse the audio level/device will reset every reboot.
|
|
|
|
1. `sudo pacman -S pipewire-pulse` (remove conflicting packages)
|
|
|
|
### RDP Remote Desktop
|
|
|
|
1. `sudo pacman -S remmina freerdp`
|
|
|
|
### Virtualization
|
|
|
|
1. Install virtualization capabilties
|
|
|
|
```bash
|
|
sudo pacman -S qemu-full
|
|
sudo pacman -S libvirt
|
|
sudo pacman -S iptables-nft dnsmasq
|
|
sudo pacman -S virt-manager qemu-desktop
|
|
sudo usermod -aG libvirt ducoterra
|
|
sudo virsh net-autostart default
|
|
```
|
|
|
|
2. Edit /etc/libvirt/libvirtd.conf
|
|
|
|
```conf
|
|
...
|
|
unix_sock_group = 'libvirt'
|
|
...
|
|
unix_sock_rw_perms = '0770'
|
|
...
|
|
```
|
|
|
|
3. Edit /etc/libvirt/qemu.**conf**
|
|
|
|
```conf
|
|
# Some examples of valid values are:
|
|
#
|
|
# user = "qemu" # A user named "qemu"
|
|
# user = "+0" # Super user (uid=0)
|
|
# user = "100" # A user named "100" or a user with uid=100
|
|
#
|
|
user = "ducoterra"
|
|
|
|
# The group for QEMU processes run by the system instance. It can be
|
|
# specified in a similar way to user.
|
|
group = "ducoterra"
|
|
```
|
|
|
|
4. `systemctl enable --now libvirtd`
|
|
|
|
### CUPS Printing
|
|
|
|
12. `sudo pacman -S cups avahi`
|
|
14. `sudo vim /etc/nsswitch.conf`
|
|
|
|
```conf
|
|
hosts: mymachines mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] files myhostname dns
|
|
```
|
|
|
|
15. `sudo systemctl start cups`
|
|
16. `sudo systemctl start avahi-daemon`
|
|
|
|
### Steam
|
|
|
|
<https://wiki.archlinux.org/title/Official_repositories#multilib>
|
|
|
|
When prompted, use vulkan-radeon
|
|
|
|
|
|
## Help
|
|
|
|
### Update Grub
|
|
|
|
1. `grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=BOOT`
|
|
1. `cp /boot/EFI/BOOT/grubx64.efi /boot/EFI/BOOT/bootx64.efi`
|
|
|
|
### Downgrading Kernel
|
|
|
|
1. `cd /var/cache/pacman/pkg`
|
|
2. `pacman -U linux-x.x.x.arch1-1-x86_64.pkg.tar.zst linux-headers-x.x.x.arch1-1-x86_64.pkg.tar.zst`
|
|
3. `reboot`
|
|
|
|
## Packages
|
|
|
|
### Official
|
|
|
|
| name | purpose |
|
|
| ----------------------- | --------------------------------- |
|
|
| grub | boot loader |
|
|
| sudo | sudo privilege for non-root users |
|
|
| dhclient | dhcp client tool |
|
|
| dhcpcd | dhcp services |
|
|
| networkmanager | Gnome networking in settings |
|
|
| qemu-guest-agent | Auto resize |
|
|
| spice-vdagent | Clipboard |
|
|
| firefox | Firefox browser |
|
|
| gnome-browser-connector | Firefox gnome connector |
|
|
| base-devel | makepkg requirement |
|
|
| kubectl | kubernetes kubectl |
|
|
| wine | wine64 emulator |
|
|
| code | open source vscode |
|
|
| steam | steam |
|
|
| git | git |
|
|
| fprintd | fingerprint reader capability |
|
|
| tlp | power management |
|
|
| bluez | bluetooth |
|
|
| bluetoothctl | bluetooth |
|
|
| cups | cups printing daemon |
|
|
| avahi | .local address resolution |
|
|
| cups-pdf | ipp support for printers |
|
|
|
|
### AUR
|
|
|
|
| name | purpose |
|
|
| ---------------- | -------------------------------- |
|
|
| appimagelauncher | AppImage launcher and integrator |
|