How I Would Relearn Linux #7: Wandering

Good Morning from my Robotics Lab! This is Shadow_8472, and today I am back with another Linux-learning tip. Let’s get started.

This edition of How I would Relearn Linux will be a bit heavier on the story side, but I’ll try to make it as interesting as possible. If I totaly lose you, feel free to skip to the Takeaway before making your way back to where you left off.

DerpyChips, one of my two daily drivers, has had a longstanding problem with running Discord where the proper installation crashes after updating (if applicable). I have it installed as a Snap installation, which got it working, but costs me my KDE themed mouse pointer, which I’m quite fond of. I thought to fix it as a side project. For the record, none of these hammers work: restarting the program, rebooting, reinstalling.

When in doubt, launch a failing program from the command line. I caught an error and looked it up, which landed me on Reddit where one user had fixed the exact same problem by finding a better driver. Derpy has an AMD card, so I looked through AMD’s site for the proper proprietary driver. It took an hour or so, but I found a list of 32 and 64 bit drivers for my exact card – they were just seven years old! The card is about twice that.

Now, I faced a dilemma. AMD’s driver might be the most compatible, but will it work with KDE 6, which I expect Derpy may be running within a year barring any major hardware upgrades? I have doubts. Besides, I didn’t feel like cleaning up a driver bricking my installation anymore. I’ll probably seek out an open source driver at a future date once I gathered a bit more background knowledge.

Along the way, I noticed a couple abbreviations tied to the graphics system: EGL and GLX. A search brought me to a Hackaday post about Firefox 94 and above switching from GLX to EGL as window management transitions away from the legacy X11 window management system in favor of Wayland for lower overhead, better security, and closer access to the hardware [1]. The top comment lamented this transition finishing with, “Sadly the kids don’t want a fun OS that does cool things like let you run your program on one machine but display it on a second. I guess they just want an OSX that they didn’t have to pay for.” My surprise died down when I read the screen name: XForever. The comments in reply were a frenzy of reports claiming X11 remote display either “never did [work]” [X], “worked perfectly fine 20 years ago and still does” [Traumflug], “only ‘worked’ because network security was a joke 20 years ago” [Pat], and that slow network could make or break the experience [Guest]. One user [raster] went back to refute XForever’s complaint with a link to a Git for Waypipe.

While the conversation brought up other methods of graphical computing from another device, like VNC (Virtual Network Client) and RDP (Remote Desktop Protocol), SSH caught my attention [Redhatter (VK4MSL)].

ssh -CY user@remotehost x11client

The unfamiliar flags turn out to mean compressing the datastream and trusting something to do with X11. I had to try for myself.

Logging in to my father’s computer, I brought up FreeTube over SSH no problem. I then tried MultiMC’s start script, and something errored out and it came up on his screen. I thought that was it without making a custom script or at least an export command, but I tried running bash as my x11client. It came up without prompts or access to command history, but when I called up the script, I got a window. The game itself was a bit slow to play given how choppy the video was, but it was good enough to navigate to an AFK point – until I turned up the graphics with extra shaders, then it dropped to 1fps.

Takeaway

Allow yourself to wander. Poke at annoying, non-critical problems every so often. Even if you don’t get to where you intended, you can still end up learning something objectively cool. I can see this tool will be very useful

Final Question

What cool stuff have you found by allowing yourself to wander?

Work cited

[1] M. Carlson, “Firefox Brings the Fire: Shifting from GLX to EGL,” hackaday.com,Nov. 23, 2021. Available: https://hackaday.com/2021/11/23/firefox-brings-the-fire-shifting-from-glx-to-egl/ [Accessed Mar. 25, 2024].

How I Would Relearn Linux #6: Bleeding Edge vs. Stable vs. Enterprise

Good Morning from my Robotics Lab! This is Shadow_8472 and today I have another installment in how I would relearn Linux. Let’s get started!

The Linux ecosystem has a lot of moving parts within easy view of the end user. Various distributions curate these often redundant parts in line with their respective goals. For example: how new do you like/want/need your software?

If “Cutting Edge” is the latest and greatest, then developers and enthusiasts willing to volunteer time and effort reporting bugs and provide feedback for new features belong on the “Bleeding Edge” – typically using a some sort of rolling release or compile-it-yourself based package manager.

