Arch Linux
System Software
https://gist.github.com/mattiaslundberg/8620837
Disk
- 650MB EFI
- 250MB boot
- + root
cryptsetup -c aes-xts-plain64 -y --key-size 512 -y --use-random luksFormat /dev/nvme0n1p3
Keyboard
setxkbmap -print
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us(dvorak)+inet(evdev)+compose(ralt)" };
xkb_geometry { include "dell(dellm65)" };
};
Volume keys
Set in @@xfce4-keyboard-settings@
[XF86AudioMute][13][?][13]
: pactl set-sink-mute 0 toggle
[XF86AudioLowerVolume][14][?][14]
: pactl set-sink-volume 0 -5%
[XF86AudioRaiseVolume][15][?][15]
: pactl set-sink-volume 0 +5%
Locale
Edit /etc/locale.gen
Run sudo locale-gen
Display Manager
[LightDM][16][?][16]
Switch the default login screen keyboard layout.
For lightdm: /etc/lightdm.conf.d/00-keyboard.conf
[SeatDefaults]
display-setup-script/=usr/bin/setxkbmap dvorak
Add the ~layout
indicator to /etc/lightdm/lightdm-gtk-greeter.conf
:
[greeter]
indicators = ~host;~spacer;~language;~layout;~session;~a11;~clock;~power
Suspend to RAM
Default sleep state was C2 (idle) instead of C3 (deep).
For testing:
echo "deep" > /sys/power/mem_sleep
To make it permanent fix the kernel parameters /etc/default/grub
:
GRUB_CMDLINE_DEFAULT="quiet mem_sleep_default=deep"
Remake the grub config:
grub-mkconfig -o /boot/grub/grub.cfg
Debugging sleep using echo 1 > /sys/power/pm_trace
produces a hang on resume.
Bluetooth
Suffers from issues after suspend.
Replace the Linux firmware blobs with those from the Windows driver.
https://www.dell.com/support/home/uk/en/ukbsdt1/drivers/driversdetails?driverId=1JVK3
unzip Killer-Wireless-AC-1525-1535-1435-Bluetooth-Driver_1JVK3_WIN_10.0.0.448_A07.EXE
sudo cp /lib/firmware/qca/nvm_usb_00000302.bin /lib/firmware/qca/nvm_usb_00000302.bin.orig
sudo cp /lib/firmware/qca/rampatch_usb_00000302.bin /lib/firmware/qca/rampatch_usb_00000302.bin.orig
sudo cp ./drivers/Production/Windows10-x64/Bluetooth_driver/ramps_0x00000302_48.dfu /lib/firmware/qca/nvm_usb_00000302.bin
sudo cp ./drivers/Production/Windows10-x64/Bluetooth_driver/AthrBT_0x00000302.dfu /lib/firmware/qca/rampatch_usb_00000302.bin
gnome@canard:/lib/firmware/qca$ md5sum *000302*
067fb95e8501bad2683df07d23539e7d nvm_usb_00000302.bin
b3e2784b16b5b0cf5defa7eb9115956d nvm_usb_00000302.bin.orig
47ed34d8b6af11d71036aa44314e32d3 rampatch_usb_00000302.bin
86c377ab7b2c24cc12cea5e79f71d610 rampatch_usb_00000302.bin.orig
Boot Recovery After Systemd 240 bug
Systemd 240 update introduced a bug in which luks hooks ran before keyboard drivers were loaded resulting in a LUKS password prompt without any means to type the password.
Recovery involved:
- Boot from the archiso USB stick
- chroot into system
- update mkinitcpio
- fix EFI boot
Arch chroot
After booting from archiso USB:
Decrypt and mount:
cd /mnt
mkdir root
cryptsetup open /dev/nvme0n1p3 cryptroot
mount /dev/mapper/vg0-root /mnt/root
Mount extra bits for chroot:
cd /mnt
mkdir root/hostrun
mount --bind /run root/hostrun
arch-chroot ./root
Within the chroot set up other mounts:
# mkinitcpio hooks need to see this
chroot$ mount --bind /hostrun/lvm /run/lvm
chroot$ mount /boot
Update mkinitcpio
Update mkinitcpio
to move keyboard hook immediately after udev:
vim /etc/mkinitcpio.conf
+ HOOKS=(base udev keyboard autodetect modconf block keymap encrypt lvm2 resume filesystems)
+ ## systemd version
+ #HOOKS=(base systemd keyboard autodetect modconf block sd-vconsole sd-encrypt sd-lvm2 filesystems)
pacman -Sy linux
## which should do this implicitly:
# mkinitcpio -p linux
# cd /boot && grub-mkconfig -o grub.cfg
Fix EFI boot
After some failed boot attempts ("No bootable devices") reboots tripped into Dell Recovery.
Drop in to BIOS (F2) and reconfigure the [NVMe][20][?][20] disk as an EFI boot disk.
EFI boot file : /dev/nvme0n1p1 : EFI/arch/grubx64.efi
Upgrade Wireless Drivers
Driver : ath10k_pci
Model : [QCA6174][21][?][21]
- https://github.com/kvalo/ath10k-firmware
- https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/
lspci
:
02:00.0 Network controller: Qualcomm Atheros QCA6174 802.11ac Wireless Network Adapter (rev 32)
More fixes to try: https://forum.manjaro.org/t/solved-qualcomm-qca6174-unstable-after-standby-many-circumstances-lenovo-miix-520/79713/43
Wired Wifi Failover
Bonded wifi and wired connections for seamless handover. Prefer wired.
!/bin/sh
CON_BOND=failover
DEV_BOND=bond0
CON_WIFI=${CON_BOND}-wifi
DEV_WIFI=wlp2s0
CON_WIRED=${CON_BOND}-wired
DEV_WIRED=enp57s0u1u1
SSID=not-the-real-ssid
WIFI_PASS=not-the-real-password
$ECHO nmcli con add type bond con-name $CON_BOND ifname $DEV_BOND mode active-backup primary $DEV_WIRED +bond.options "fail_over_mac=active,miimon=100,primary_reselect=always,updelay=200"
$ECHO nmcli con add type wifi con-name $CON_WIFI slave-type bond master $CON_BOND ifname $DEV_WIFI ssid $SSID
$ECHO nmcli con modify $CON_WIFI wifi-sec.key-mgmt wpa-psk wifi-sec.psk $WIFI_PASS
$ECHO nmcli con add type ethernet con-name $CON_WIRED slave-type bond master $CON_BOND ifname $DEV_WIRED
Also need to:
* set failover priority >0
Battery Life
-
tlp
-
cpupower
-
powertop
Using intel_pstate
.
current cpufreq driver
sudo cpupower frequency-info
current cpu governor
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor