Category: tagged

  • Static ARP Ubiquiti EdgeOS

    There are times when one needs to reach a certain device on the network and cannot as multiple devices have the same IP address. This should in theory not happen but it does in networks where people can freely connect devices themselves. If the device has a static IP address which another device already has, it is nearly impossible to reach it to reconfigure it remotely as packets would end up on the wrong device. This where a static ARP entry can smooth out things forcing the router to only send packets to that single device of one’s choice

    sudo arp -s 192.168.0.1 e4:ea:b4:08:a8:32 -i eth1

    This tells the router that “192.168.0.1” is at MAC “e4:ea:b4:08:a8:32” and will stop it broadcasting ARP requests; it just sends packets directly to that MAC.

    When done simply delete it again:

    sudo arp -d 192.168.0.1 -i eth1


    After that, the router will go back to the normal ARP behaviour of broadcasting ARP requests instead of using the fixed MAC.

    If you run show arp eth1 after deletion, you should see the static entry removed.

  • Rapidly reduce the size of a PDF

    I am sure you have been there before, trying to submit an important form and your PDF with high resolution scans is too big to be accepted.

    As you probably entered a lot of other data, you do not want to repeat the entire form if the page times out (which they seem to always do!).

    This is an instant one-liner that substantially reduces the PDF size without much quality degradation (my PDF went from 8.9 MiB to 1.1 Mib):

    gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 \
    -dPDFSETTINGS=/ebook \
    -dNOPAUSE -dQUIET -dBATCH \
    -sOutputFile=output.pdf input.pdf

    There are tons of options and parameters in Ghostscript to play with if you are interested, but the above will work for a start. Simply edit the input.pdf and output.pdf paths/files.

  • Toolbx mount access from host on Fedora Kinoite

    Since Toolbx mounts are running in different namespaces than the host, the mounts cannot be accessed from the latter. I tried many workarounds to see if it really was possible to get around this limit. After some time I decided that using the network stack was probably a better solution to communicate between Toolbx and host.

    In my particular case I never do any layering but instead try to use Flatpak, Toolbx, or even a Boxes virtual machine for any specific software not included in the base layering.

    I needed to run restic to access some documents on a remote restic repo backup. Since restic is not included I had to use Toolbx for this task. Restic uses FUSE to mount the remote end on the local system. In an ideal world I could just have opened this mount in Dolphin to search and open the needed documents. However due to the namespaces difference this mount just shows empty on the host.

    A really quick and dirty solution is to simply use rclone and its webdav option, then Dolphin just opens the webdav address with no issues. Yes, there is a tiny performance hit, but the speed and easy execution greatly makes up for this:

    restic mount ~/remote-restic

    Now that the mount is working from Toolbx itself run rclone to serve it over the network:

    rclone serve webdav ~/remote-restic --addr :8080 -L

    That is all! Now simply open Dolphin and paste the webdav address and there you have your Toolbx mount visible from the host:

    dav://127.0.0.1:8080

    Please note that this is not only for restic but can be used with any mount type like sshfs or even another rclone mount like S3.

    Is it not ironic… using a 1990s protocol (WebDAV) to solve a 2026 container problem!

  • Fedora Thunderbird flatpak crashes attaching or saving a file

    The latest flatpak version of Thunderbird from Fedora (not Flathub):

    Commit: 936d9f60ac420057270d5c0c26b3383b04177b678afd6f6e7b7b59df3f0e6663
    Subject: Export net.thunderbird.Thunderbird
    Date: 2025-10-12 19:21:33 +0000

    Crashes when trying to attach a file or save an attachment:

    [Parent 3, Main Thread] WARNING: Could not load a pixbuf from icon theme.
    This may indicate that pixbuf loaders or the mime database could not be found.: 'glib warning', file /builddir/build/BUILD/thunderbird-140.3.0-build/thunderbird-140.3.0/toolkit/xre/nsSigHandlers.cpp:201
    
    (net.thunderbird.Thunderbird:3): Gtk-WARNING **: 12:25:17.580: Could not load a pixbuf from icon theme.
    This may indicate that pixbuf loaders or the mime database could not be found.
    **
    Gtk:ERROR:../gtk/gtkiconhelper.c:495:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /run/host/share/icons/breeze/status/16/image-missing.svg: Failed to create file “~/.var/app/net.thunderbird.Thunderbird/cache/tmp/gdk-pixbuf-glycin-tmp.KSAZE3”: No such file or directory (g-file-error-quark, 4)
    Bail out! Gtk:ERROR:../gtk/gtkiconhelper.c:495:ensure_surface_for_gicon: assertion failed (error == NULL): Failed to load /run/host/share/icons/breeze/status/16/image-missing.svg: Failed to create file “~/.var/app/net.thunderbird.Thunderbird/cache/tmp/gdk-pixbuf-glycin-tmp.KSAZE3”: No such file or directory (g-file-error-quark, 4)
    Redirecting call to abort() to mozalloc_abort
    
    Exiting due to channel error.
    Segmentation fault         (core dumped) thunderbird
    [📦 net.thunderbird.Thunderbird ~]$ exit
    exit

    There is already a Bugzilla entry but until it is solved you can simply remove the TMPDIR environment variable:

    flatpak override --user --unset-env=TMPDIR net.thunderbird.Thunderbird

    To check that it has been done:

    cat ~/.local/share/flatpak/overrides/net.thunderbird.Thunderbird
    [Environment]
    TMPDIR=
    
    [Context]
    unset-environment=TMPDIR; 

    Now just run Thunderbird as usual and it will again allow to save and attach files.

    To later remove the override once Fedora has fixed the bug just run:

    flatpak override --user --reset net.thunderbird.Thunderbird
  • Quick Fedora release version upgrade command

    If you manage many Fedora machines here is a quick one-liner to upgrade Fedora to the next release version:

    dnf --refresh upgrade -y && dnf system-upgrade download --releasever=42 -y && dnf system-upgrade reboot

    As of today Fedora is at version 42, but simply change the release version to the desired target for any past/future version.

    Please note that only one release version jump is supported by Fedora, e.g. from 41 to 42. If you need to upgrade from older versions to the latest, simply run the one-liner sequentially after each reboot.