On the hand, if the system’s goal is to not need sudo every few days, a stable system like Ubuntu or one of its many downstreams may be a better choice, but know that distros aimed at an Enterprise audience may leave you spending excessive amounts of time dumpster diving through backports for missing dependencies trying to compile source code when a two-year-old feature comes up missing (ask-me-how-I-know).

My pick is that I maintain a bit of everything. I have two computers I use as daily drivers. One runs EndeavourOS and another PopOS. EndeavourOS is Arch-based and on a rolling release while PopOS is Ubuntu-based with releases every few months. This way, if major changes break something with software I use across both devices don’t hit me all at once. Just this past week, I re-booted into KDE 6 on EndeavourOS and Discord immediately started having problems displaying messages as I draft them and occasionally the whole window would black out until interacted with. Turns out KDE 6 defaults to using Wayland instead of the old graphics display system, X (also called xorg, X11, x.org, etc). These are/this is [a] bug[s] that need[s] attention before X is retired from mainstream use. I now know to look out for it/them when KDE 6 comes to PopOS – probably sometime later this year. For now, X is still around in case a fallback is needed.

Takeaway

While my alert system to changing conditions is adequate for me at this time, another approach to consider is staying current on news regarding projects you use. I didn’t note his name, but I did come across someone saying he read about the KDE 6 Wayland. Time will prove the choice pioneering or foolish.

Final Question

Where do you balance on the innovation vs. stability scale?

Pi Spycam: Prototype Deployment

Good Morning from my Robotics Lab! This is Shadow_8472, and today I am trying to solve an animal misbehavior problem around the house, and we don’t know who’s done doing it. And I’m literally dusting off an old project to help. Let’s get started!

Blinkie Pie is a Raspberry Pi 3B+ with a case themed after a PacMan ghost. I modified the files to include a Pi camera module looking out its left eye, but got bogged down with computer vision trying to automate critter punishment. Well, in the present day, one or both of our cats keeps doing something in the same area of the house, and a video feed served over HTTP (to access via browser) could let us monitor things on a second screen. After a brief survey of open source projects, Motion looks to be exactly what I think I need. [1]

DietPi looks like a good base OS. The article I found says it’s based on Debian Buster [2], but I’m only after a short-term project. I checked on Pkgs.org and Motion is listed as in the Debian Buster ARM repositories. [3]

Modern DietPi is based on Debian Bookworm as I found out when I downloaded it. Motion was present, but setup was annoying. I’ll spare the blow by blow, but the terminal program serving as its installer doesn’t think like me. Sometimes it ran quite slow (Pi 3B+ being old?). Credit to the install script where credit is due, but it got hung up trying to update, so I had to drop out and unsnag it manually.

Motion was obtuse to get working. While pounding around for a solution, I found a curated list of software calling the project motionEye. It didn’t find the camera module until after a reboot or two. My only confirmation was terminal activity in response to motion in front of the camera. And working from the command line, I can’t check on Motion’s web interface. A few hours of diagnostic research later, I used curl over SSH and found data on Blinkie Pie’s localhost:8081, but not over network_ip:8081 – which is a wise default configuration with the base OS lacking a firewall, but annoying for my low security use case of monitoring cats. I overrode this setting with a config option at ~/.motion/motion.conf.

# Restrict stream connections to the localhost.
stream_localhost off

I now had images around once per second, but they were coming through upside-down because of how I mounted my camera module in its case. I Modified a similar setting to allow the webUI, but it was very limited. I’d spent a while Thursday night trying to solve this flip issue from the config file, but I only ended up jamming terms from documentation in ways that didn’t work. I circled back around on Friday afternoon and used a search function to find settings for both rotation and flip, but later realized the system only flipped vertically (probably because I used two lines).

With high to mediocre hopes, I deployed Blinkie Pie to watch over Sabbath. The image came out dark, so I found an old desk lamp I had stashed in a closet and left a few other lights on. The good news is that it was more stable than during tentative testing. The only difference I can think of I that I was only SSH’ing over Wi-Fi once instead of for two links.

