# linux arch ## step one :: usb drive preparation - download - https://archlinux.org/download/ - download signature from main page: - https://archlinux.org/iso/2024.04.01/archlinux-2024.04.01-x86_64.iso.sig - this is also found on the mirror, but i prefer to use the signature from the main site. - https://archmirror1.octyl.net/iso/2024.04.01/archlinux-2024.04.01-x86_64.iso.sig - download iso from mirror - https://archmirror1.octyl.net/iso/2024.04.01/ - https://archmirror1.octyl.net/iso/2024.04.01/archlinux-2024.04.01-x86_64.iso - verify iso ``` $ gpg --keyserver-options auto-key-retrieve --verify archlinux-2024.04.01-x86_64.iso.sig gpg: assuming signed data in 'archlinux-2024.04.01-x86_64.iso' gpg: Signature made 2024-04-01T13:00:16 EST gpg: using EDDSA key 3E80CA1A8B89F69CBA57D98A76A5EF9054449A5C gpg: issuer "pierre@archlinux.org" gpg: key 76A5EF9054449A5C: public key "Pierre Schmitz " imported gpg: Total number processed: 1 gpg: imported: 1 gpg: Good signature from "Pierre Schmitz " [unknown] gpg: aka "Pierre Schmitz " [unknown] gpg: WARNING: The key's User ID is not certified with a trusted signature! gpg: There is no indication that the signature belongs to the owner. Primary key fingerprint: 3E80 CA1A 8B89 F69C BA57 D98A 76A5 EF90 5444 9A5C ``` - install to usb - insert usb - `lsblk` (alt: `df`) - ➔ usb = sda - `sudo dd bs=4M if=archlinux-2024.04.01-x86_64.iso of=/dev/sda status=progress oflag=sync` - error: `dd: failed to open '/dev/sda': Device or resource busy` - solution: using `gparted`, you can reformat the drive (from fat32) to ext4, then try again ## step two :: boot the iso - boot the target system using the arch iso, and prepare for a [guided install](https://archinstall.archlinux.page/installing/guided.html) - tuxwarrior: `F2` for BIOS - thinkpad: `F12` for boot options (`F1` for BIOS) - select `ArchLinux install medium (x86_64, x64 UEFI)` - grub error - `error: you need to load the kernel first` - `error start_image() returned 0x800000000000001` - solution - reinstall iso on usb - arch iso error - `squashfs error unable to read` - solution - re-install the ISO on another USB device - arch iso error - `ip link` gives no wifi - solution - re-install the ISO on another USB device ## step three :: generate config for new hosts - on **new host**: - `archinstall --dry-run` - install language: `english` (default) - mirrors: `colombia`, `united states`, `worldwide` - locales: keyboard `us`, loc lang `en_AU.UTF-8`, loc enc `UTF-8` - disk config: use a best-effort default partition layout ➔ pick main hd ➔ `btrfs` ➔ default structure `yes` ➔ compression or disable Cow `ESC` (do not) - disk encryption: `no` (default) - bootloader: `systemd-boot` (default) - unified kernel image: `False` (default) - swap: `True` (default) - hostname: `tuxwarrior` - root password: leave blank (default) - user account: leave empty (default) - profile: type ➔ `minimal` - audio: `pipewire` - kernels: `linux` (default) - additional packages: `git nano tree wget` - network configuration: `Use NetworkManager` - timezone: `America/Panama` - Automatic time sync: `True` (default) - Optional repositories: leave blank (default) - > Save configuration - > Save user configuration (inc disk layout) - Save directory: `/tmp` ➔ `yes` - `curl -F'file=@user_configuration.json' https://0x0.st` - on **existing host**: - for this repo, inside `dots/archinstall` create folder for new host (use hostname as folder name) - open page given above, like `https://0x0.st/Xbov.json` - save raw content as `user_configuration.json` - (change `gfx_driver` value from `null` to `Nvidia (proprietary)`) - not needed, i think - save file - from a pre-existing host directory, copy over and modify (if needed) `options.sh`, `packages.txt` and `services.txt`. this should be copied to new host directory - example: copied from `dots/archinstall/t470p` to `dots/archinstall/tuxwarrior` - commit changes to this repo, adding the new host files ## step four :: arch install :: the basics - `ip link` - `lo` (loopback - special device) - `enp0s31f6` (ethernet) - `wlan0` (wifi) - `iwctl` - `station wlan0 scan` - `station wlan0 get-networks` - `station wlan0 connect -_-` - `exit` - `cd /tmp` - `curl -L -O https://git.mz.fo/fro/lnx-arch/raw/branch/master/scripts/archinstall_config_download.sh` - (`-L` to follow redirects, `-O` to save to disk) - `chmod 755 archinstall_config_download.sh` - `cat archinstall_config_download.sh` - `./archinstall_config_download.sh` - hostname: `tuxwarrior` - password: [poq.L2] - make sure both user .json files have been downloaded and updated - two files should be listed: `user_configuration.json` and `user_credentials.json` - check datestamp shown at the end when running the script - `archinstall --config user_configuration.json --creds user_credentials.json` - Install - > Would you like to chroot into ... perform post-installation config? - `no` - `reboot` ## step four :: arch install :: software & dots - log in as `poq` - `nmtui` (activate internet connection) - set up curae (system tool) - `cd /tmp` - `wget https://git.mz.fo/fro/lnx-arch/raw/branch/master/scripts/curae_setup.sh` - `cat curae_setup.sh` ➔ verify the file content - `chmod 755 curae_setup.sh` - `sudo ./curae_setup.sh` - `sudo curae yay` (install yay, which is used to install aur packages) - `sudo curae uf` (full update, install packages, hostname is optional) - same as running the two commands: - `sudo curae sw` - `sudo curae dots` - `sudo curae dots+` (download wallpapers, fonts++) - `sudo ufw enable` (enable firewall) - `reboot` & re-login - `startx` (start window manager) - start firefox - (nextcloud and protonvpn will start automatically, just exit the applications) - start firefox (`SUP + D` ➔ `firefox`) - close firefox - create local sync folder for nextcloud - local folder must match `$SYNCDIR_HOSTNAME` in `dots/environment/environment` - t470p: `/home/poq/nextcloud` - tuxwarrior: `/home/poq/nextcloud` - open the terminal (`SUP + Enter`) - `curae sw` (install sw that were not installed first time around - not sure why this is needed) - `curae dots` (the re-run of dots will deploy firefox settings) - `curae services` (enable services) - `reboot` & re-login - set up nextcloud sync (it should start automatically) - in nextcloud - log in - pick local folder (created above), and - choose to sync everything to the local nextcloud folder - wait for nextcloud to sync (will take hours, depending on the internet speed) - `syncDirSetup.sh` (will set up `~/syncDir`) - `mountDownloadsDir.sh` (will mount `~/Downloads` to syncDir's download dir) - `deploySshKeys.sh` (deployment of ssh keys) - `importGnupgKeys.sh` (deployment of gnupgp keys) - `reboot` and re-login ## step five :: post installation tasks - gnome keyring - _"To use automatic unlocking with automatic login, you can set a blank password for the default keyring. Note that the contents of the keyring are stored unencrypted in this case."_ - https://wiki.archlinux.org/title/GNOME/Keyring - firefox - install dictionaries for [en-AU](https://addons.mozilla.org/en-US/firefox/addon/english-australian-dictionary/) and [no-NB](https://addons.mozilla.org/en-US/firefox/addon/norsk-bokm%C3%A5l-ordliste/) - singlefile name format: - old: `%if-empty<{page-title}|No title> ({date-locale} {time-locale}).{filename-extension}` - new: `{year-locale}{month-locale}{day-locale}_{url-href-flat}_.{filename-extension}` # error solving - `sudo journalctl -b` shows error: - `ACPI Error AE_NOT_FOUND` and `could not resolve symbol _SB.PCI0.XDCI` - solution: - `sudo nano /boot/loader/entries/2024-06-06_13-01-32_linux.conf` - add `libata.noacpi=1` to `options` - `sudo journalctl -b` shows error: - `mmio stale data cpu bug present` - solution: - should be safe to ignore this - https://www.reddit.com/r/pop_os/comments/16esxxn/cpu_memory_leak/ - `pnp 00:03: disabling [io 0x3322-0x3323] because it overlaps 0000:00:01.0 BAR 13 [io 0x3000-0x3fff]` - solution: - unknown - `nvme nvme0 missing or invalid SUBNQN field` - should be safe to ignore this - https://forums.gentoo.org/viewtopic-t-1106388-start-0.html - `usci_ccg 0-0008: i2c_transfer failed -6` and `usci_ccg 0-0008: ucsi_ccg_init failed -6` - should be safe to ignore - https://bbs.archlinux.org/viewtopic.php?id=262194 - `mxm: guid detected in bios` - safe to ignore - https://ubuntuforums.org/showthread.php?t=2491276 - `acpi warning: … ._DSM: Argument #4 type mismatch - Found [Buffer] …` - safe to ingore - https://askubuntu.com/questions/842134/acpi-warning-argument-4-type-mismatch - `bluetooth: hci0: hci le coded phy feature bit set, but its usage is not supported` - solution: - unknown - `mount point /boot … is world accessible …` and `random seed file … is world accessible …` - solution: - `sudo umount /boot` - `sudo chmod 700 /boot` - `reboot` - https://bbs.archlinux.org/viewtopic.php?id=287790 - `agetty failed to open credentials directory` - solution: - unknown - `nouveau 0000:01L00.0: DRM: … kmsOutp [BL_GET level:0] (ret:-22)` - solution: - install propiretary nvidia drivers - `dbus-broker-launch activation request for org.freedesktop.home1 failed … service could not be found` - safe to ignore - https://forum.manjaro.org/t/dbus-org-freedesktop-home1-service-not-found-i-set-noextract-usr-lib-security-pam-systemd-home-so-in-pacman-conf/77365 - `dbus-broker-launch … dunst.service is not named after the d-bus name … notifications` - solution: - unknown - login through lemur display manager does not work - ctrl + alt + f1 ➔ access tty1 - login and run `startx` - `startx fatal server error no screens found` - `rm /etc/X11/xorg.conf` - `rm -r /etc/X11/xorg.conf.d` - https://bbs.archlinux.org/viewtopic.php?id=149368 - wifi / network card only available on some boots. - soultion: - unknown # more info - original issue: https://gitlab.com/pqq/pIssues.2/-/issues/254