Remote Endeavors
It seems that I have picked mid-Summer to catch a cold (at least I’m not testing postitive for COVID yet), so yesterday I decided to complete some low-impact TODOs I had been postponing for a while.
The Fedora container I set up on a lark a few months ago sort of became my personal desktop environment that I use from literally everywhere to run OpenSCAD, SuperSlicer and even Blender (neither of which I can run on my iPad), and I sometimes want to have quick access to it.
Hardware
I have a 27” 2560x1080 monitor that I’ve mostly been using with the Xiaomi Mi Stick to watch the news and the Z83ii that I recently sent on a solar panel debugging expedition was sitting on my desk, so everything seemed to come together neatly.
However, I wasn’t able to get my rewardingly noisy and cheap Bluetooth keyboard to work with it (I’ve had numerous tussles with the Z83ii hardware before around wireless), so I dug out a Raspberry Pi 3A+ I had set up as a Lakka box a couple of years back go and had fallen in disuse1.
It (or a Zero 2 W) are more than enough to drive a 2560x1080 ultrawide display and render remote applications very snappily over a Wi-Fi connection, and this is one of the few use cases where its 512MB of RAM are plenty.
Software
I didn’t bother with overly elaborate customization–flashing the 32-bit Raspbian image onto an SD card and disabling the new OpenGL driver so I could tune the resolution by hand did 99% of what I needed:
# snippet from my /boot/config.txt
disable_overscan=1
hdmi_force_hotplug=1
hdmi_drive=2
hdmi_group=2
hdmi_mode=87
hdmi_aspect_21_9=7
hdmi_pixel_freq_limit=400000000
hdmi_cvt=2560 1080 50 7 0 0 1
max_framebuffer_width=2560
max_framebuffer_height=1080
framebuffer_width=2560
framebuffer_height=1080
dtparam=audio=on
# disable new driver
#dtoverlay=vc4-kms-v3d
The rest was mostly replacing Chromium with Epiphany (which is enough for accessing Jupyter notebooks, router status pages and the like), installing Remmina and taking all of 30 seconds to set up my keyboard and my M720, because Raspbian Bluetooth support is just excellent.
For good measure, I also added [Tailscale] since I also want to access some of my Azure boxes, but were it not for force of habit and my particular needs, 100% of this could be done via the GUI and would “just work” out of the box.
Audio
I had a few issues with audio, because Remmina at first apparently refused to play audio from my remote server. That turned out to be due to a pending update and was fixed with a restar, but it was a bit annoying.
In the process of debugging it, however, I realized you can now switch your audio output to and from HDMI by just right-clicking on the speaker icon in the tray, which is a nice touch in Raspbian.
Performance
For a completely silent, essentially throwaway setup, this has a lot of bang for the buck.
It bears noting that the Pi 3A+, even over Wi-Fi, is more than fast enough to give me very low input latency, tolerable full window dragging at 32-bit color depth and even the ability to watch (and listen to) YouTube videos in a pretty smooth way on both Linux and Windows remote servers–that is because Remmina is now capable of negotiating GFX acceleration, and it shows when I play video or rotate OpenSCAD objects in the editor (it’s not buttery smooth, but it works fast enough to not break my flow).
This makes using a thin client all the more appealing, and given the time I spend using RDP on my iPad alone I should probably spend some time investigating an upgrade to my six-year-old closet server, especially since I know xrdp
now has some support for GPU acceleration.
But I’m not made of money, and there is plenty more to do in the meantime…