To access the recordings, my first instinct was to use SCP, a program to transfer files over the SSH protocol. DietPi operating system does not include SCP by default. Instead, I logged in with the FISH protocol, which doesn’t require anything special on the other end besides SSH. Bonus: I could use it with Dolphin (KDE’s file browser). Unfortunately, the default motion detection settings mostly caught human family. Our little, white dog starred in a couple automated recordings, but my black Labrador was seen in one clip being ordered to lay down in the observation zone without any footage from when he got up and left. At no point did I see a cat who wasn’t being carried.

Takeaway

This project didn’t catch anycreature in the act, but I’m still satisfied with my progress this week, and I intend to follow it up later this month where I tweak the configuration to be more sensitive to smaller creatures.

Final Question

Have you any suggestions on tracking cats with Motion or a similar technology?

Works Cited

[1] C. Schroder, “How to Operate Linux Spycams With Motion,” linux.com,July 10, 2014. [Online]. Available: https://www.linux.com/training-tutorials/how-operate-linux-spycams-motion/. [Accessed Mar. 11, 2024].

[2] C. Cawley, “The 8 Best Lightweight Operating Systems for Raspberry Pi,” makeuseof.com, Nov. 7, 2021. [Online]. Available: https://www.makeuseof.com/tag/lightweight-operating-systems-raspberry-pi/. [Accessed Mar. 11, 2024].

Available:

[3]pkgs.org, [Online]. Available: https://pkgs.org/search/?q=motion. [Accessed Mar. 11, 2024].

My First Astrophoto

Good Morning from my Robotics Lab! This is Shadow_8472, and today I have a follow up with my telescope. Let’s get started!

In contrast to recent years of drought and water rationing, this winter has seen the blessing of much-needed rain. Overcast often blocks out the night sky, and mist can ruin a clear night anyway. But Tuesday night this last week was clear, dry, and still. I took my entry-level telescope to the front yard.

One of my goals with telescope is photography. I wanted a modestly decent picture of Saturn before investing heavily in equipment. But Saturn is setting too soon after sunset to catch above my suburban skyline – Jupiter will have to do; before try that again, I want to get some good detail on the moon because my first attempt at astrophotography with a modified chair bracket failed when I couldn’t line up my small, pre-smartphone era camera well enough to locate the planetary system.

This time, I aligned everything before going outside and happened to aim the the parts I was holding at a floor lamp. Camera’s screen showed an off-center circle, and I adjusted the bracket’s wing nuts and bolts until it was centered, but even that wasn’t enough. Unless the camera looks straight down the eyepiece, it gets these funny “shadows” along one side or the other. It’s like looking down a paper towel tube – done right, you see a circle of light in the middle of your vision. Rotate the tube either way that isn’t the axis, and you get this sharpened oval kind of shape before you get no light at all. The bracket as is takes care of tilting up and down, but I still have to worry about twisting left and right. My current setup also lets me vary how deep to drive the bolt, but that gets ugly with wing nuts and rotation and everything. This is all in addition to another joint with two degrees of freedom originally included with the cell phone mount.

Outside, the moon was not up, but Jupiter was sitting high in the western sky. I aligned my star scope on the planet, and when I looked through the eyepiece, three of the four Galilean Moons on display. (From an online tracker, I later learned Io was transiting in front of the planetary disk at the time.) Better yet I found them in my camera. I set a 10 second delay and captured this picture at around 9 PM on February 27, 2024 (Pacific Standard Time).

I followed up with seven additional images at a higher zoom; they fell victim to distortions I believe were related to rotational misalignment between the camera and eyepiece which weren’t as noticeable at the camera’s lower internal magnification.

  • The ten second delay timer proved important as it took as long as eight seconds for the telescope to stop shaking after touching the camera.
  • Focus on the telescope was also big on my mind with colors turning green or blue (asymmetrically from the misalignment, of course), and tiny adjustments were next to impossible with the knob jumping.
  • Zoom in on the camera too far, and I get a lens error when it gets stuck (I used the 2x eyepiece for a chance at locating Jupiter with the 4x).
  • And even then I couldn’t get a still image where Jupiter resolved as a circle – looking directly: I saw a disk; camera preview: disk; take picture: flare.
  • I was also having to re-aim the telescope every two exposures to track Jupiter as it moved across the sky. After a couple pictures, I rotated the camera so manual tracking wasn’t on a diagonal relative to the screen.

