diff --git a/README.md b/README.md index 14fff7a..259ab9f 100644 --- a/README.md +++ b/README.md @@ -1 +1,239 @@ -linux arch \ No newline at end of file +# 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