9.5 KiB
Framework Laptop with Manjaro
Steam
Streaming not working?
Steam > Settings > Remote Play > Advanced Client Options > Uncheck Enable hardware decoding.
Backups
Timeshift: btrfs snapshots
Deja Dupe/Duplicity: Daily Backups to external drive
Minecraft
https://www.minecraft.net/en-us/download
Citrix Client
https://www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-latest.html
Fingerprint Sensor
Sudo Auth
Running ansible playbooks becomes impossible with the default fingerprint configuration. Unfortunately, it's best to disable fingerprint auth for sudo tasks. The way to do this is by editing /etc/pam.d/sudo and commenting out pam_fprintd.so
auth required pam_env.so
#auth sufficient pam_fprintd.so
auth sufficient pam_unix.so try_first_pass likeauth nullok
auth required pam_deny.so
auth include system-auth
account include system-auth
session include system-auth
Note: setting timeout=10 and max-retries=1 per the pam_fprintd man page does not seem to work. For some reason, ansible never hits the password authentication method and times out.
Errors
"Device disconnected" on enrolling
If you've enrolled fingerprints in another OS or in a previous installation you might encounter this error. It prevents you from enrolling new fingerprints and re-enrolling old fingerprints. Fortunately, there's an easy solution thanks to this incredible forum post.
The problem lies in old fingerprints remaining on the reader without the host OS knowing about them. When the host OS tries to enroll a new fingerprint that already exists, the fingerprint reader chokes. The solution is to delete the old fingerprints from the reader before enrolling new ones. This should be included as part of the device bootstra process or as part of the devices wipe process.
Here's the process:
# Delete all fingerprints from device
sudo python framework/libfprint_delete_device_prints.py -d
That's it! Should work again.
BTRFS
https://linoxide.com/how-to-take-backup-with-btrfs-snapshots/
# Create backup subvolume
btrfs subvolume create /mnt/backup/DucoBacktop
# Create snapshot dir
mkdir /.snapshots
# Create readonly snapshot
```bash
SNAPSHOT_TIME=$(date +"%y_%m_%d-%H.%M")
SNAPSHOT_NAME=home_$SNAPSHOT_TIME
SNAPSHOT_DIR=/.snapshots
btrfs subvolume snapshot -r /home $SNAPSHOT_DIR/$SNAPSHOT_NAME
# Send a snapshot with no previous snapshot
export SNAPSHOT_DIR=${SNAPSHOT_DIR:=/.snapshots}
export BACKUP_DIR=${BACKUP_DIR:=/mnt/backup0/DucoBacktop}
btrfs send $SNAPSHOT_DIR/$SNAPSHOT_NAME | btrfs receive $BACKUP_DIR
# Send a snapshot with previous snapshot
export SNAPSHOT_DIR=${SNAPSHOT_DIR:=/.snapshots}
export BACKUP_DIR=${BACKUP_DIR:=/mnt/backup0/DucoBacktop}
export LATEST=${LATEST:=/previous_snapshot}
btrfs send -p $SNAPSHOT_DIR/$LATEST $SNAPSHOT_DIR/$SNAPSHOT_NAME | btrfs receive $BACKUP_DIR
# Clean up snapshots
find /.snapshots -maxdepth 1 -type d -not -path /.snapshots -exec sudo btrfs subvolume delete {} \;
Luks
# Create an encrypted drive
sudo cryptsetup luksFormat
# LUKS Disk Encryption can use up to 8 key slots to store passwords. We can use these keys to auto mount LUKS device.
# cryptsetup luksDump /dev/sda
# Create a lukskeys
mkdir /home/ducoterra/.lukskeys
# Generate key
dd if=/dev/random bs=32 count=1 of=/home/ducoterra/.lukskeys/backup0
# Change key mode
chmod 600 /home/ducoterra/.lukskeys
# Luks add a key
sudo cryptsetup luksAddKey /dev/sda /home/ducoterra/.lukskeys/backup0
# Get UUID of disk with
sudo blkid /dev/sda
# Add key to crypttab
echo 'backup0 UUID=1d7ce570-e695-47a0-9dda-5f14b5b20e21 /home/ducoterra/.lukskeys/backup0 luks' > /etc/cryptab
# Create backup mount point
sudo mkdir -p /mnt/backup0
# Add to fstab
echo '/dev/mapper/backup0 /mnt/backup0 btrfs defaults,noatime,compress=zstd 0 0' > /etc/fstab
# mount
sudo cryptsetup luksOpen /dev/disk/by-uuid/1d7ce570-e695-47a0-9dda-5f14b5b20e21 backup0 --key-file=/home/ducoterra/.lukskeys/backup0
# close (or fix issues)
sudo cryptsetup luksClose backup0
ISCSI
# Login to portal
sudo iscsiadm -m discovery -t sendtargets -p freenas.dnet
# Mount all targets
sudo iscsiadm -m node -l
# Mount at boot
vim /etc/iscsi/nodes/iqn.2022-02.freenas.dnet:manjaro-backup/10.1.2.200,3260,1
(/var/lib/iscsi/nodes/iqn.2022-02.freenas.dnet:manjaro-backup/10.1.2.200,3260,1/default) on fedora
node.startup = automatic
# Log out of all sessions
sudo iscsiadm -m node -u
Hardware/Firmware
Kernels
sudo pacman -S grub
Manjaro settings manager controls current kernel version.
After installing a new kernel:
sudo update-grub
Hold escape while rebooting to bring up grub menu
Display
https://askubuntu.com/questions/11738/force-gdm-login-screen-to-the-primary-monitor
Set the display configuration in the user settings the way you want it.
This seems to be fixed.
sudo cp ~/.config/monitors.xml /var/lib/gdm/.config ✔ 1m 20s
sudo chown gdm:gdm /var/lib/gdm/.config/monitors.xml
Swap
https://wiki.archlinux.org/title/Swap
Create a swapfile
swapoff --all
truncate -s 0 /swap/swapfile
chattr +C /swap/swapfile
fallocate -l 4G /swap/swapfile
chmod 600 /swap/swapfile
mkswap /swap/swapfile
swapon /swap/swapfile
Add to /etc/fstab
/swapfile swap swap defaults,noatime 0 0
Set swappiness
sudo sysctl -w vm.swappiness=1
sudo vim /etc/sysctl.d/99-swappiness.conf
vm.swappiness=1
CA File Import
https://archlinux.org/news/ca-certificates-update/
# Move the crt (CA) to the correct location
cp dnet_ca.crt /etc/ca-certificates/trust-source/anchors/dnet_ca.crt
# Update the CA store
trust extract-compat
BTRFS Snapshots
https://linuxhint.com/use-btrfs-snapshots/
cd /run/media/ducoterra/<disk>
mkdir .snapshots
# Take a snapshot
alias util-snapshot='btrfs subvolume snapshot $BACKUP_DRIVE $BACKUP_DRIVE/.snapshots/snapshot_$(date +"%H_%M_%S_%d_%m_%y")'
alias util-backup='util-snapshot && rsync -av --delete /home/ducoterra/ $BACKUP_DRIVE/home/ducoterra/'
# Restore from a snapshot
cp .snapshots/v1/file .
# Find files older than 7 days
find . -maxdepth 1 -mtime +7
Font
wget https://github.com/tonsky/FiraCode/releases/download/6.2/Fira_Code_v6.2.zip
unzip Fira_Code_v6.2.zip -d Fira_Code
rsync -av Fira_Code/ttf/ ~/.local/share/fonts/
Apps
Bluetooth
https://wiki.archlinux.org/title/Bluetooth
sudo pacman -S bluez bluez-utils
sudo systemctl enable bluetooth
sudo systemctl start bluetooth
Snap
https://snapcraft.io/install/snap-store/manjaro
sudo pacman -S snapd
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
sudo snap install snap-store
Chromium
sudo pacman -Sy chromium
VSCode
Install from the snap store.
Steam
Install steam-native from the software manager.
iCloud
| Field | Value |
|---|---|
| IMAP server | imap.mail.me.com |
| Connection security | TLS |
| Login name | ducoterra |
| SMTP server | smtp.mail.me.com |
| Connection security | StartTLS |
| Login | Use a different login |
| Login name | ducoterra@icloud.com |
Gmail
| Field | Value |
|---|---|
| IMAP server | imap.gmail.com:993 |
| Connection security | TLS |
| Login name | ducoterra@gmail.com |
| SMTP server | smtp.gmail.com:587 |
| Connection security | StartTLS |
| Login | |
| Login name | ducoterra@gmail.com |
Incoming Mail (IMAP) Server
imap.gmail.com
Requires SSL: Yes
Port: 993 Outgoing Mail (SMTP) Server
smtp.gmail.com
Requires SSL: Yes
Requires TLS: Yes (if available)
Requires Authentication: Yes
Port for SSL: 465
Port for TLS/STARTTLS: 587 Full Name or Display Name Your name Account Name, User name, or Email address Your full email address Password Your Gmail password
Discord
Install discord from software manager
Wireguard
sudo pacman -S wireguard-tools
Ping
sudo pacman -S iputils
Vault
https://www.vaultproject.io/downloads
unzip vault_1.9.2_linux_amd64.zip
sudo mv vault /usr/local/bin/vault
AWS CLI
https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
ZFS
Depending on your kernel (5.15 as of writing) install the following
sudo pacman -Sy linux515-zfs
zpool set cachefile=/etc/zfs/<zpool>.cache <zpool>
Docker
sudo pacman -S docker docker-compose
sudo usermod -aG docker ducoterra
sudo reboot
Kubectl
sudo pacman -S kubectl
Spotify
Install via snap store.
Minecraft
git clone https://aur.archlinux.org/minecraft-launcher.git /tmp/minecraft-launcher
makepkg -si --noconfirm