Improvements

From here, I have a few ideas on how to improve my setup: I could further modify the bracket to make it easier to use by reducing the number of parts I need to keep track of simultaneously – possibly by designing and 3D printing a custom bracket. I do have ideas. Alternatively: I have completed my goal of planetary photography, so I might consider indulging in a sensor that connects directly to the telescope instead of an eyepiece. It would be a tough call between that and a tracking mount, but taking the setup to an area with less light pollution can only improve my results.

Takeaway

I am enjoying learning more about God’s Creation. Looking closely at my picture, I can see more points of light than the ones I know about. Are any of these smaller moons? I don’t know. Is that red star to the right actually a red dwarf, or is it a camera error? I don’t know. What are the limits of my optics? I still have much to learn about them, but the saying is that the more you look, the more you will see.

Final Question

Are you into astronomy? What advice would you give someone who’s just starting out?

I look forward to your answers the comments below or on my Socials!

Study Month: Week Four

Good Morning from my Robotics Lab! This is Shadow_8472 with a small update on what I learned this week. Let’s get started!

Not much progress happened this week. I won’t be clustering this month, but I did study the High Availability Add-On. It has a package name in there called Pacemaker, but I don’t know if it’s independent or a common library or what. Furthermore: I don’t know if a high availability cluster is right for me or not. I circled back around to Beowulf clusters after over a year of stuggle, but couldn’t conclusively tell if Red Hat’s implementation is one or not. Best I can figure is that you Beowulf once you have your task working on the first node and need to expand.

With that said, I did have some trouble along the way. Joystick, my new Rocky Linux 9 installation won’t boot – the computer keeps going to Mint no matter what I say in the BIOS. I tried running update-grub on Mint, but that just tidied away Debian with no new Rocky option. I vaguely remember something like this happening before, but I could be misapplying a memory. I want to try a GRUB disk; if that doesn’t solve it, I may need to reinstall. I still have the USB stick.

On a tangentially related note, I checked in on ButtonMash when Joystick didn’t boot and found it unupdated. It also thought it was July, 2018 and that everyone’s SSL encryption certificates were bad until I’d completely fixed the time. I suspect the motherboard’s system clock battery may be experiencing issues.

In conclusion for this month, I’ve been burned out. It’s been nice not having the near-constant stress of finishing a project or taking a walk of shame to split it off into [yet] another week, but at the same time, I didn’t get much done at all.

I still have a goal of combining multiple computers into a single, more powerful one behind a unified Cockpit experience. If I think about it though, I might be after some sort of Podman clustering technique, and I’ll still be no better off at getting Podman working over NFS than when I started!

Study Month: Third Rocky Linux Server

Good Morning from my robotics Lab! This is Shadow_8472, and this February is a study month where I am not sticking myself to hard, weekly goals – though I am aiming for a cluster by the end of the month. Let’s get started!

I downloaded Rocky Linux 9.3 minimal .ISO and flashed it to a USB stick – overwriting an old Rocky Linux 8 installation media. Normally I would use my Ventoy multiboot USB, but Ventoy froze while loading last week before it got to the .ISO selection screen.

The Rocky Linux installer is probably my favorite. It’s non-liniar, so I can go back and change things before finalization without fear of wiping my other settings. My target drive had Debian already installed, and another drive has Linux Mint, which I do not want to overwrite. I confirmed my target drive at least four ways before proceeding. The networking tab let me assign the static IP I want with no undue hassle. Here, I also assigned it the name of Joystick.


I’m keeping this installation as slim as possible to focus on learning clustering. Cockpit (web admin page) is a must-have, but I’m not even putting Podman on this new installation until I believe it is needed. The eventual plan is to keep ButtonMash on as home server until I have RedLaptop and Joystick cooperating in a cluster. Then I’ll move ButtonMash over to that cluster with the possible need to migrate to Rocky 9.x in the process. For this week though, the cluster software I’m researching, Red Hat Cluster Suite, is proving difficult to find the package name[s] for.

