9.2 KiB
title, description, published, date, tags, editor, dateCreated
| title | description | published | date | tags | editor | dateCreated |
|---|---|---|---|---|---|---|
| Solved Issues | A knowledgebase of all vicious errors I came across, and how I slew them. | true | 2022-04-30T20:10:42.177Z | wireguard | markdown | 2021-08-25T20:27:57.673Z |
General Linux Things
Just because you run into errors in a specific distribution (Gentoo!) does not mean it is at fault - some things just happen, and you'll just have to accept that.
Docker doesn't use BtrFS
I'm not sure if this is an error bit or a configuration bit (I think it should do it by default), but Docker doesn't always (if at all?) use the BtrFS driver when actually sitting on BtrFS, which is a loss in efficiency and performance (I think). The Gentoo wiki's page on Docker also shows how to set it up to use BtrFS (coincidentally - lucky you!).
Docker also has an extensive page on BtrFS, though it seems a bit systemd-centric.
This will also be added to the install checklist, once I bother writing one.
Gitea denies SSH access despite good key
As I've learned the hard way, Gitea has its SSH directory under data/git (and under data/ssh, which is surprisingly irrelevant here), and any change in permissions of this directory will bork all SSH access.
If you come across denied SSH access with keys that worked before, or find the following in the log - Authentication refused: bad ownership or modes for file /data/git/.ssh (really seems obvious now, does it?), chmod the directory to 700, and the authorized_keys file inside it to 600.
Inappropriate ioctl for device when decrypting GnuPGP File
Like all great things Linux, the answer came from a random blog on the web.
Quote: To solve the problem, you need to enable loopback pinentry mode.
- Add this to
~/.gnupg/gpg.conf:use-agent pinentry-mode loopback - Add this to
~/.gnupg/gpg-agent.conf, creating the file if it doesn't already exist:allow-loopback-pinentry - Restart the agent with
echo RELOADAGENT | gpg-connect-agent
and you should be good to go!
Confirmed working, and just in case - it seems to be a GUI thing.
Snapper can't create root snapshots
Snapper can't create root snapshots
This on is fully on you, partner. Two things are at fault:
-
Snapper really doesn't like it when the entire
.snapshotsgets wiped under its' feet. -
Snapper cannot snapshot a volume which has an active swap file on it
To avoid such errors, you must
-
Use snapper's really vague delete-config command, or wipe the config file from
/etc/conf.d/snapperand/etc/snapper/configs/before wiping snapshots completely -
Use a separate subvolume for the swapfile, as Mentioned in the Arch Wiki, which I skimmed.
Do not skim read the Arch wiki, you waffle! {.is-danger}
Gentoo
Don't be fooled by the location and prominence of this list - Gentoo is fantastic, and it's always my fault.
No GUI
Uh oh! did you mess it up that bad already? Try the following:
- Make sure all prerequisites are set as outlined here. This is relevant mostly for new installations.
- Read the display manager's log
/var/log/gdm/[log]. Unless the error is really obvious, this won't help. - Try running
gdmmanually from the root user. - What does
/etc/conf.d/display-managersay? it should be whatever display manager you're trying to use (ex:DISPLAYMANAGER="gdm"). If updating it, runopenrcafterwards. - Try a lighter, more portable display manager. LightDM is a good candidate.
- If all else fails, try recompiling (or reinstalling)
GDM, and if that fails -GNOMEin it's entirety (and bid your afternoon goodbye...) Step #5 is usually it - whatever it does, it solves for GDM as well.
Pre-compilation check fails
Did you try to compile a massive package Without looking here first?
To solve this permanantly, you can exclude problematic packages as described here.
Cant' see/mount digital camera
After making sure all prerequisites are met for USB, MTP, and following Arch's methods to troubleshoot, all of which will be utterly uses, enable the gphoto2 USE flag as listed here
Run a quick emerge --update --newuse --deep --with-bdeps=y --keep-going @world, a swift emerge @preserved-rebuild and a lively emerge --depclean if you're feeling extra snazzy and voilà!
Icons on GNOME look like they've escaped from hell
Switch to Clang. Why? who knows? not me. But it did it.
It likely did not do it. {.is-info}
Steam does not start
Yes, I used to think this was a Wayland thing. It is not a Wayland thing. If updating does not solve the error, simply run steam --reset, which, um, steam resets and solves it.
Tested on Native overlay - not on Flatpak. We like the native overlay now. {.is-info}
libvirt can't load AppArmor profile
We like AppArmor. We like libvirt for KVM virtualization. Unfortunately, they often don't like each other.
Fortunately, you can disable their interaction on both ends:
-
AppArmor:
aa-complain /usr/sbin/libvirtd -
libvirt: set
security_driver = “none”in/etc/libvirt/qemu.conf
Keep in mind this is likely a security risk, especially for Windows guests. Though AppArmor devs do refer to
libvirtdas an "inherently trusted process", which is nice. {.is-warning}
Overall, unpleasant.
make doesn't copy vmlinuz to boot partition after compiling
You forgot to select the kernel with eselect kernel, you twit.
Wireguard
Wireguard does not work
I've tried to outsmart this, and I wish I could say better, but it's really simple: purge the container, reset to the defaults.
Swallow your pride. VPNs are rough.
The docker-compose on the Git server works great.
Cannot access internal containers through Wireguard
Appearantly, even though you're coming from inside the network via Wireguard, your queries still go through the firewall as though you're from outside (all of the above likely blatantly wrong). To get a container to work, allow its' internal port through the firewall:
ufw allow #[/tcp|udp]
ufw reload
example: I had to run
ufw allow 3333to access this wiki! {.is-info}
Seafile
New Seafile container can't sign SSL certificate
Unfortunately, the Seafile demands its' own certificate and can't get it via the reverse proxy - simply off the main proxy container, switch the seafile to ports 80 and 443 (won't work otherwise!) and let it generate it's inital certificate. You can revert to the reverse proxy just fine after that.
Jekyll
Mixed Content warning behind reverse proxy
There are two actions needed to prevent Jekyll serving assets over http, thus creating this warning and blocking assets on mobile:
- In the configuration file
_config.yml, comment out thebaseurlvariable, and put the site's exact address underurl:
#baseurl: "" # the subpath of your site, e.g. /blog
url: "https://jekyll.pukeko.xyz" # the base hostname & protocol for your site, e.g. http://example.com
Make sure there are no trailing slashes! {.is-warning}
- When loading assets in your page, avoid using the
{{ site_url }}variable, and load using the full path instead:
#
# ^ WRONG

# Correct.
Solved with assistance from this Reference {.is-info}
Nextcloud
Nextcloud PostgreSQL complains about missing /var/lib/postgresql/data/pg_stat_tmp/global.tmp
Now this one is wierd. If you search for it, the file is there, but isn't quite there:
ls: cannot access 'global.tmp': No such file or directory
-????????? ? ? ? ? ? global.tmp
Even stranger, online search yields these errors are either hardware failure or failed network shares, none of which are the case here. The file cannot be chmod-ed, deleted or otherwise manipulated - even with root privileges. Thankfully, the fix is simple:
- Shut down the container.
- Maybe take a snapshot.
- Delete the
pg_stat_tmpfolder - Watch as PostgreSQL complains, creates the file anyway and works.
Filebrowser
Internal filebrowser commands fail to execute
I tried disabling authentication (as this is behing Authelia), but running any filebrowser binary command returns timeout:
2021/11/10 17:55:02 timeout
This is because the database Can't be modified while Filebrowser is running. As it turns out, you can execute offline using docker-compose:
docker-compose run file-browser config set --auth.method=noauth
This will only work when the container is offline! {.is-warning}
Be sure to clean up the new
runinstances withdocker-compose downbefore restarting. {.is-info}