Misc notes on things I've done for my build with archlinux:
- Corsair RM750x power supply
- ASRock AB350 ITX/ac motherboard
- AMD Ryzen 7 1800X processor
- XFX GTS Black Edition RX 580 graphics card
- 16GBx2 G.SKILL Ripjaws V Series memory
- 2 Samsung 860 EVO 2.5" SATA III 1TB SSDs
- Samsung 960 EVO NVMe M.2 250GB SSD
- Celsius S24 CPU Cooler
- Thermaltake Core P1 Chassis
https://wiki.archlinux.org/index.php/Category:Getting_and_installing_Arch
Download iso and signature: https://mirrors.kernel.org/archlinux/iso/2018.02.01/
From macOS:
$ gpg --keyserver wwwkeys.pgp.net --recv-keys 4AA4767BBC9C4B1D18AE28B77F2D434B9741E8AC
gpg: key 7F2D434B9741E8AC: 28 signatures not checked due to missing keys
gpg: key 7F2D434B9741E8AC: public key "Pierre Schmitz <[email protected]>" imported
gpg: marginals needed: 3 completes needed: 1 trust model: pgp
gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u
gpg: next trustdb check due at 2019-06-12
gpg: Total number processed: 1
gpg: imported: 1
$ gpg --keyserver-options auto-key-retrieve --verify archlinux-2018.02.01-x86_64.iso.sig
gpg: assuming signed data in 'archlinux-2018.02.01-x86_64.iso'
gpg: Signature made Thu Feb 1 12:59:30 2018 EST
gpg: using RSA key 4AA4767BBC9C4B1D18AE28B77F2D434B9741E8AC
gpg: Good signature from "Pierre Schmitz <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 4AA4 767B BC9C 4B1D 18AE 28B7 7F2D 434B 9741 E8AC
https://pierre-schmitz.com/about/gpg-keys/pierre-packager-key/
https://www.archlinux.org/people/developers/
https://wiki.archlinux.org/index.php/USB_flash_installation_media#In_macOS
From macOS:
$ diskutil list
/dev/disk0 (internal, physical):
#: TYPE NAME SIZE IDENTIFIER
0: GUID_partition_scheme *500.3 GB disk0
1: EFI EFI 209.7 MB disk0s1
2: Apple_APFS Container disk1 500.1 GB disk0s2
/dev/disk1 (synthesized):
#: TYPE NAME SIZE IDENTIFIER
0: APFS Container Scheme - +500.1 GB disk1
Physical Store disk0s2
1: APFS Volume Macintosh HD 340.3 GB disk1s1
2: APFS Volume Preboot 22.8 MB disk1s2
3: APFS Volume Recovery 509.8 MB disk1s3
4: APFS Volume VM 3.2 GB disk1s4
/dev/disk2 (external, physical):
#: TYPE NAME SIZE IDENTIFIER
0: FDisk_partition_scheme *1.0 GB disk2
1: DOS_FAT_32 ARCHLINUX 1.0 GB disk2s1
$ diskutil unmountDisk /dev/disk2
Unmount of all volumes on disk2 was successful
$ sudo dd if=~/Downloads/arch/archlinux-2018.02.01-x86_64.iso of=/dev/rdisk2 bs=1m
539+0 records in
539+0 records out
565182464 bytes transferred in 193.070781 secs (2927333 bytes/sec)
- Insert USB with iso
- Power on
- Enter boot menu (F11)
- Select UEFI boot from flash (UEFI: Generic Flash Disk 8.07)
Check if UEFI
$ ls /sys/firmware/efi/efivars
Check network
$ ping archlinux.org
Set time
$ timedatectl set-ntp true
$ timedatectl list-timezones
$ timedatectl set-timezone America/New_York
$ timedatectl status
$ fdisk -l
$ gdisk /dev/nvme0n1
# /boot
Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-488397134, default = 2048) or {+-}size{KMGTP}: 2048
Last sector (2048-488397134, default = 488397134) or {+-}size{KMGTP}: +550M
Hex code or GUID (L to show codes, Enter = 8300): ef00
# /
Command (? for help): n
Partition number (1-128, default 2):
First sector (34-488397134, default = 1128448) or {+-}size{KMGTP}:
Last sector (1128448-488397134, default = 488397134) or {+-}size{KMGTP}: +32G
Hex code or GUID (L to show codes, Enter = 8300): 8304
# /home
Command (? for help): n
Partition number (1-128, default 3):
First sector (34-488397134, default = 68237312) or {+-}size{KMGTP}:
Last sector (68237312-488397134, default = 488397134) or {+-}size{KMGTP}:
Hex code or GUID (L to show codes, Enter = 8300): 8302
Command (? for help): p
Number Start (sector) End (sector) Size Code Name
1 2048 1128447 550.0 MiB EF00 EFI System
2 1128448 68237311 32.0 GiB 8304 Linux x86-64 root (/)
3 68237312 488397134 200.3 GiB 8302 Linux /home
Command (? for help): v
No problems found. 2014 free sectors (1007.0 Kib) available in 1
segments, the largest of which is 2014 (1007.0 KiB) in size.
Command (? for help): w
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/nvme0n1.
The operation has completed successfully.
# List disks and new partitions
$ fdisk -l
# Format the EFI System Partition as FAT32
$ mkfs.fat -F32 /dev/nvme0n1p1
$ mkfs.ext4 /dev/nvme0n1p2
$ mkfs.ext4 /dev/nvme0n1p3
# Mount the file systems
$ mount /dev/nvme0n1p2 /mnt
$ mkdir /mnt/boot
$ mount /dev/nvme0n1p1 /mnt/boot
$ mkdir /mnt/home
$ mount /dev/nvme0n1p3 /mnt/home
$ pacstrap /mnt base
$ genfstab -U /mnt >> /mnt/etc/fstab
$ cat /mnt/etc/fstab
$ arch-chroot /mnt
$ bootctl --path=/boot install
$ vi /boot/loader/loader.conf
# Edit to contain the following:
default arch
timeout 5
editor 0
$ cp /usr/share/systemd/bootctl/arch.conf /boot/loader/entries/
# Get the partition uuid for /
$ blkid -s PARTUUID -o value /dev/nvme0n1p2
$ vi /boot/loader/entries/arch.conf
# Edit to contain the following:
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID=ccd6b018-0cc3-4488-a061-ba8631e5329b rootfstype=ext4 add_efi_memmap
$ ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime
$ hwclock --systohc
$ vi /etc/locale.gen
# Uncomment en_US.UTF-8 UTF-8
$ locale-gen
$ vi /etc/locale.conf
LANG=en_US.UTF-8
# Create /etc/hostname with hostname in it
$ vi /etc/hostname
arch0
# Add default entires to /etc/hosts
127.0.0.1 localhost
::1 localhost
$ passwd
$ exit
$ umount -R /mnt
$ reboot
$ systemctl enable --now dhcpcd.service
$ lspci -k | grep -i wifi
# If not, find and install firmware
$ pacman -S iw wpa_supplicant dialog
$ pacman -S weston
- AMD/ATI driver already installed (mesa was installed with weston)
$ pacman -S gnome
$ systemctl enable --now gdm.service
- I didn't realize gnome came with things I don't care to have
$ pacman -Rsc evolution evolution-data-server epiphany gnome-software
$ useradd -m -s /bin/bash cesar
$ passwd cesar
$ pacman -S sudo
$ visudo
$ sudo pacman -Syu vim firefox git openssh tmux tmux-bash-completion nodejs npm yarn jdk8-openjdk clang cmake gdb postgresql bash-completion
$ sudo pacman -S remmina libvncserver
#$ vim .config/gtk-3.0/settings.ini
[Settings]
gtk-application-prefer-dark-theme = true
$ sudo pacman -S --needed base-devel
$ mkdir aur
$ git clone https://aur.archlinux.org/visual-studio-code-bin.git
$ cd visual-studio-code-bin
$ makepkg -si
# Increase default inotify watchers
$ echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system
Download Intellij IDEA CE
$ sudo tar xf ideaIC-2017.3.5-no-jdk.tar.gz -C /opt/
$ cd /opt/idea-IC-173.4674.33/bin
$ ./idea.sh
- Verify the desktop config in ~/.local/share/applications/jetbrains-idea-ce.desktop
$ sudo pacman -S evtest
$ sudo evtest
$ sudo pacman -S networkmanager
$ sudo systemctl enable --now NetworkManager.service
$ sudo pacman -S gnome-tweak-tool
Install Android Studio
$ sudo unzip android-studio-ide-171.4443003-linux.zip -d /opt/
# Enable multilib by uncommenting the multilib and it's Include in pacman.conf
$ sudo vim /etc/pacman.conf
$ sudo pacman -S lib32-gcc-libs gperf wxgtk2 squashfs-tools schedtool perl-switch zip python2-virtualenv bc rsync lib32-zlib lib32-ncurses lib32-readline
$ cd ~/aur
$ gpg --recv-keys 702353E0F7E48EDB
$ git clone https://aur.archlinux.org/ncurses5-compat-libs.git
$ cd ncurses5-compat-libs
$ makepkg -si
$ cd ..
$ git clone git clone https://aur.archlinux.org/lib32-ncurses5-compat-libs.git
$ cd lib32-ncurses5-compat-libs
$ makepkg -si
#vim ~/.local/share/applications/android-studio.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Android Studio
Icon=/opt/android-studio/bin/studio.png
Exec="/opt/android-studio/bin/studio.sh" %f
Categories=Development;IDE;
Terminal=false
- Verify KVM support https://wiki.archlinux.org/index.php/KVM
$ sudo -u postgres -i
$ initdb --locale $LANG -E UTF8 -D '/var/lib/postgres/data'
$ exit
# Start postgres
$ sudo systemctl start postgresql.service
# Create users and dbs foo and foo-test
$ sudo -u postgres -i
$ createuser test --interactive
$ createdb -O test foo-test
$ createuser dev --interactive
$ createdb -O dev foo
# Connect via shell
$ sudo -u postgres -i
$ psql
# or
$ psql -d foo dev
$ git config --global user.name "Cesar"
$ git config --global user.email [email protected]
$ git config --global core.editor vim
# Gen ssh key
$ ssh-keygen
Install Postman https://www.getpostman.com/apps
$ sudo tar xf Postman-linux-x64-6.0.10.tar.gz -C /opt/
Add a desktop entry
#$ vim ~/.local/share/applications/postman.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Postman
Icon=/opt/Postman/resources/app/assets/icon.png
Exec=/opt/Postman/Postman
Categories=Development;
Terminal=false
$ cd aur
$ git clone https://aur.archlinux.org/hipchat.git
$ cd hipchat
$ makepkg -si
$ sudo pacman -S fzf
# Source the following in .bashrc or .bash_profile
$ source /usr/share/fzf/completion.bash
$ source /usr/share/fzf/completion.bash
$ sudo pacman -S vlc
$ cd aur
$ git clone https://aur.archlinux.org/skypeforlinux-stable-bin.git
$ cd skypeforlinux-stable-bin
$ makepkg -si
Nope. Maybe https://gitlab.freedesktop.org/drm/amd/-/issues/716 and try adding
radeon.dpm=0
to the kernel params per https://wiki.archlinux.org/title/ATI#Dynamic_power_management.