I also need to keep a radar for another major goal of this project: an open source image board. I need a tags system, a way to pair two scans to display the backs of some photos, and an album system wouldn’t be bad.

Server Month: Data Preservation Ceremony

Good Morning from my Robotics Lab! This is Shadow_8472, and today is part 2 of server month. Let’s get started!

Per my original draft of last week’s blog (before I suffered a power outage), I’m dedicating this February to testing the idea of study posts. Goal-oriented posts make for a satisfying story, but I often exhaust myself trying to reach big milestones and stress out when I manufacture victories. This month, while I would like to safely overhaul my server setup, I’m going to do my best to have no goalposts aside from writing between three hundred and a thousand words. We’ll see how long that lasts.

When I first ButtonMash (my current home server) used, I also bought one of its twins for my father. His new system is stable now, and so he has relinquished control of the old system. At the point of handover, it was dual booted with Linux Mint and Debian – with Debian being the less used. With this in mind, I’m planning on overwriting the Debian drive and keeping Mint around just in case.

As a part of the ritual before wiping a drive, I examined it for data we might want to keep. I spotted some images from a high quality set of Bible pictures my church has the rights to use, but our local copy is stuck on an external hard disk that fell and doesn’t work anymore. In total, I figure I’ve salvaged around 50 to 56 distinct photos of a much larger set. I locked onto the pattern of five digits and a .jpg extension, which came in handy when searching for additional survivors. Most of them were in a directory titled trash. I moved everything I could find (duplicates included) to an external USB stick from both Linux installations and on over to GoldenOakLibry for safekeeping.

However, when I went to install Rocky 9, my Ventoy USB froze while bringing up its menu – both when attempting legacy and UEFI boot.

Server Rebrainstorming

Good MMorning from my Robotics Lab! This is Shadow_8472 and today I am rebrainstorming how I approach my home server. let’s get started!

Disclaimer : as I write this on Sunday evening, I’m in a power outage, and I only have 44 minutes of DNS service on ButtonMash’s UPS. GoldenOakLibry is shut down, my progress is hung up on DerpyChips without a UPS, and I’m writing as fast as I can on my tablet, which is not cooperating well.

Over this blog, my one elusive goal has been rootless Podman with mounted NFS file storage. NFS doesn’t understand namespaces, a trick Podman uses to keep containers separate from each other, but still belonging to the host’s user. This project has proven resistant to my weekly goal oriented format, so I want to spend this month just writing about my studies. No Takeaways, no Final Questions. If I get something done, awesome. If not, oh well. On weeks without power outages, I want to still aim for 300 to 1,000 words.

Fish/SSHFS

These two protocols may be useful as an alternative to NFS, but use encryption needlessly if employed over a local network. That said, you can use a weak algorithm for old CPU’s. From memory, these protocols extend SSH with a hidden file, and require no special client.

Red Hat Cluster Suite

I eventually want to have multiple servers I can manageas one bigger one. This angle will only work if I can squeeze a node on GoldenOakLibry to access the file system directly.

Stashing Christmas

Good Morning from my Robotics Lab! This is Shadow_8472, and this week I did not complete my intended project for the week, but I did finish something interesting nonetheless. Let’s get started!

Red or Blue?

God has blessed my family to the point where when we pull out the Christmas decorations in November or so, we ask ourselves, “Do we want a red Christmas or a blue Christmas this year?” We then set up our artificial tree and garlands and adorn them tastefully from our “red” or “blue” bucket.

In fact: God has blessed us such that we could surprise my aunt some years back by getting a skinny artificial tree for our Christmas party. Circumstances dictated this tree as now our main tree this year, and we were able to bless a school run by our church with not just our large tree, but also some smaller ones for a few classrooms.

But Christmas is over. It’s time to put things away.

Let-There-Be-Christmas Boxes

In the likely event we are with the school next Christmas, my mother, Annie_8472, wanted to re-organize our buckets into our usual red/blue/both categories plus a number of classroom kits with our tiny trees and decorations for them. For each of red and blue things, we have a bucket for shatterproof balls, a case for smaller themed ornaments, etc.

Most of my contribution was hauling buckets between the living room and garage. I spotted a few buckets in comparatively poor condition, and arranged for them to end up at the bottom of the bucket stack. Annie clearly marked each bucket she used and had me aim them out when shelving them.

