If Archvault fails to compile, it will usually be due to Arch Linux system
upgrades rendering Archvault's types (Keymap
, Locale
, Timezone
)
out of date. This is fairly easy to fix manually:
Keymap
type is out of date
Type check failed in assignment to @keymap; expected Archvault::Types::Keymap:D but got Str ("amiga-de")
The solution is to edit the %keymaps
constant in
lib/Archvault/Types.pm6 to include amiga-de
.
Locale
type is out of date
Type check failed in assignment to @locale; expected Archvault::Types::Locale:D but got Str ("aa_DJ")
The solution is to edit the %locales
constant in
lib/Archvault/Types.pm6 to include aa_DJ
.
Timezone
type is out of date
Type check failed in assignment to @timezones; expected Archvault::Types::Timezone:D but got Str ("Africa/Abidjan")
The solution is to edit the @timezones
constant in
lib/Archvault/Types.pm6 to include
Africa/Abidjan
.
See: Failure to Connect to Wireless Access Point
If Archvault fails to connect to the Internet, after having connected to
a wireless access point, check /etc/resolv.conf
. Its contents should
resemble the following:
# Generated by resolvconf
nameserver 127.0.0.1
nameserver ::1
options edns0 single-request-reopen
If /etc/resolv.conf
doesn't resemble the above, see to it that it does.
Check the status of dnscrypt-proxy with:
systemctl status dnscrypt-proxy.service
You may need to restart dnscrypt-proxy:
systemctl restart dnscrypt-proxy.service
Be sure dnscrypt-proxy.socket
is not active, as it conflicts with
dnscrypt-proxy.service
at runtime.
If Archvault still fails to connect to the Internet after ensuring
/etc/resolv.conf
and dnscrypt-proxy are in working order, try
disabling dnscrypt-proxy and resetting the contents of /etc/resolv
to the following:
# OpenDNS nameservers
nameserver 208.67.222.222
nameserver 208.67.220.220
# Google nameservers
nameserver 8.8.8.8
nameserver 8.8.4.4
This step is often necessary when tethering mobile data.
If Archvault fails to connect to a wireless access point, it could mean anything.
In some cases, the problem is your system's factory wireless card. The easiest way to find out if this is true is to buy a high gain USB adapter from SimpleWiFi, and see if it works. If it does, you know the built-in wireless card is at fault.
Before doing anything else, check to make sure your wireless card is not soft or hard blocked:
rfkill list
If the card is hard-blocked, use the hardware switch to unblock it. If the card is not hard-blocked but is soft-blocked, use the following command:
rfkill unblock wifi
Once you've confirmed your wireless card isn't blocked, if it still fails to connect, it may be a sign that you need to install the proper wireless drivers or firmware for it.
If the high-gain USB wireless adapter fails to connect to wifi, however, it often means something lower level has gone awry. First, try disabling the GPE.L6F function:
echo "disable" > /sys/firmware/acpi/interrupts/gpe6F
This seems to help with certain Intel Skylake and Kaby Lake processors, and does not require a reboot.
If disabling the GPE.L6F
function fails to restore wireless
connectivity, reboot with acpi=off or similar
appended to your kernel command line:
# in vim, append acpi=off to GRUB_CMDLINE_LINUX
vim /etc/default/grub
# regenerate grub config
grub-mkconfig -o /boot/grub/grub.cfg
You may only have to boot with acpi=off
once to get wifi working.
If after this, your wifi is still not working yet, try updating your machine's BIOS.
After trying everything else, if your wifi still fails to connect, it could indicate a problem with your dhcpcd config. Alternatively, there could be an issue with your wireless router.
If your machine fails to find a wireless access point, you may need to strengthen your wireless signal with a wireless repeater or high gain adapter. See also: "Respecting the regulatory domain".
If after ensuring your wireless signal is of sufficient quality, your
machine still fails to find a wireless access point using wpa_cli
, run
interface wlan0
within the wpa_cli cmd prompt where wlan0
is your
wireless interface. Sometimes wpa_cli incorrectly sets the interface to
p2p-wlan0
despite wpa_supplicant
being passed -i wlan0
.
Modern computers often have problems running Linux smoothly. Be sure to scour the web for resources like these:
- https://wiki.archlinux.org/index.php/Laptop/Lenovo
- https://github.com/mikolajb/skylake-on-linux
- https://gist.github.com/StefanoBelli/0aab46b858a797c4eedb90e8799dffa2
Maybe try looking for BIOS updates.
If upon booting the Archvault system, you initially enter the wrong vault password, GRUB will drop you into a rescue shell. Here is how to recover the system from the GRUB rescue shell without rebooting:
Most systems
grub rescue> ls
(hd0) (hd0,gpt3) (hd0,gpt2) (hd0,gpt1) (proc)
grub rescue> cryptomount hd0,gpt3
Attempting to decrypt master key...
Enter passphrase for hd0,gpt3 (88caa067d343402aabd6b107ab08125a):
Slot 0 opened
grub rescue> insmod normal
grub rescue> normal
VirtualBox UEFI systems
grub rescue> ls
(proc) (hd0) (hd1) (hd1,gpt3) (hd1,gpt2) (hd1,gpt1)
grub rescue> cryptomount hd1,gpt3
Attempting to decrypt master key...
Enter passphrase for hd1,gpt3 (88caa067d343402aabd6b107ab08125a):
Slot 0 opened
grub rescue> insmod normal
grub rescue> normal
It takes a really long time for GRUB to decrypt the /boot
partition.
If you're always prompted for a GRUB username and password on bootup,
it probably means a system upgrade has destroyed Archvault's changes to
the config file at /etc/grub.d/10_linux
.
Run this script to fix it:
use v6;
my Str:D $file = '/etc/grub.d/10_linux';
my Str:D @line = $file.IO.lines;
my Regex:D $regex = /'${CLASS}'\h/;
my UInt:D @index = @line.grep($regex, :k);
@index.race.map(-> UInt:D $index {
@line[$index] .= subst($regex, '--unrestricted ${CLASS} ')
});
my Str:D $replace = @line.join("\n");
spurt($file, $replace ~ "\n");
This might be due to an error completing the mkinitcpio -p linux
command. Re-run mkinitcpio -p linux
from a LiveCD after mounting
the system:
cryptsetup luksOpen /dev/sda3 vault
./scripts/mount-system.sh
arch-chroot /mnt pacman -Syu
arch-chroot /mnt mkinitcpio -p linux
./scripts/umount-system.sh
cryptsetup luksClose vault
If during Archvault installation, the system complains about missing shared libraries, out of date packages are most likely to blame. For example:
/usr/bin/systemd-sysusers: error while loading shared libraries: libjson-c.so.4: cannot open shared object file: No such file or directory
The package that provides libjson-c.so.4
is out of date or missing. To
fix this, update or install pkg json-c
:
pacman -S json-c
Or if all else fails, run pacman -Syu
.
If you're using an outdated Arch Linux installation medium, retry with the newest version. It's best practice to always use the newest version of the official Arch Linux installation medium.
One way to work around monitor resolution issues is to use Vim.
Open vim:
vim
Create a horizontal split:
:sp
Switch to the bottom split:
- Ctrl-w j
Create a vertical split:
:vsp
Switch to the bottom right split, which we'll use as our main split:
- Ctrl-w l
Create a vertical split within the main split:
:vsp
Open a terminal:
:terminal
Maximize the main split vertically and horizontally:
- Ctrl-w _
- Ctrl-w |
Center the main split:
- Ctrl-w h
- Ctrl-w l
- Ctrl-w l
Navigate back to the main split:
- Ctrl-w h
Use Ctrl-w <, Ctrl-w >, Ctrl-w +, Ctrl-w - to modify split borders to your liking.