-
-
Notifications
You must be signed in to change notification settings - Fork 84
5. Troubleshooting
-
On the customization of shell prompt, in case the machine shows two IP addresses, it can affect negatively the graphics of the prompt. For solving it, the secondary IP address can be removed in the following manner
ip -4 addr | grep -v '127.0.0.1' | grep -v 'secondary' | grep -oP '(?<=inet\s)\d+(\.\d+){3}'
. -
In case a script must be run by NetworkManager service at the login of the user, NetworkManager runs as root or nobody, and, on the script, environment variables as
$HOME
or$USER
cannot be recognized because unknown. -
On WMware, if the screen autosize is not working after a reboot, verify if
vmtoolsd.service
is running and add the following modulesMODULES=(vsock vmw_vsock_vmci_transport vmw_balloon vmw_vmci vmwgfx)
to/etc/mkinitcpio.conf
and then executesudo mkinitcpio -P
and then reboot. -
If the user would like to use Alacritty as terminal, amd the mouse pointer disappears across the terminal itself, it means that in
/usr/share/icons/default/index.theme
is set a non-existing cursor theme. For fixing it, change the cursor theme with the current existing cursor theme, for example:[Icon Theme] Inherits=Breeze_Hacked
-
On Alacritty, the user can run Neofetch only at the startup of the terminal without executing it if you further call BASH or FISH. For doing it, add the following code in
alacritty.yaml
:shell: program: /usr/bin/fish args: - --login - --init-command - neofetch
-
After the installation of a new Athena version, if the screen freezes after login and need to resize the Virtual Machine window for seeing the update of the desktop, the issue could be in
/usr/lib/calamares/modules/displaymanager/main.py
that go to writeXSession=gnome-xorg
string inside/var/lib/AccountsService/users/*username*
. This causes freezing because Athena uses Wayland instead of xorg. For solving it, need to change themain.py
ordm_main.py
file, scroll to the Desktop Environment section and change the variable fromgnome-xorg
tognome
. Usually, the new versions of Calamares have already this change, so the user can suffer this issue if it takes Calamares from a non-official source. -
During the installation of Athena OS, if you get the following error:
Installing for x86_64-efi platform. Could not prepare Boot variable: No space left on device grub-install: error: efibootmgr failed to register the boot entry: Input/output error. WARNING: [PYTHON JOB]: "Command 'grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=Athena --force' returned non-zero exit status 1." [PYTHON JOB]: "stdout:Installing for x86_64-efi platform.\nCould not prepare Boot variable: No space left on device\ngrub-install: error: efibootmgr failed to register the boot entry: Input/output error."
install Athena by Manual partitioning.
-
To set a GRUB Theme for Live Environment generated by Archiso, you must not install the related theme package, but in archiso folder, you must store the theme files in
archiso/grub/themes/
and edit the filearchiso/grub/grub.cfg
by changing thetheme
variable as:theme="/boot/grub/themes/<your-theme>/theme.txt"
-
When you create a new ISO and start Calamares, and you get an error like
Module cannot be loaded: users@users
, probably it is due to a old missing library (you can verify this error by runningcalamares -D8
). Just recompile Calamares in a full updated environment. -
To correctly synchronize your environment with time clock (in Live Environment or your installed system), you need to start the
systemd-timesyncd
service. Just note that it conflicts withntpd
service, so if you start the latter, the former will be interrupted. So use just the first one and verify it enables synchronization by runningtimedatectl
. It prevents to have a time clock skew in Live Environment or in your installed system. -
The update of GRUB by
grub-mkconfig -o /boot/grub/grub.cfg
must be executed only if a new kernel is installed or removed. It must not be executed by a hook when the kernel is upgraded because it is an useless operation. Source: https://bbs.archlinux.org/viewtopic.php?pid=2131453 -
About mkinitcpio hooks, you can set several hooks according to Arch Wiki. Even if Athena uses systemd as init, you can choose to set BusyBox or systemd hooks according to your needs. Just a warning: in Live ISO mkinitcpio.conf don't set
systemd
hook because you will get:Cannot open access to console, the root account is locked Press ENTER to continue
and you cannot boot. Instead, use
udev
. The installed system is not affected by this issue. -
In case your are on GDM, and you set Wayland, and when you try to login, it does not and you are back to your user choice, the issue could be related to the fact that the executable
/usr/bin/gnome-session
cannot find the$SHELL
among the shells specified in/etc/shells
. If it is true, add the value of$SHELL
in/etc/shells
and reboot. -
When you build a project by meson, remember that the file
.in
must have executable permissions otherwise the created binary bysudo ninja -C build install
will not be executable. -
In case n NVIDIA driver does not work, uninstall the current package, for example
nvidia-open-dkms
with the related dependencies as the following:sudo pacman -R nvidia-open-dkms nvidia-utils nvidia-settings cuda python-py3nvml gwe
and try to install
xf86-video-nouveau
and addnouveau
module inMODULES=
of/etc/mkinitcpio.conf
(not sure if removing NVIDIA modules) or try other NVIDIA driver packages. -
During the ISO creation process, the users in
/etc/passwd
must be set with BASH shell and not FISH shell otherwise, when the user logs in, all the scripts in/etc/profile.d
directory cannot be sourced or parsed because they are written in BASH language. BASH language differs from FISH language. In Athena the change of shells is performed only at the end in therun-once.sh
script. -
After the installation of a GNOME Extension, if the user would like to avoid to reboot the system, it can execute:
busctl --user call org.gnome.Shell /org/gnome/Shell org.gnome.Shell Eval s 'Meta.restart("Restarting…")'
. -
If the user is experiencing a logout freezing, inside the Athena Repository, in the module
athena-calamares-config/etc/calamares/modules/displaymanager.conf
, set GDM as Display Manager if you the user is using it andgnome-wayland
asXSession
. Avoid to usegnome-xorg
otherwise the user will suffer freezing at login when autologin is set. -
For installing Firefox extension by CLI avoiding to interact with the "Install" popup message of the browser, the user can export
$HOME/.mozilla/firefox-esr
containing all the preferred extensions from the source machine and import it to the target machine. Do this operation in a fresh environment for avoiding to store user data in the browser. -
If the Calamares modules don't change according the changes applied in the
.conf
files, pay attention to the first lines because some of them are pointing to a source not containing the last changes. Just comment the line with this source. -
If
.gresource
file in/usr/share/gnome-shell
can produce issues after a GNOME update (for example Icons in the system tray too big), just recompile it inside an environment with the new version of GNOME. Follow: https://wiki.archlinux.org/title/GDM#Login_screen_background_image. Before compiling, ingnome-shell.css
, remember to set the background color as transparent by settingbackground-color: rgba(0,0,0,0.0);
in the Top Bar section. Also find#lockDialogGroup
and replace it by:#lockDialogGroup { background: url(night-city.jpg); background-size: cover; background-repeat: no-repeat; }
-
For setting a new mouse pointer theme (i.e.,
Breeze_Hacked
), download and compile it. After the compilation, the resulting files are moved to$HOME/.icons/Breeze_Hacked
and, for storing it at the creation of ISO, copy it toairootfs/etc/skel/.icons
. For setting it, dconf is needed to set this theme as explained in the related Wiki section. For setting it during the usual system usage, open "Gnome Tweaks" -> "Appareance" -
After a package installation the user gets some "corrupted" error message, run
sudo pacman -Syyu
. -
If the user chooses a different Display Manager for Live Environment instead of GDM, remember to apply this change inside Athena Repository in
athena-system-installation/usr/local/bin/athena-displaymanager-check
and set the chosen Display Manager as first IF condition above the other ones, otherwise the user choice will be overwritten. Remember also to link the right Display Manager service in/usr/lib/systemd/system
toairootfs/etc/systemd/system
. -
During
sudo pacman -Syy
or similar, if you get an error containing:error: GPGME error: No data error: failed to synchronize all databases (invalid or corrupted database (PGP signature))
check what is the problematic repository by running
sudo pacman -Syyu --debug
. For example, if you get an error due toblackarch.db
, it could be due to a problematic mirror, indeed, if you edit/etc/pacman.d/blackarch-mirrorlist
and delete or comment the line of the problematic mirror, for examplehttp://blackarch.pi3rrot.net/blackarch/$repo/os/$arch
, then runsudo pacman -Syyu
and it should work. -
When Calamares Installer is run, if it cannot find a module, verify its presence in
/usr/lib/calamares/modules
. If it is there, the issue is the absence of a package that is not installed but it was built together Calamares in the source environment. In this case, once the package has been detected, if it is not needed, rebuild Calamares excluding this package bycmake
arguments. For example, if the user developer built Calamares in a system with AppStream and it is not excluded by CMake, when the user runs Calamares Installer, it gets apackagechooser@packagechooser not loaded
error despite packagechooser module is inside/usr/lib/calamares/modules
. If AppStream is needed, the user can install it bysudo pacman -S appstream-qt
. If AppStream is not needed, the developer must exclude it from CMake by uninstalling AppStream package before building Calamares or using the following CMake arguments:-DWITH_APPSTREAM=OFF -DWITH_APPDATA=OFF
-
During the
makepkg -si
process for installing a local package in the current system, if the user gets:==> Starting pkgver()... fatal: not a git repository (or any parent up to mount point /) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). fatal: not a git repository (or any parent up to mount point /) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). ==> ERROR: A failure occurred in pkgver(). Aborting...
the issue could be related to the absence of the
.git
directory with its files that are needed for identifying the git version of the package, so execute agit clone <repository-URL>
. -
If on
discordo
application some fonts are weird, installgnu-free-fonts package
package. -
If Calamares cannot be started because packagechooser or other custom modules try to use an old version of a lib file that does not exist in the system because you have the updated version, and if you recompile Calamares, you are still getting the same error, it could be that you have Calamares custom modules on
athena-calamares-config
in/usr/lib/calamares/modules
and you have.so
files that were been generated with missing old version of that lib file. To solve this, instead of copying and pasting the new original packagechooser lib .so file in these modules, you can link them directly to this original file so they will refer directly to the working file. -
If the user is getting these errors when is building a PKGBUILD:
ERROR: ld.so: object 'libfakeroot.so' from LD_PRELOAD cannot be preloaded (cannot open shared object file): ignored.
andtouch: setting times of './etc': Operation not permitted
could mean u are using sudo command inside the PKGBUILD. Remove it otherwise the owner will change to "root". -
If a startup script is not run, check in
profiledef.sh
the presence of["/<script-path>/<script-name>"]="0:0:744"
or["/<script-path>/<script-name>"]="0:0:755"
based on the needed permissions. -
In case on GitHub there is an icon of a folder with an arrow, and it is not possible to pull it, follow: https://stackoverflow.com/questions/62056294/github-folders-have-a-white-arrow-on-them
-
In case, during a
sudo pacman -Syy
you get an error related to a key that saysunknown trust
, just run:sudo pacman-key --lsign-key <key-id>
-
For preventing to get an error related to an old key of Athena Repository during the creation of the ISO, as:
Package (2) Old Version New Version Net Change Download Size blackarch/blackarch-keyring 20140118-3 20180925-5 -0.02 MiB 0.02 MiB athena-repository/mkinitcpio-openswap 0.1.0-1 0.1.0-3 0.00 MiB 0.01 MiB Total Download Size: 0.03 MiB Total Installed Size: 0.02 MiB Net Upgrade Size: -0.02 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... blackarch-keyring-20180925-5-any downloading... mkinitcpio-openswap-0.1.0-3-any downloading... checking keyring... downloading required keys... :: Import PGP key E0CF5924036306BF, "Antonio Voza <vozaanthony@gmail.com>"? [Y/n] error: key "E0CF5924036306BF" could not be looked up remotely error: required key missing from keyring error: failed to commit transaction (unexpected error) Errors occurred, no packages were upgraded.
it means that the packages of the repository are still signed with the old key, so the current
.zst
and.zst.sig
files must be deleted and the packages must be built again and signed with the new key and pushed to the repository. This task must be done for all the packages inside the repository. It is a good practice to executepacman -Sc
for flushing the pacman cache, and then executepacman -Syyu
for updating the repositories on the user machine. -
After the building of a package, remember to delete
src
andpkg
folder because they could contain some broken symbolic links that could block the deployment of the package on GitHub page repository. -
For editing some messages in the GRUB at boot time, refer to
archiso/syslinux
andarchiso/efiboot
-
If you get the error:
==> Signing package(s)... ==> WARNING: Failed to sign package file hyper-athena-config-1.0.0-1-x86_64.pkg.tar.zst.
remember that the repository key must be both on pacman-key list keys but also on gpg list keys, so we need to:
sudo pacman-key --recv-keys A3F78B994C2171D5 --keyserver keyserver.ubuntu.com gpg --recv-keys 5A34EB551197A065F8A401AFA3F78B994C2171D5 keyserver.ubuntu.com
Note: The signature checking implemented in makepkg does not use pacman's keyring, instead relying on the user's keyring. It means that is is related to keys in
$HOME/.gnupg
. When the user signs a package and gets==> ERROR: The key A3F78B994C2171D5 does not exist in your keyring.
, it means the user didn't import correctly the private key. The private key must be imported with nosudo
bygpg
command, otherwise it will be imported with errors.Note:
gpg import/recv-keys/list-keys
commands are different bypacman-key import/recv-keys/list-keys
commands.If the user gets an error saying the remote key cannot be fetched by the remote server, execute both of the commands above until you get the right response.
-
About GNOME extensions, usually, after installation, the user needs to logout/login and then enable then manually by
gnome-extensions enable extension@name
. If we are building a new ISO and we want automatically enable GNOME extensions, we need only to insert them inside the output file produced bydconf dump /org/gnome/shell/ > dconf-shell.ini
command and add the name of the extension inside theenabled-extensions
field. In this way, when the extensions added in that field will be effectively installed, after the logout/login, it will be automatically enabled without running the manualgnome-extensions enable extension@name
command. -
During the update of a new ISO, if GNOME extensions don't work, go to the Application Menu panel and search for Extensions. If the first checkbox is disabled, enable it and check if the extension checkboxes below are also enabled. If this method does not work, try to rebuild again the ISO file because probably some GNOME or GDM-related file has been corrupted. UPDATE: this issue should be now fixed by adding in
/etc/profile.d/run-once.sh
script thegsettings set org.gnome.shell disable-user-extensions false
. In this way, if the system disables the GNOME extensions during the login, after the login they are again enabled automatically. -
Currently the GNOME extensions packages install GNOME extensions at system level (so in the folder
/usr/share/gnome-shell/extensions
. If in the future we need to have a same extension separated for user, we should change the PKGBUILD and store the extension files in$HOME/.local/share/gnome-shell/extensions
. Note that at the moment of the ISO creation, home folder is not defined. -
If the developer has some sub-git modules in the Athena Repository, mostly when it downloads new themes and icons from GitHub, during the building of the repository ("Action" tab on GitHub), it can get an error like:
Error: fatal: No url found for submodule path 'x86_64/packages/athena-graphite-theme/usr/share/themes/Graphite-gtk-theme' in .gitmodules Error: The process '/usr/bin/git' failed with exit code 128
For solving it, run:
git rm --cached x86_64/packages/athena-graphite-theme/usr/share/themes/Graphite-gtk-theme -f
where the folder path should be the one containing the
.git
folder. -
In case the developer edits something on GitHub repository online, and the tries to commit and push some changes from the local repository without performing a pull, it can get an error and it is asked to choose on one kind of pull to execute. If the developer wants to merge the changes performed on GitHub website and on the local repository, execute:
git pull --no-rebase
Then, the developer can correctly push the changes from the local repository.
-
If the user is not able to access to the login page or it is frozen, open a text terminal by following: https://calcoen.web.cern.ch/Linux_keys.htm
-
If the user is working on a virtual machine where it has two separated logic volumes, for example
lv_root
andlv_home
and it needs to resize them because on of them has consumed almost all available space: Let's guess the user would like to shrinklv_home
from 59.51 GB to 10 GB and give all the resultant free space tolv_root
. Logout andCTRL+ALT+F3
and login in the text terminal environment as root. Thenumount -a #(we need to umount /home) e2fsck -f /dev/volgroup0/lv_home resize2fs /dev/volgroup0/lv_home 10G lvresize -L -49.51G /dev/volgroup0/lv_home lvresize -l 100%FREE /dev/volgroup0/lv_root #If getting Warning message because we are reducing the space, type "no" and go ahead lvresize -L +20G /dev/volgroup0/lv_root resize2fs /dev/volgroup0/lv_root
Then reboot.
-
If the user needs to export to a new machine all the GNOME configuration:
dconf dump / > dconf-settings.ini
On the new machine, it can import this global settings by:
cat dconf-settings.ini | dconf load /
If you need to export and import only a subset of configuration, change the
/
path. -
For enabling Shared Folders in VMware, enable it on the VM settings and then you should get the path
/mnt/hgfs/<sharefolder-name>
. If it is not working, execute:sudo mkdir -p /mnt/hgfs/ sudo /usr/bin/vmhgfs-fuse .host:/ /mnt/hgfs/ -o subtype=vmhgfs-fuse,allow_other
In general, when the user reboots the machine, the Shared Folders cannot be accessed despite they are tagged as Enabled in VMware settings. For solving this issue, it is needed to create
/etc/systemd/system/mnt-hgfs.mount
file with the following content:[Unit] Description=VMware mount for hgfs DefaultDependencies=no Before=umount.target ConditionVirtualization=vmware After=sys-fs-fuse-connections.mount [Mount] What=vmhgfs-fuse Where=/mnt/hgfs Type=fuse Options=default_permissions,allow_other [Install] WantedBy=multi-user.target
Then, create
/etc/modules-load.d/open-vm-tools.conf
with this content:fuse
If the file already exists, add that line to the file. Enable the system service by
sudo systemctl enable mnt-hgfs.mount
. This will make sure thehgfs
fdirectory will be mounted after a reboot. Make sure the 'fuse' module is loaded by runningsudo modprobe -v fuse
. In Workstation or Fusion, enable "Shared Folders" in "Virtual Machine Settings" > "Options", and set the folders to be shared. The shared folders should appear in the directory/mnt/hgfs
. If that is not the case, start the service withsudo systemctl start mnt-hgfs.mount
or reboot. In Athena this is managed automatically from the installation phase byathena-system-installation
, when VMware is detected as virtualization platform. Source: https://kb.vmware.com/s/article/74650 -
If
sudo
command returns incorrect password despite it is correct, typefaillock --user <your-username> --reset
on the terminal. -
If you need to color an ASCII art on the terminal for only specific characters, save it in a file, replace the single character, e.g.,
(
, with itself between color codes, e.g.,\033[0;92m(\033[0m
(green color), and replace all. Then, encode your ASCII art and you can call it inside a bash script by:printf '%b\n' "$(base64 -d <<<"<encoded base64-gzip ASCII art>" | gunzip)"
. -
If you are using a GNOME Extension like Desktop Icons NG or Desktop Icons Neo or Dash to Dock and some of their icons they spawn are opened wrongly by a terminal like Kitty, it means that a default application for inode/directory is not specified. You can fix it by executing
xdg-mime default org.gnome.Nautilus.desktop inode/directory
. Note that the list of default applications should be in$HOME/.config/mimeapps.list
. -
Adding Chaotic Repository will add a huge number of packages that pacman can retrieve. It means also that, if you are pressing TAB button for package name completion, it will take some seconds for searching a package name. The idea could be adding Chaotic repository on the host machine for making the ISO but not adding it to the target system.
-
If you write
sudo pacman -S package-na
and then you press TAB for autocompletion and get a[sudo] password for user:
, the issue could be on your aliases, where apacman
alias is set assudo pacman
. Just deletesudo
from that alias value. -
If you are using VMware and the VMware extensions (autosize screen and clipboard) don't work, reboot the machine. If this method does not work, turn off the machine and turn on again.
-
Sometimes the GNOME extensions could be disabled for safety by GNOME, so you cannot open PenTOXIC and PWNage menus. For solving this issue, go to the Application Menu, search for "Extensions", open it, check the first option for enabling all the GNOME extensions that have been disabled by GNOME.
-
If
tmux
does not show any icons or emoji, as well aslsd
folder and file icons, just usetmux -u
. -
For importing manually the TMUX plugins on a new ISO, remember to set all the file
.sh
instpm
,bin
andbindings
folders (and maybe also the plugin scripts) with permission as755
otherwise they won't be loaded and you will receive an error when TMUX TPM runs. -
After the installation of the operating system, at first login,
secret-login
cannot store passwords due to a bug that freezes the insertion of a password. So you need to logout and login at least one time. For solving it in case you are distributing an ISO file, it is needed to create$HOME/.local/share/keyrings/default
file containingHTB
string. -
At the beginning, for native installation the WiFi manager didn't work because the WiFi adapter was not recognized. For solving it,
linux-firmware
package has been installed. Then, click on the icons near the Power option on the top-right side of the screen and you will see the WiFi icon inside it. -
During the test of new themes to be implemented, remember that if you set a non-compliant GNOME 42 theme, Adwaita theme is applied and, for testing the other themes you need to close
gnome-tweaks
and File Manager otherwise you cannot see the changes with the new theme. -
If you are installing Athena in Dual Boot and Calamares Installer closes during the installation with no notice, or you get an error like:
error: partition / too full: 63256 blocks needed, 61450 blocks free error: not enough free disk space error: failed to commit transaction (not enough free disk space) Errors occurred: no packages were upgraded.
it means
/run/archiso/cowspace
is full (default size: 256MB). In this situation, Calamares is not able to work properly. For solving this issue, on Live Environment, open a terminal and type:sudo -S mount -o remount,size=2G /run/archiso/cowspace
Source: https://wiki.archlinux.org/title/archiso#Adjusting_the_size_of_root_partition_on_the_fly For solving this issue automatically, you can make a script working only in the Live Environment, inside
/etc/profile.d/
folder, that will be deleted after the installation of the final system. An example of this script could be:#!/bin/bash sudo mount -o remount,size=2G /run/archiso/cowspace
In Athena, this script has been added inside
athena-system-installation
package, so it can live only in the Live Environment and will be deleted whenathena-system-installation
is removed at the end of the installation of the final system. -
During a partial installation, if Tmux is not applying theme color or plugin correctly and you try to run
.tmux/plugins/tpm/scripts/install_plugins.sh
and you get:Installing "tpm" tmux-plugins/tpm "tpm" download fail Already installed "tmux-sensible" Already installed "tmux-power" Already installed "tmux-window-name" Already installed "tmux-mouse-swipe" Already installed "tmux-notify" Already installed "tmux-prefix-highlight" Already installed "tmux-net-speed" Already installed "tmux-yank"
It could be cause by a
fatal: destination path 'tpm' already exists and is not an empty directory.
. Try to rename the.tmux/plugins/tpm
folder as.tmux/plugins/tpmBAK
and run.tmux/plugins/tpmBAK/scripts/install_plugins.sh
, then runtmux
, press CTRL+S and r for reloading Tmux, delete thetmpBAK
folder and kill the remaining tmux running processes. -
When you update the source code of
athena-application-config
package, remember to check thedconf-shell.ini
file. It should not have anything inside the "Available Machines" submenu. So, the "children" field of "Available Machines" submenu must be[]
. -
In case you would like to edit an application icon inside a
.desktop
file, in theIcon=
field, you should type only the name of the icon without path and with no extensions. The system will search for all files with that name inside/usr/share/icons
folder. It will search for first inside the set icon theme, and, if it does not exist there, it goes to search in other icon theme folders. If you have a.png
file, remember to put it in the right folder with the related sizeNxN
. If you have a.svg
, the icon should be stored inside/scalable/apps
folder. In case the icon on the desktop application does not appear, try to open the image with an image editor, because, mostly for.svg
, if they are produced by Photoshop or GIMP, they could be visible in Windows but not in Linux. In this case it is better using a software asinkscape
for getting the.png
file and then save it as.svg
. Furthermore, in case your.desktop
file is executing a bash script that calls a Python GUI script, the icon specified in.desktop
file won't be shown, because it is related to the specified script, that is the bash script but not the Python script. For solving this issue, avoid calling the Python script by a bash script, but, create a symbolic link to the Python script, put this symbolic link in abin
folder, and then make the Python script as executable bychmod +x
. -
Inside the creation of the ISO, for solving the issue related to the
BlackArch and Athena key unknown
inside the Live Environment, just take from a working environment the/etc/pacman.d/gnupg/trustdb.gpg
and/etc/pacman.d/gnupg/pubring.kbx
files and store them inarchiso/airootfs/etc/pacman.d/gnupg/
. Remember to execute this operation each time BlackArch or Athena keys change. -
Remember that, in Archiso, the
pacman.conf
related to the live environment is inarchiso/pacman.conf
while the one related to the target system is inarchiso/airootfs/etc/pacman.conf
. -
In a Virtual Machine environment, for resizing the window already in the GRUB and LightDM environment, edit
/etc/default/grub
and editGRUB_GFXMODE=auto
asGRUB_GFXMODE=1920x1080
. In case the resolution applied is higher than the possibility of our graphic card, it is simply not applied, and it should work asauto
. -
In case there is a buggy package in its latest version, you can implement a previous stable version on your remote repository and store it at the beginning of the repository list in
/etc/pacman.conf
. In this way, it will be retrieved for first, regardless the version. -
All the display managers use a service account for managing their activities. For setting an avatar stored in the home folder of the user (i.e., as
/home/<user>/.face
). by default, these accounts cannot access to the.face
due to permission. In order to work correctly, the home folder of the users should be set at least aschmod 711 /home/*
. -
In Calamares, if there is some weird behavior, for example by clicking on "Install" button and the window freezes on "Summary" window instead to go to the "Install" window (despite the installation is going well under the hood), it could be caused by some updated packages that could affect some Calamares dependency. For example, in the last issue case, the problem was caused by
mesa
package at version22.2.1-1
and we needed to downgrade to22.1.7-1
for solving it. This issue impacted GNOME environment. When we tested on XFCE, we didn't have that issue. For similar issue, start the investigation by runningpactree -u athena-calamares
on an old working Athena ISO and check the version difference with respect to the latest version of those packages and try to downgrade them one by one and testing Calamares. -
In case the microphone seems to not work, open
pavucontrol
and increase thedB
value. Then try again if it works. -
In case we are working on a VM and we need to set a static IP on it (remaining with DHCP enabled in the host machine), you can set your VM network settings as Bridged (with physical network connection state replication enabled), and inside the Arch VM run
dhcpcd -S ip_address=<static-ip> -S routers=<default-gateway-ip> -S domain_name_servers=<DNS-server-IP> -s <static-ip>/32 <interface-name>
. This command not only will set theip addr
entry for the static IP, but also routing rules showing by theip route
command. Note that if you are doing this assignment in Arch Install, you need to reapply thedhcpcd
command also on the target system, so remember to adddhcpcd
package during the Arch Install. Then, on the target system, delete the additional old IP address entry inip addr
by runningsudo ip addr del old-ip-address/prefix dev <interface-name>
. -
During GNOME upgrades, also the themes should be reviewed because they could not work anymore. For example, migrating to GNOME 43 meant Athena themes working only with GTK-4.0, and it is needed that the themes are linked with libadwaita. Currently, the problem of themes has been solved by re-downloading them and placed in
/usr/share/themes
or$HOME/.themes
. For GruvBox and TokyoNight, that have each one two separated archives, the content of archive with-G42.zip
suffix must replace/usr/share/themes/<theme-name>/gtk-4.0/gtk.css
. At the end, for linking libadwaita to the used theme, the following commands must be run (not everyone, just the set of commands related to the used theme):# GRAPHITE mkdir -p "${HOME}/.config/gtk-4.0" ln -sf "/usr/share/themes/Graphite-Dark-compact/gtk-4.0/assets" "${HOME}/.config/gtk-4.0/assets" ln -sf "/usr/share/themes/Graphite-Dark-compact/gtk-4.0/gtk.css" "${HOME}/.config/gtk-4.0/gtk.css" ln -sf "/usr/share/themes/Graphite-Dark-compact/gtk-4.0/gtk-dark.css" "${HOME}/.config/gtk-4.0/gtk-dark.css" # SWEET DARK mkdir -p "${HOME}/.config/gtk-4.0" ln -sf "/usr/share/themes/Sweet-Dark/assets" "${HOME}/.config/assets" ln -sf "/usr/share/themes/Sweet-Dark/gtk-4.0/gtk.css" "${HOME}/.config/gtk-4.0/gtk.css" ln -sf "/usr/share/themes/Sweet-Dark/gtk-4.0/gtk-dark.css" "${HOME}/.config/gtk-4.0/gtk-dark.css" # BLUE EYES SAMURAI mkdir -p "${HOME}/.config/gtk-4.0" ln -sf "/usr/share/themes/Tokyonight-Dark-B/gtk-4.0/assets" "${HOME}/.config/gtk-4.0/assets" ln -sf "/usr/share/themes/Tokyonight-Dark-B/gtk-4.0/gtk.css" "${HOME}/.config/gtk-4.0/gtk.css" ln -sf "/usr/share/themes/Tokyonight-Dark-B/gtk-4.0/gtk-dark.css" "${HOME}/.config/gtk-4.0/gtk-dark.css" # CYBORG GRUVBOX mkdir -p "${HOME}/.config/gtk-4.0" ln -sf "/usr/share/themes/Gruvbox-Dark-B/gtk-4.0/assets" "${HOME}/.config/gtk-4.0/assets" ln -sf "/usr/share/themes/Gruvbox-Dark-B/gtk-4.0/gtk.css" "${HOME}/.config/gtk-4.0/gtk.css" ln -sf "/usr/share/themes/Gruvbox-Dark-B/gtk-4.0/gtk-dark.css" "${HOME}/.config/gtk-4.0/gtk-dark.css" # Akame theme currently does not have GTK 4.0 files so legacy windows (like the File Manager) cannot use the theme.
-
In Calamares, if we choose to do "Manual Partition", remember that the main partition must have
boot
flag enabled. -
If you add a new kernel in Calamares installer, remember to edit
athena-kernel-check
inathena-system-installation
package. -
When we set a new kernel type in Archiso for the Live Environment, remember to change also
athena
andlinux.preset
file contents inarchiso/airootfs/etc/mkinitcpio.d
folder (don't renamelinux.preset
),archiso_pxe-linux.cfg
andarchiso_sys-linux.cfg
inarchiso/syslinux
folder,01-archiso-x86_64-linux.conf
,02-archiso-x86_64-speech-linux.conf
and03-archiso-x86_64-ram-linux.conf
inarchiso/efiboot/loader/entries
folder, andgrub.cfg
inarchiso/grub
folder. Also the/etc/calamares/modules/unpackfs.conf
file should be edited by replacingvmlinuz-linux
withvmlinuz-<kernel_name>
. Note that by placing the kernel choice in Calamares is not a good approach, because it is not possible to uninstall the previous kernel type during the Calamares installation. It is better to remove the kernel choice from Calamares and use only one. It could be worth to have a Tweak Tool that allows to switch among kernels when the target system is already installed. -
Sometimes both in Bare Metal and in VM scenarios, the Calamares
unpackfs
module could fail because theairootfs.sfs
andvmlinuz-linux-zen
files could not be in/run/archiso/bootmnt
but they are incopytoram
folder. It is possible to solve this issue by addingcopytoram=no
orcopytoram=n
toarchiso_pxe-linux.cfg
andarchiso_sys-linux.cfg
inarchiso/syslinux
folder at the end of eachAPPEND
line, and01-archiso-x86_64-linux.conf
,02-archiso-x86_64-speech-linux.conf
inarchiso/efiboot/loader/entries
at the end ofoptions
line. -
If you get graphic behavior on Burpsuite on VMware Workstation VM, it should be caused by 3D Acceleration + Wayland. In order to make it working, just use Xorg.
-
During the installation of the system, if you get the following error on Calamares logs:
2022-11-13 - 19:37:34 [1]: void Calamares::ViewManager::onInstallationFailed(const QString&, const QString&) ERROR: Installation failed: "Package Manager error" 2022-11-13 - 19:37:34 [6]: .. - message: "Package Manager error" 2022-11-13 - 19:37:34 [6]: .. - details: The package manager could not prepare updates. The command <pre>pacman</pre> returned error code 1.
just check if BlackArch or other repositories are reachable by your host.
-
For dual boot, in case you are using two different physical disks, for example one NTFS for Windows and another NTFS for data, and you want to install Athena on the last one, remember that the MBR used by Windows is in the first disk, but you must be sure that the first volume should be a FAT32 labelled NOT as "msftdata" but as "boot/efi" (or "boot"). You can check this by GParted. If it is "msftdata", delete the volume and create again a FAT32 with "boot/efi" (or "boot") flag. If you need to have a volume for "msfdata", it must be AFTER the boot volume. In Calamares, as Boot Loader to write, choose the one of the first disk. After the installation, in BIOS -> Boot, you should be able to manage the priority on the disk between Athena and Windows Boot Manager. Before this, if Windows Boot is broken, you can fix it by running a Windows boot USB, enter in Recovery Mode, open the Command Prompt and run "bootrec rebuildbcd" and "bootrec fixmbr" and then reboot and check on BIOS the Boot Priority of the disk. Link about flags: https://www.linux.org/threads/gparted-partition-and-filesystem-flags.11640/
-
In NeoVim, when you use NvChad and you want to enable the Hydra ASCII art, in
~/.config/nvim/lua/plugins/init.lua
search forgoolord
piece of code and change itsdisable
variable tofalse. Then, open
nvimand run
PackerSync`. -
In NeoVim, the "leader" key is specified in
./lua/core/options.lua
on themapleader
variable. It is " " () by default. -
For XFCE Picom environment, at the beginning we set
glx
as backend of picom, but on VM with no 3D acceleration, it caused high CPU usage. According to some posts, it causes the same issue also on some NVIDIA proprietary drivers, and in general also excessive power consumption. For this reason in$HOME/.config/picom.conf
we decided to setxrender
instead ofglx
as picom backend. -
In a
PKGBUILD
usingmake install
, it could generate aPermission denied
error. For fixing it, you need to identify the variable used inMakefile
that specifies the root of the environment$pkgdir
. For example, this variable could beDESTDIR
orINSTALL_ROOT
. If you use the right one, for examplemake INSTALL_ROOT="$pkgdir" install
, you won't get the error anymore. -
If you tried to push to the GitHub repository a package that is bigger than 100 MB, each push you will do will give the error due to bigger package, even if you delete this big file. It occurs because the information of the big file remains in the git history despite it has been deleted. For solving this, run
sudo pacman -S git-lfs
and thengit lfs migrate import --include="<pkgname>.pkg.tar.zst"
and it should convert this file to its hash string. After this, try to push again your modification to the remote repository. You should have a string saying the upload of a LFS but don't care about it. After this, try to re-push again and it should be well. NOTE: if you rungit lfs migrate import
on all files, don't do it, otherwise they will be all converted in text files containing their hash. If it happens just rungit lfs migrate export --include="<affected-files>"
. -
If VSCode themes are not applied after the installation, the issue could be related to the
$HOME/.vscode-oss/extensions/extensions.json
file that is pointing to a non-existing folder for each theme. For fixing this, just edit the path of the specified themes with the correct one. Note: the file cannot expand environment variables. -
At boot time, if you cannot reach the Login Screen and you are freezing on a blinking cursor or on a "Starting udev kernel device" or similar message:
- press
CTRL+ALT+F2
, login by the terminal, and remove/etc/X11/xorg.conf
or some GPU related files (i.e., NVIDIA related) in/etc/X11/xorg.conf.d/
directory. - or don't install any NVIDIA packages at installation time. Mostly in case you don't have an integrated GPU (but a LLVMPIPE software rendering appears as graphics), once you installed the new baremetal system without NVIDIA packages, just verify if
LLVMPIPE
is managing your graphics by GNOME settings orglxinfo | grep OpenGL
. Then, runsudo pacman -S nvidia-dkms
and reboot. Now you should have NVIDIA working! It does not need NVIDIA Optimus because it is the case without integrated GPU. Tested on an ASUS ROG Strix GeForce RTX 3060 GPU.
- press
-
In Linux environment, for making NVIDIA working there are several configurations to consider:
- Add
nvidia nvidia_modeset nvidia_uvm nvidia_drm
in the modules inmkinitcpio.conf
file and run the command for updating it - Add
nvidia-drm.modeset=1
in the grub config file - Add
VK_LAYER_NV_optimus=NVIDIA_only
and__GLX_VENDOR_LIBRARY_NAME=nvidia
in/etc/environment
in order to enable NVIDIA for OpenGL renderer. Note that at the beginning I was using__NV_PRIME_RENDER_OFFLOAD
but it has some issues on some applications asgnome-control-center
(the GNOME settings) that is not able to show the window when we try to open it. Wayland does not support NVIDIA, so NVIDIA must be used mainly on Xorg by switching the Integrated CPU to the Dedicated NVIDIA GPU byoptimus-manager-qt
in Xorg environment. After enabling it in Xorg, we are pushed back to the login screen and: - if we select Xorg, ok. And here we can use several NVIDIA applications as
envycontrol
that are not usable in Wayland; - if we select Wayland, we should have a hybrid GPU set (Integrated and Dedicated GPUs) but this scenario is not supported and will be disable at reboot. NOTE: all the points above seem to be related only when you have both Integrated and Dedicated GPU in your computer.
- some tools like bumblebee or nouveau (or maybe nvidia-optimus but not sure) can blacklist
nvidia
module, so don't install them if you want to use NVIDIA proprietary drivers.
- Add
-
In case your time clock and time zone is not set correctly, create a file
/etc/NetworkManager/dispatcher.d/09-timezone
with a similar content as the one in Athena OS. -
If you want that a wallpaper is shown by default in GNOME Settings -> Appearance, under Background pane, you need to create an XML file in
/usr/share/gnome-background-properties
and write the properties you need. Remember thatoptions
tag has the following values: none, wallpaper, centered, scaled, stretched, zoom, spanned. If you change the values inside, in order to see the changes, you need to delete and re-create the .xml file. -
In case you installed Athena in a VM and you try to press Athena Welcome buttons, or to open kitty and nothing happens, it could be related to the following "hidden" error:
[021 23:28:32.704824] [glfw error 65543]: GLX: Failed to create context: GLXBadFBConfig [021 23:28:32.704927] Failed to create GLFW temp window! This usually happens because of old/broken OpenGL drivers. kitty requires working OpenGL 3.3 drivers.
This issue is caused by
nvidia-utils
package (that in a VM environment is useless). If it is uninstalled, kitty and the Athena Welcome buttons start to work again. -
If you need to change the default version of JDK used in your system, detect which Java versions are installed by
archlinux-java status
and if you get, for example:java-17-openjdk java-19-openjdk (default)
you can run
archlinux-java set java-17-openjdk
and the system will use JDK17 as default version of Java. -
On VMWare workstation, for enabling multiple monitor, go to the Login Screen, set Full Screen, enable Cycle Multiple Monitors and type the password for logging in.
-
By running
users
orw
commands, if you see two sessions of your user instead of one, it should be common because GDM adds two sessions to/var/run/utmp
. xterm will (by default) also add an entry, so if you runxterm
, you'll get another "session" inusers
andw
(on some pts). -
During baremetal installation, if the installation fails for an error like:
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible. grub-install: error: filesystem `btrfs' doesn't support blocklists. 2023-02-08 - 11:20:33 [2]: WARNING: [PYTHON JOB]: "Command 'grub-install --target=i386-pc --recheck --force /dev/nvme0n1' returned non-zero exit status 1."
it should be caused because you boot Athena OS by BIOS/CSM/legacy-mode boot. This kind of boot is old and it could not work when you are installing Athena in dual boot with Windows because Windows uses EFI boot. For this reason, you too need to boot Athena OS from the USB key by EFI/UEFI mode and the installation won't have that error anymore. Source: https://superuser.com/questions/903112/grub2-install-this-gpt-partition-label-contains-no-bios-boot-partition
-
If you get the following error during
sudo pacman -Syyu
:error: blackarch: signature from "Levon 'noptrix' Kayan (BlackArch Developer) <noptrix@nullsecurity.net>" is invalid error: failed to synchronize all databases (unexpected error)
just run
sudo rm /var/lib/pacman/sync/blackarch.db.sig
and try againsudo pacman -Syyu
. If it does not work, try to run:sudo pacman -Sy archlinux-keyring chaotic-keyring
If it does not still work, run:
sudo pacman-key --init sudo pacman-key --populate sudo rm /var/lib/pacman/sync/blackarch.db.sig sudo pacman -Syyu
-
In baremetal with NVIDIA GPU, if you use Optimus Manager and you are working on Xorg, could happen that when you reboot and login on Wayland, the WiFi interface could disappear. At this point, just reboot and login on Xorg session.
-
If you run a docker container that uses a systemd in Xorg host, the entire host could crash. For avoiding this, switch the host to Wayland.
-
In case you remove manually all the containers from
/var/lib/docker/overlay2
for freeing the disk space, docker and podman could not work properly anymore. Reinstall them, disable, enable, and start their services, and reboot the computer. -
I noted that building the container by podman runs athena-motd correctly. If I build by sudo docker, it does not.
-
I needed to remove the install of chaotic-mirrorlist and blackarch-mirrorlist from the running script in Calamares because I noted that they could cause issues to some unstable mirrors like r2.garudalinux.org that produced an error like
error: failed retrieving file 'gnome-shell-extension-appindicator-git-1:52+6+gf57dbd5-1-any.pkg.tar.zst.sig' from r2.garudalinux.org : The requested URL returned error: 404
. By removing the installation of chaotic-mirrorlist from shellprocess@before, the issue has been fixed. -
Maybe if I try to edit mirrorlists inside Calamares scripts during the installation by sed, I noted they don't change in the target installed system.
-
If going to Settings -> Applications tab you don't see any application, just install
malcontent
package. -
I noted that, despite I have kitty as default terminal, some application icons as Fish or Vim or Nvim, when clicked, runs
gnome-terminal
. Currently I don't find a way to directly force them to run kitty, what I can do is to edit the related .desktop files as explained in https://unix.stackexchange.com/questions/365587/how-to-open-vim-in-terminator-by-default -
Note that in Arch Linux,
powershell
package does not support the autocompletion and maybe some module misses. Usepowershell-bin
package because it implements these missing features. -
During the build of a package, if git returns the following error:
error: unable to normalize alternate object path: wrong path
Reboot the machine. If it does not work, run
git rm --cached
and reboot the machine. -
In case you note that some graphic tearing or issues, or Alacritty is not rendering the typed strings well (for example it freezes until you press a key or it freezes the opening of file by nano), it could be due to the usage of LLVMPIPE software rendering instead of your GPU or VM graphic adapter. On VMware, I solved it by enabling 3D Acceleration and providing 2GB of graphic memory.
-
For adding a delay on Plymouth boot animation, create the file
/etc/systemd/system/plymouth-quit.service.d/super_long_splash.conf
:[Unit] Description=Longer Plymouth Boot Screen time [Service] ExecStartPre=/usr/bin/sleep 5
and reboot.
-
During the compilation of an AUR package, when you run
makepkg -si
and you get this error:process: archiso git repo ... FAILED (unknown public key 5CE88535E188D369)
Just run
gpg --recv-key <key-id>
. Source: https://wiki.archlinux.org/title/Arch_User_Repository#Acquire_a_PGP_public_key_if_needed
If you are using a Debian CLI host environment, to make secret-tool working correctly, as a standard user, run:
apt install gnome-keyring libsecret-tools dbus-x11
Store the 50-systemd-user.sh in /etc/X11/xinit/xinitrc.d/
by running:
export DISPLAY=:0
sudo mkdir -p /etc/X11/xinit/xinitrc.d
sudo wget -O /etc/X11/xinit/xinitrc.d/50-systemd-user.sh https://raw.githubusercontent.com/systemd/systemd/main/xorg/50-systemd-user.sh
source /etc/X11/xinit/xinitrc.d/50-systemd-user.sh
export $(dbus-launch)
Then, the object "/org/freedesktop/secrets/collection/login" must be created:
dbus-run-session -- bash
gnome-keyring-daemon --unlock
It will be asked for a password to protect the keyring. On the empty terminal row, type your password WITHOUT pressing Enter. Just press CTRL+D two times. Then, run again:
gnome-keyring-daemon --unlock
As before, type your password WITHOUT pressing Enter. Just press CTRL+D two times.
Now, you should see login.keyring
and user.keystore
files in ~/.local/share/keyrings
.
You can store your secrets by secret-tool
.
In case you forget the password to unlock the keyring, delete login.keyring
and user.keystore
files but you will lose your stored secrets.
To test the right password to unlock the keyring, download unlock.py and test the password by:
wget -O unlock.py https://codeberg.org/umglurf/gnome-keyring-unlock/raw/branch/main/unlock.py
chmod +x ./unlock.py
./unlock.py <<<YourKeyringPassword
If it does not return anything, the typed password is right, otherwise you will get "Unlock denied" message.
At each login or reboot, you need to unlock the keyring.
If you want to create a cronjob that uses dbus and secret-tool, create a script containing the following lines:
#!/usr/bin/env bash
# NOTE: to set the cron job at a specific time, check the right server timezone
export DISPLAY=:0
export $(dbus-launch)
# DBUS cannot be retrieved on cron environment. For this reason we pass the user value directly
export DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus"
echo $DBUS_SESSION_BUS_ADDRESS
# XDG_RUNTIME_DIR set to allow unlock.py to find control socket
export XDG_RUNTIME_DIR="/run/user/1000"
echo $XDG_RUNTIME_DIR
/home/gitsync/cronjob-builder/unlock.py <<<Password
<rest of the code>
-
In docker container, we generated the user directly with the /bin/zsh (unlike the main OS) otherwise, when in the container we run a command by FlyPie, the $SHELL were expanded as /bin/sh instead of zsh. It occurred because it considered the origin shell of the user instead of parsing the .bashrc file containing the definition of SHELL variable. At this point, the definition of SHELL variable in .bashrc was useless so we deleted it.
-
In case you use a specific shell and you cannot login in the container because it responds by "failed password" message, be sure that your shell is inside
/etc/shells
. -
Unlike the main OS, in Athena docker container, we call directly zsh and THEN we source .bashrc, indeed, inside .zshrc there is
source ~/.bashrc
in order to perform all the exports and the other rules defined in .bashrc when zsh is called. -
Usually in a container with GUI, for power off, restart, suspend or hibernate the system it is asked to insert Administrator password. For avoiding this, edit
/usr/share/polkit-1/actions/org.freedesktop.login1.policy
file and change toyes
the entries related topower off the system
,reboot the system
,suspend the system
andhibernate the system
.
-
If you start the WSL image and you get several errors at the beginning and systemd does not run, just exit from the WSL and run
wsl --shutdown
. Then, access again to the WSL environment. -
If you are working on WSL and when you try to store a secret by secret-tool you get a message similar to:
secret-tool: Could not connect: No such file or directory
just run
wsl --shutdown
and run Athena OS again. -
If you are working on WSL and when you try to store a secret by secret-tool you get a message similar to:
secret-tool: Object does not exist at path “/org/freedesktop/secrets/collection/login”
you need to execute
source /etc/X11/xinit/xinitrc.d/50-systemd-user.sh
. If you continue to get a similar message afterwsl --shutdown
, just exit from Athena OS WSL and re-enter and it should work again. For solving this issue, I insertedsource /etc/X11/xinit/xinitrc.d/50-systemd-user.sh
directly onhtb-update.py
if the running system is WSL. -
On WSL, I noted that after the installation, VNC and RDP services worked correctly and gnome-shell was able to find a DISPLAY. When I shutdown WSL and restarted it, VNC and RDP services stopped to work, indeed xrdp crashed after the user login and TigerVNC reported
gnome-session-check-accelerated: no X11 display found
in log files. It occurs because of Wayland lock files. Just remove them byrm -rf /run/user/1000/wayland-0*
.