Takeaway

The same sorting system can be used with anything. Fabric –for example– can be sorted by color or material. Rank your items’ most important qualities, and store the most similar stuff together. This way, other people can find things (and put them away when done).

Final Question

Red or blue?

Dropped Computer Warranty Work

Good Morning from my Robotics Lab! This is Shadow_8472 and today I have an update on my father’s (Leo_8472) new computer. Let’s get started!

It’s Going Back

I have throughly tested my father’s new Thelio Mira from System76: it needs to go back. There is no doubt: the shipping company dropped it, and it sustained damage. While Sonic Frontiers seemingly eventually stabilized after re-seating the graphics card (GPU), the RTX remasters of Portal and its unofficial mod, Portal Prelude, crash the system in around half an hour.

The human System76 agent we’ve been working with (I’ll call him Luke for this post) mentioned advanced replacement where we retain the original computer while waiting for the new one. Once we sign to receive delivery, we have two weeks to return the old or it goes on a provided credit card. This arrangement gave us time to swap the hard drive –an M.2 chip– as we’d spent some good time setting everything up. And since it’s a Linux machine as opposed to Windows, the operating system won’t give us any licensing flack over a different motherboard!

M.2 Exchange

The replacement system arrived with its packaging scratched, but not crushed. M.2 drives typically mount directly to the motherboard, and Leo’s system is no exception. Luckily, the its innards are arranged for access without removing the CPU heatsink and having to redo the thermal paste – though we do have to remove the GPU to get to them. There, we find four M.2 slots in a 1+3 arrangement with the 1 slot having a a fancier heatsink supposedly intended to host a primary OS drive.

The Thelio Mira has some convenience ports on the top. When the first system was dropped, these got tweaked – giving us a bad first impression; the warranty replacement lined up, leaving me with a sense of satisfaction every time we closed up the case. Where the original had a lone, damaged bracket to stabilize the GPU during shipment, the new system arrived with two square brackets secured a little tighter than before. As we had explained our plan to swap the drives to Luke, I expected no M.2 chip. Sure enough, the single chip bank was empty. Curiosity struck however, and we found one of equivalent size when we removed the larger bank’s heatsink. We swapped the chips and re-assembled the new computer.

Testing and Return

When booted, the new system gave nothing until we bypassed the video card. We unplugged everything for the I-forget-how-many-th time, opened it back up, and reseated the card. In the process, a push wing broke off the PCI slot’s retainer clip – leaving us with no easy removal of the GPU once it clicked into place. During long-term testing involving a [mostly?] blind game of Portal Prelude, we noticed that the system was significantly quieter while under load.

We kept Luke informed about the development, and he appeared confused at our request to buy the good clip off the dropped-computer motherboard. To our simultaneous request to purchase and retain the additional M.2 chip, he referred us to an online store instead of offering a price to buy the one in hand. We went ahead and extracted the good clip. Leo used a wooden chopstick to interface with the damaged clip when extracting the good GPU. As “beautiful” as the unused M.2 drive was, we installed it in the dropped computer when reassembling the machines, printed off a shipping label, and packaged the dropped computer in its original, dropped box. As a good customer, I planned to include the unused power cord, but we couldn’t find it. I extracted the original System76 cord from use at Leo’s workstation and replaced it from our sock. It should be in the mail by this afternoon.

Takeaway

System76 takes customer support seriously. Luke (not his provided first or last name) worked to turn our poor initial impressions around where a support chatbot would have worked toward cementing us against future computers from them. I in turn could play an active role in diagnostics – presumably skipping some early portions of his script. Perhaps catering towards Linux attracts more tech savvy customers, meaning fewer cases where a bot would be helpful.

Regarding the computer case: it’s a little more tedious to open than I like when working on computers, but we got faster each time. The custom cut rocket graphics are fun, but the most I saw of them were the PCI expansion bay covers I usually found tricky to re-install. I don’t like dealing with the case, but it was miles better than shipping it back and forth and having to wipe its data.

Final Question

Leo and I have been maintaining separate accounts, and I believe this has given me a better intuition about normal users vs. using sudo. Have you ever meaningfully shared a Linux machine?