Manjaro: Kernel Error

Good Morning from my Robotics Lab! This is Shadow_8472, and my main tower broke last night, so I’m getting a head start on this week’s post. So today, I’m teaching myself how to fix it. Let’s get started!

The Error

I wish I was writing this week about my experience getting Space Engineers to run in WINE. I had spent my Monday in another game only for it to glitch and lose a bunch of stuff. I needed a break, but not like this:

Warning: /lib/modules/5.10.2-2-MANJARO/modules.devname not found – ignoring
mount: /new_root: unknown filesystem type ‘ext4’.
You are now being dropped into an emergency shell.
sh: can’t access tty; job control turned off
[rootfs ]# _

A lack of keyboard response wasn’t encouraging. Neither was a lack of a response from my usual Linux help places. Still, it’s polite to at least drop the error off for an Internet search, but that is a lot of information to throw around. Any relevant results I got were obscured by my inability to understand them.

As if I weren’t having a bad enough day, I went to try booting to an install disk, thinking it to be for Manjaro. It was for Ubuntu — and it was corrupt. All I saw was what looked like a spaghettified terminal in the pattern glitched spots on the screen were appearing.

Understanding the Error

I tried finding my GRUB disk, but it’s lost. After eliminating bad USB ports as the cause of the corruption, I burned a new Manjaro drive over Ubuntu using my Manjaro ARM card in the Pi 400.

Line-by-line Internet searching for the error didn’t get me much farther than before, but breaking the first line apart was the key because it contains a file path. I booted to my newly reeducated drive and mounted my file system to look around.

/lib/modules/5.10.2-2-MANJARO/modules.devname sounds like a file path, so that was a good place to start. Sure enough, no such file exists, but there is a modules.devname.old file. Looking one directory up, there are a few other similarly named directories in a similar format — the next most recent being 5.9.16-1-MANJARO. It did contain a modules.devname. I considered renaming the old version or copying in the previous one, but I’d have had no idea what I was doing, and there were some slight differences I later found by overlapping transparent terminals — not just side-by-side comparison.

I already knew Manjaro has the ability to install and switch between multiple kernels, but I had no idea where they’re kept or how they work. Using this new information, I looked up the names, and I’m reasonably certain I ended up with a bad kernel on my system.

Fixing the Problem

Now that I had a lead on what to pay attention to in search results, I learned that people are complaining a lot about this and similar kernels released around New Year’s. I would like to try reverting a single kernel and seeing how that works.

One problem: every guide I’m finding appears to assume I’ve already booted to Manjaro and gives either a GUI or command line options for reverting.

In my experience to date, I would have expected I could just go in, flip some strings in config files around and call it a day. It appears I have no such luxury though. That or the kernel is so central to the system that “luxury” is not having to flip 45 such config files, not all of which are meant to be human readable (I have no idea here). Nevertheless, the tool of choice appears to be a command called chroot.

Chroot –as I understand it– is essentially used to CHange ROOT (the directory, not the superuser). It opens a new shell with a root directory of your choosing within reason. It can be used to repair broken operating systems using an external kernel, but there’s a similar concept I am not covering today called chroot jail where users accessing a system from the outside are only shown a subset of the system’s actual root directory.

For this post, I will be using the guide “How to: Chroot into a broken system via live CD/ISO or alternate Linux system” on the turnkeylinux.org to set up a chroot and the command line instructions from “How to Switch Kernels in Manjaro Linux” to revert my kernel.

Side note: a different guide than linked brought up a program called os-prober. I found it in both Manjaro and Debian. When I ran it on my tower, it quickly found my main Manjaro install, but didn’t find my Windows drive I believe to be connected but not mounted. Other methods showed me evidence that it’s still there.

Attempt 1

I didn’t completely follow the set of instructions on how to set up the chroot. I performed them from my root directory ‘/‘. Things started going wrong when my second chosen set of instructions weren’t clear at all about how to manage multiple kernels from the command line.

I started improvising. I tried to launch the GUI version of systemsettings5. Going through the menu pointed straight to the live USB’s kernel, and all its settings no doubt. Going through the command line was fruitless until I had exited out of the chroot and umounted all extra directories, even when I used su shadow8472 to switch to my normal account, a procedure which root could not reproduce after the chroot ended. In short: I did something right, but I’m not done yet.

Attempt 2

This time, my plans required access to the terminal. My plan was to proceed with the same chroot setup, then work my way into a graphical interface hosted with enough elements from my actual tower to work. Any attempts to use a shortcut using Ctrl+Alt+<function keys> only switch to close representations of the true console, but in reality are running on top of that x server I needed to free up. I followed another set of instructions found here, set up the chroot, and it failed.

Third Try

Left with no other options I begin to understand, I moved on with the command line method of actually uninstalling a kernel. I received a stiff warning about how removing the suspect kernel, linux510, breaks a dependency required by linux-latest.

This attempt was interrupted by someone who sounded like he knew what he was talking about suggesting a few things.

The Actual Solution

Changing direction again, I found this Reddit thread that showed me how to expose a GRUB menu for which kernel to boot. From there, I was able to boot a working kernel and get in.

Out of curiosity, I did try to remove the bad kernel from the GUI tool, and it appeared to work until it was still there after a successful report. I was able to bring up the same failure message from the command line in a dialogue box.

Minor Developments

I’ve had tons of issues with my Wi-Fi card, so I turned it off and this week while focused on it, I’ve opened the case, cleaned it, and pulled the card. Maybe it’s software, maybe it’s hardware, but as of this week, I’m using my Pi 400 as a Wi-Fi to Ethernet receiver full time until a suitable replacement can be arranged.

Takeaway

I never realized how far I could get myself sans help on a problem I’ve never seen before. Perhaps I’ve reached a point where my skills are not readily surpassed by those around me. The one recommendation from a person who sounded like he knew what he was talking about turned out to be a dead end (removing the .old extensions from all the kernel modules).

Computer problems can happen to anyone. They’re just easier to learn how to fix without special training on Linux.

Final Question

When was the first time you solved a complex problem you had never encountered before without help?

Family Photo Chest Part 11: PiCore

Good Morning from my Robotics Lab! This is Shadow_8472, and what a week it’s been! Today, I’m telling you the story of how I’m building up an operating system just to scan photos. This is also a follow up to last week’s topic, where I introduced PiCore as a base. Special thanks to Rich and Juanito of the TinyCore forum who have been answering my questions as I learn about this amazing, little Linux distro. Let’s get started!

Window Manager

I feel like I could do a post or two just on window managers, and I may do so in the future. Long story short, a window manager is responsible for drawing windows within a window server, and not much else.

I now know I used to judge a desktop environment by its window manager without much thought to all the other individual programs going on in the background: a file manager, menus, text and document editors, sometimes even a browser and often a calculator. All of that is bloatware for my purposes. My goal is to have as slim of a system as possible for running GIMP without spending days on end cinching the last megabyte out of the system. After all, I still have to look at it.

Which brings me to my choices in window managers for PiCore. With a smaller tce repository due to being off the main TinyCore branch for X86, I only found a few options. FLWM (Fast Light Window Manager) ships with TinyCore in the main branch. I installed it, and hated all the stuff on the left side. I suppose someone must like it, and I can admit it takes up less vertical space, but I do need at least a few familiar points of reference.

I started researching window managers, but only when I searched tce for keywords: ‘window manager’ did I realize just how short my list was. Least of which was a package that looks like it only multiplexes terminals. One of the admins helping me pointed out FLWM_Topside, but I’m not really a fan of jumping cursors, and I had already selected JWM (Joe’s Window Manager).

I found JWM simplistic and appealing. I had already used it in the past as part of the MATE desktop environment, like what I’m using now. The base version is configured by a text file, which I modified by hand to display a panel at the bottom as opposed to the top. There isn’t even support for calculating that automatically!

I was also sure to remove FLWM packages from tce/optional. There are other spots where it’s left hooks for proper execution, and I’ll weed those out when I see them.

NFS Auto-Mount

Network File System: I’m getting the basics, only for TinyCore, my usual method of mounting shares gets flushed out on reboot. But I can work with the system I have. I can’t give the TinyCore people enough credit: they produced a shell script I could customize and told me how to install it.

Color Depth

Just a note, really: Color depth is a thing. The scanners I’m working with each use 16 bits to say how much of each primary color is present in a pixel. I was warned by user barefootliam on the Gimp Discord server that a XSANE plugin may only use 8 bits. I don’t know for sure at this time, but it’s worth noting.

Amusing Errors

Along the way, the system broke — a number of times even. Early on, I found how to hold Ctrl+C to close xorg as it started and to drop to the command line. Sometimes it was root, other times it was the default user, tc. Now that root has a password, it won’t let me pull that one, thankfully.

Another time, I was changing the default GIMP icons from plain white to color. It crashed JWM. I tried several times, and the result was always the same: All the window decorations around the outside were gone, and I was left with GIMP selected, unable to switch to the terminal so I could save the changes with filetool.sh -b as you do when using TinyCore. I found the sleep command and set a delay to restart JWM using sleep 15s && jwm. At first, I was adding a restart command to jwm, but without JWM running, I was left with a dud command and a brick to forcefully reboot.

Toward the end of this development cycle, I was debugging JWM and moved the config files to a separate directory and restarted the program. Yikes! Turns out it came from the tce repository with a theme of its own. Rebooting once again restored the theme to default, but didn’t solve the empty config file issue.

Future Plans

A computer system is hardly ever a static setup. When I have another SD card, I will want to look into a clean build on the aarch64 version of PiCore. Turns out I’m in the 32 bit version. My dream though is to build it on the 8 GB Pi 4 once I know what I want here.

I may not end up using a Pi at all if it just can’t keep up with my old laptop on its scanner.

Takeaway

TinyCore is a fun operating system. It may be a bit limited due to low popularity, but the community I’ve now contacted gets back pretty quickly. Just know that connections to their site are unencrypted, so if you go there, USE A UNIQUE PASSWORD! It’s just good practice anyway. Here’s a link here to the help thread I’ve been lurking in.

Final Question

What kind of long duration projects have you completed?

A Collection of Raspberry Pi Projects: Volume 3: PiCore

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am finishing off the year with another entry into my Raspberry Pi operating system collection. Let’s get started!

I have a number of Pi projects going around now, and not enough Pi’s equipment for everything. My Pi 4 is mainly serving as the family’s entertainment system (I happened to find a Steam Controller driver for it), and my Pi 400 –which I originally intended for that job– is running my Raspian reverse Wi-Fi router card because it’s not supported yet by LibreELEC outside beta releases. I’m tossing these microSD cards around like playthings, and my family has expressed mild concern.

But today, I am taking notes as I build a side project to help with my Photo Trunk project. I have no idea if it’s going to work well, but I’m hoping! Worst case is I learn a few things and move to something more appropriate.

PiCore Installation

I’ve covered Tiny/Micro Core Linux before. I know it’s very much a build-your-own experience type of distro without being totally unapproachable for beginners intent on learning. I am installing it using BlinkiePie (Pi 3B+) with the intention of moving it to a Pi 4 unit later.

The two documents on the download page, IMPORTANT and README, explain how to install the operating system to an SD card and expand the second partition. I followed along more or less blindly.

At one point, fdisk is opened, and I was instructed to “write down the starting and ending sectors of the second partition.” [source] When I listed them, fdisk reported StartCHS, EndCHS, StartLBA, and EndLBA. I looked, but I wasn’t able to find any other examples of fdisk reporting in this way. I only learned about “Cylinder Head Sector” and “Logical Block Addressing” by separating the acronyms. I proceeded to make a new partition, and fdisk was nice enough to mention the largest size I could go.

Construction Pains

I was expecting to start with something resembling the larger “Tiny” Core variant with a desktop environment, but PiCore only has a “Micro” Core image available. GIMP is very much a textbook GUI program, but the tce package manager was more than happy to install it and I estimate fifty dependencies.

I browsed over to the TinyCore forums, and was actually able to activate my account. The connection still isn’t secure, so don’t go using any personal standardized passwords. 50-99 alphanumeric characters with symbols say that’s not an attack vector against me though.

As I was getting ready to look for help in the dedicated Raspberry Pi section, I noticed a thread here where someone was looking to install a desktop. I went ahead and installed xorg, a name I know has something to do with Linux GUI’s, but like the original poster in the thread, I found myself unable to do anything after booting to a simple black screen.

Further experimentation discovered that by holding CTRL+C during startup, I could interrupt xorg from trapping me away from the command line. The results were a bit unpredictable, though. The first time, I somehow ended up as root. Other times, I found myself as tc, the default username, and other times, no login transpired.

I installed the remaining recommended packages, but neglected the window manager. Results were interesting. There was a dock at the bottom of the screen I could interact with, but no visible pointer. I toyed with the setup before rebooting again. GIMP was no trouble to get running with a window manager on board.

Takeaway

In many ways, MicroCore feels like it’s a model operating system. All the parts are exposed but there aren’t so many the mind can’t grasp the overall system. Additional work will need to be done if I want things like automatic connection to GoldenOakLibry or even Wi-Fi for that matter. I still have much to learn.

Final Question

I don’t like the window manager I found. Which one might you recommend?

When To Use LTS

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I’m moving Derpy over to yet another installation of PopOS. Let’s get started!

PopOS is an Ubuntu-derived Linux distro. It’s website has install images for both the LTS or latest versions, each with options for NVIDIA or other graphics cards. Not knowing anything about which one to pick, I installed the NVIDIA and later the generic latest release images.

To date, I’ve found PopOS to be the easiest Linux distro to install. I don’t find it perfect: their GNOME 3 based desktop environment isn’t aimed at a Windows-like workflow, as I’m used to, but their website has step-by-step instructions to install a number of well-known alternate desktop environments. The GUI package manager has a few issues, but I’m convinced that’s normal in the Debian family and the proper command isn’t all that hard to learn. My biggest complaint, though, is that I’m having random Discord/Internet blinks. They’re common enough to be annoying, but too rare to readily diagnose.

The Structure of Maintenance

In one vision of a perfect world, people would only ever download raw source code to compile locally, a process Manjaro has streamlined. The Debian family’s apt repository nicely emulates another “perfect” vision where software is curated – the correct precompiled package is downloaded and installed automatically.

Neither format has an infinite capacity for continued support. Where Arch family distros simply run whatever is newest, Debian-family distros tend to accumulate changes until they produce a new, discrete version. For added stability, LTS versions are maintained so users have an option to go several years without having to go through the hassle of a major update.

Popularity of Ubuntu

Anyone who knows anything more than the name Linux almost certainly has also heard the name Ubuntu. For some, the name Linux only popped up after looking into that Ubuntu machine in the library that somehow isn’t a Windows or a Mac. Its popularity is in part due to its wide software base, drawing from both Debian’s and its own official repositories, as well as any number of PPA’s people have set up. This popularity snowball extends to software available only by downloaded from trusted websites.

Derpy’s Final? Form

One of my primary reasons for installing PopOS on Derpy Chips is having an Ubuntu-compatible research desktop that can access this software base. Unfortunately, while investigating software I want to use in worldbuilding, I found my version of PopOS simply lacked prerequisite packages. Backports were hard to find and compilation was taking too long.

What I didn’t realize my first time installing PopOS was that downloadable 3rd party software isn’t always compiled for the latest and greatest versions of Ubuntu. It could also be a question of maintenance. If you only have the resources to upkeep a few versions of your software, it makes the most sense to focus on LTS releases. This is why I downgraded to the LTS version of PopOS. I didn’t have much to back up, and I was most of the way back in a single evening.

Takeaway

If you are ever faced with the option of installing an LTS release, you really need to consider the application. If you have a dependence on 3rd party software, you may find yourself more readily at home using an LTS version. If you don’t care about any special software and want the latest and greatest without giving up too much stability, a major release may be for you.

Final Question

Have you ever taken measures to make a correct decision, only for another factor to muddle things up anyway?

I Have a Laptop Again

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am putting my laptop back in it its own case and providing my thoughts on my first week of using PopOS on a desktop. Let’s get started!

Laptop History

I’ve said it before: my laptop is now nine years old, and it has no business still running, yet here it is. Trouble started when the power port broke, and I replaced it with a cheap knockoff. The BIOS refused to charge any batteries from it. I resigned to operating from the power cord on a permanent basis.

As I became more interested in using Linux as my daily driver, I saw no harm in installing to a large, external USB 3 SSD. It actually performed better than the internal hard disk. The only downside was one more cable, and that seemed like nothing with the power cord, and I even opted for a second monitor and a separate keyboard/mouse.

Things started turning around when I got a hold of a genuine power port. Installation was a success, but shortly afterward, I accidentally nuked my Windows drive during an unrelated project. Much later, I swapped out the wiped hard disk for a more modern SSD during an emergency teardown in preparation for this week’s simple, but monumental project.

dd if=/dev/sdd of=/dev/sda –status=progress

The dd command is easily the single most inherently dangerous command I know. As such, I insisted on backing up my home directory in case I had another “nuclear accident.” I developed a series of prerequisites, such as getting an NFS share working as I expected with login credentials of one sort or another. I researched that for a while, but made not quite enough progress in that department to justify continued intense focus.

The typical go-to terminal program for do-it-yourself automatic backups is rsync. I would have used cp, as I’m more familiar with it, but rsync has a number of improvements. It’s supposed to be faster, and it intelligently ignores files already in the target directory. It also has an overwhelming number of additional options I couldn’t begin to cover.

Once I had a copy safely stored on network storage, I had rsync double check it, and I loaded up my PopOS install media –also on a USB 3– to prepare for the final copy action. The BIOS kept loading back to my main install, but instead of arguing with the BIOS, I just unplugged the wrong drive until it was strictly needed.

Both my target and my receiving drive are 1 terabyte a piece, but there’s a little room for variation in the specs. As a final check, I used lsblk –bytes to examine the exact size, and I had a relatively tiny difference in size leaning in my favor. As is becoming my custom for dangerous commands with elevated permissions, I only prefixed it with sudo after checking and double checking the command after entering it. I REALLY don’t like commands where a single character off could be a valid command I do not want to run, especially when I have hard drive designations /dev/sdd and /dev/sdb at the same time.

I only triple checked before executing the critical command. I should have quadruple checked, but everything was in place. I had dd report its progress so I could estimate its time til completion, and it turned out to about 6 hours. I was not there for when it finished, but it booted up just fine first try. My laptop is now a normal laptop again.

PopOS Meltdown and Recovery

PopOS gave me a bit of a scare this week. I customized it by installing KDE, but it started acting really weird when I was trying to play a game with my sister. The trouble started after an update. Discord and Firefox were going on the fritz, sometimes spazzing out two or three times a minute per use. Rebooting didn’t work. Loading up GNOME didn’t work. I had to put it away over Sabbath, and when I upgraded packages again, the issues stopped immediately. I am very thankful to the teams who provided a quick turn around time for whatever bug was making things unusable.

Final Question

I have been looking forward to finishing this milestone for a really long time. I feel like a soft chapter in my hobby here has come to an end. Which of my long-term projects should I return to next?

PopOS and X Drive Recovery

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am reviewing my first impressions of PopOS and compiling another short story I have about data recovery. Let’s get started!

Derpy’s Re-refurbishment

One thing I’ve learned while poking into Manjaro is that if sometimes a “Linux” program really just means it’s packaged for Debian or Ubuntu and other branches are expected to be tech savvy enough to bend compilers to their will. For that reason, I am re-refurbishing Derpy Chips with PopOS, an Ubuntu-based distro made with both privacy and Linux beginners in mind.

When the tale of Derpy Chips was last laid to rest, I had slated it for a new cooling system, as well as a new hard disk and RAM. The later two are trivial for anyone who isn’t afraid of the inside of a computer case. When the parts arrived, they basically went straight in.

The water cooling system, on the other hand, is a lot more involved. I waited until my father was available to do that with him, and I’m glad I did. We unmounted the radiator and the thing looked as if it had ten years worth of dust preventing any and all airflow! And the fans weren’t even blowing the correct direction. After applying a generous amount of vacuum cleaner and toothbrush, we put the radiator and fans back on correctly, but the old, gummed up case fan was on the brittle side. It’s now secured with a length of wire so it won’t spin off-balance.

The cooling system is now working fine. We figure that problem is solved now, but we have a spare just in case.

PopOS

I had a few bumps installing PopOS, but those were all on me. I have a new favorite USB drive to install Linux from, mainly because it’s USB 3. I forgot to umount everything before writing the install image to it, and things seemed to hang for an unreasonable amount of time. Otherwise, it was the smoothest Linux installation I’ve ever done.

I went into this knowing I’d probably be switching out the desktop environment. While the PopOS branding emphasizes the polish they’ve put into tweaking GNOME 3 to boost productivity, I am very particular about my desktop computers looking and feeling like desktop computers and not phones or tablets. Perhaps one day, I’ll get around to using it, but not at this time.

Minor complaint, but for seemingly no reason, CTRL+ALT+t doesn’t bring up the terminal. I have absolutely no idea why not, as that is the number one most important key combination in Linux — far more important than the Windows “Three Finger Salute” used in bringing up Task Manager.

X Drive

Well, It seems I just got a dinosaur of a network storage device working when it dies not two weeks later without fanfare. I spent a short while applying my knowledge from researching NFS to make it properly accessible. I went through and taught myself how to connect special to an SMB drive. I even made a link to it from the desktop. It worked. Now it won’t even acknowledge itself as an internal system.

Along the way, I was imagining a hidden clock in the drive. If the clock reaches zero, the drive stops working. The goal then is to get in, get the data, and hope there’s enough time. I posted for help, and Discord user Ghostrunner0808 walked me through the basics of single-use rsync. It uses the same syntax as cp, the copy program I was otherwise going to use. It can also start again where it left off, in case operations are interrupted.

I set up a little sandbox directory and experimented. While I wasn’t able to get all my root level hidden files to copy, I was able to get everything else. I also looked through all the help prompt and was settling on using the flags: -rtUv. r for recursive, t and U for times last accessed/updated, and v for verbose so I know it’s still doing something.

One of the network shares is meant for general access for all family members. Permissions were such that it made the perfect place to dump X Drive. I copied and modified an appropriate line from a working /etc/fstab to mount it on boot.

The whole reason I had conceived of this idea was because X Drive is little more than a regular hard disk in a plastic case and a special case to hold it on end. The plastic case was getting in the way of the SATA cable from connecting. We forcefully removed it, only to find someone showing how we could have done it without damaging the snaps.

DO NOT TRY THE FOLLOWING AT HOME. One trick I was thinking about trying was triple bagging the disk and sticking it in either the fridge or freezer. Some people have reported saving a failing drive this way, but further research found this is only effective when the read head is sticking to the platter; I could feel the platter spinning inside the case.

This one is above me. I need some form of professional help.

Sad to end on a bum note, but two out of three isn’t bad, though I will add that PopOS has only two downloads: one for systems with NVIDIA cards, and one for all other systems. I downloaded the NVIDIA one, thinking Derpy’s card was such, but I was wrong. Good thing the installation process is super easy.

Final Question

What priorities do you value in an operating system?

Raspberry Pi OS: Review and Clean Install Image

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am going over the new official Raspberry Pi operating system and producing a custom image I can deploy in case I ever need a clean install. Let’s get started!

Raspberry OS Review

BlinkyPie is my Raspberry Pi 3B+ with a Pacman ghost case I printed and finished myself (with help). It’s supposed to eventually host an OpenCV powered feline deterrent system I’m still aiming to deploy some day. Today, I’m starting by installing the new official operating system for all Raspberry Pi’s: Raspberry Pi OS on a fresh MicroSD card.

Installation was fraught with several simple mistakes. My proper procedure is to: 1. Have an empty MicroSD card. 2. Download the OS image (over a WIRED connection) and verify it with its hash. 3. Quarantine the image and SD card on a computer I don’t mind rebuilding (no sdX other than the target SD in an adapter, internal MicroSD is mcblk0). 4. dd the image to /mnt/sdX. 5. Boot the image. 6. If it doesn’t work, lower the bit rate for the dd command (yes, it saved the project this time).

I didn’t skimp on resources this time: I got the full desktop image with recommended software. Long-term, I’m figuring it will be easier to maintain. Since I’ll be using this image over and over several times, I took a day or two to do things like localization settings, a lefty mouse, enabling SSH, and customizing the UI.

I’m looking to move away from using default, non-root accounts. Raspberry Pi OS (I’m just going to call it rPiOS from now on, if that’s okay) and Raspian before it come with one called ‘pi.’ To change it, I had to first enable SSH, log out any and all sessions for the pi user, and change over the account and home directory names — preferably without logging into the GUI as root and creating a bunch of normal user files.

I poked around rPiOS without an agenda for a bit. There was always the games folder I never paid much attention to before, so I checked that out. Of special interest were the collection of simple Python games. They had no fewer than three Tetris clones, a normal one, one with one block pieces, and one with five block pieces, like the original Soviet precursor. The five-block per piece game runs a little fast, so after some time, I realized I’d like to try and slow it down a bit. I also found a “Bookshelf” where you can read up on Pi projects. It also came preloaded with a bunch of programming tools. I know it should be obvious, but rPiOS is built for learning. It has just enough there to be plug and play for a browsing machine, I know the Pi3 chugs a little under watching my church’s Livestream on Sabbath mornings, but it should be more than enough computer for anyone without serious computation needs.

A Small, Custom rPiOS Image

I have to admit, this week’s topic was a node for a much larger project I’ll be covering next week. Suffice it to say, I’m in a position where I may need to reinstall rPiOS several times in rapid succession. That is why I’m making an image file.

Once I had tweaked rPiOS mostly to my liking, I shut it down and brought the card over to my Manjaro Pi 4. dd was not happy with me making backing up my MicroSD to a 1 TB external hard disk for some reason. Everyone helping me seemed sure it was corruption on the MicroSD card. As much as I respect their advice, I can’t help but be skeptical this time. It’s a new card with low usage so far. It boots fine, and I was trying to copy between two devices on the same USB 3 component. I’ll file this away as mystery unsolved for the time being, but for whatever reason, it confused BASH to the point where ls wouldn’t work with relative paths until I changed directories.

I eventually used the internal rPiOS card duplicator and made a physical copy over top my RasPup install. I tested it, and It booted normally. Moving things back over to the original card, I followed a tip I found in this video and used dd if=/dev/sdX | gzip > imageName.gz to make a compressed copy of my pi SD directly on itself. I copied it over the network with scp, and unzipped my image.

Now, many guides on rPi backups invoke partition tools I’m still too scared to touch, especially on a timeframe. That’s why I downloaded and used PiShrink, a shell script available on GitHub that downsizes your Pi images so you’re not saving empty space in storage — or even worse: transmitting it to a friend. Apparently it’s popular for use with RetroPi, a Pi distro for emulating old games.

My MicroSD cards are 32 GB each. My final image is down to 9. If I had more time, I may try again without the default desktop background, since I’m planning on never using it, and I think my custom desktop image is a good chunk of the added size.

Final Question:

What useful finds have you made when looking for something similar?

A Collection of Raspberry Pi Projects: Volume 1

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am playing with some SD cards I got to try out additional systems for my Raspberry Pi 4. Let’s get started!

The Plan

I would like a computer where I can format drives without having to worry about nuking any drives I can’t easily repair should I get a single keystroke wrong again. I need a quarantine machine.

Earlier this year, I got a Raspberry Pi 4 to serve as a head/firewall for a model supercomputer (still pending). Back then, I found three microSD cards, but only one was good for booting Raspian, and I ended up with a neat, little Wi-Fi to Ethernet router. I like my reverse wireless router. I don’t want to give up my reverse wireless router.

I started shopping for microSD cards, and came across a then-recent Tom’s Hardware article where they tested several brands for use with Raspberry Pis and compared them in different areas. Going off their recommendation, I selected the Silicon Power 3D NAND. I figured I may want more than one, so I got a 5 pack. The next size up was 10, and I’m not quite that avid a Pi user at the present time.

Besides a Quarantine Machine, additional applications include:
a general purpose operating system,
an actual firewall/supercomputer head
a media center
a home-network wide ad blocker
And it would be good to have a backup of my Quarantine card in case I really goof it.

Manjaro ARM

While I was installing Manjaro on my desktop, I noticed they have a version for ARM processors, such as the Raspberry Pi. They even maintain an image for installation on the Pi. I went with XFCE to preview for an upcoming project.

Installation was a nightmare due to user error. I must have tried three or four times to load Manjaro onto the first partition on a microSD card. Along the way, I found a thread where someone was reporting issues with installing the current version, 20.08 (named after the year.month), and people told him to try 20.06. My advice: if you’re thinking about trying to install any version of Manjaro, don’t try to downgrade. I don’t remember how I did it, but I got an older image to update later.

Once I went back to the official documentation and saw I was supposed to aim the dd command directly to the drive itself, I got it next try using the older image. The interface to finish installing felt unintuitive, leaving me to research keyboard standards. I would not recommend for anyone new to Linux.

Where the installer lacked polish, the XFCE desktop environment made up for it with some nicely preconfigured settings. Perhaps I was a bit harsh on it before. I was especially happy to be rid of the ugly, black lines around the screen present on Raspian. And of course, once I found the pacman command to update and checked the version, 20.10 had been released.

I went to hone this install in, reviewing some of my past lessons. A brief search didn’t help me set a static IP, but I moved on anyway. SSH was enabled by default, but it gave me an infuriating time confirming the host key fingerprint. I ended up caving to move on, but I did learn something about the improved security of a newer standard called Ed22519.

Raspup

Puppy Linux –in theory– is an excellent choice for an expendable Linux install on a Quarantine Machine because. It’s small, it’s enough to get you by as a daily driver if you can stand its slightly offbeat control scheme, and most importantly, it’s easy enough to reinstall. It’s also made for x86.

That’s where the people over at Raspup stepped in earlier this year. Installation was much easier than Manjaro, but that was where the polish ended. It’s so new, they don’t show up on Distrowatch. Their site doesn’t have a recognized security certificate, and has some oddball domain going on.

As for the operating system itself, I found its lack of Ctrl+Alt+T bringing up a terminal to be the greatest shortcoming in terms of my user experience. It also seemed obsessed with using linked GUI windows for everything initial setup. It also took way too long to boot up. While it did have those black bars around the screen, it did have a utility to adjust them between reboots. I don’t have the patience for it right now.

The most impressive thing about Raspup is their claim to work on any Raspberry Pi version, though the compute module remains untested. I honestly wish this project the best of luck, but at present, I can only recommend this cute, little project if you’re bored, want to poke around with something new, and have a spare microSD card for your pi. [Link to Raspup]

Other Projects

My goal was to also include a media station, but that didn’t install correctly as my research window for this week was closing. I’d also like to see about extracting an IR sensor from a dead piece of hardware, but that project can easily fill its own month of blogs.

While doing my write-up, I considered Tiny Core again, and there appears to be one for the Pi. I may do this one on the sly without reporting on it.

Six plus microSD cards is a lot to manage for a single Raspberry Pi. The five pack cards each came with an adapter, so I borrowed a label maker and applied labels to those.

Closing thoughts

One of the quirks I noticed with Manjaro on the Pi was that my USB SD card reader was showing up as /dev/sdc. Normally, SD family cards, such as the one inserted directly onto the motherboard at the time, have a different designation, so that’s something to look into. On the other hand, this discrepancy may be just what I’m after in terms of a safe computer to blast away at disk destroying operations. It only took one wrong keystroke, and if I don’t pursue Tiny/MicroCore Linux again, this may have the safety margin I need where I can disconnect any unneeded drives without opening any cases.

Final Question

What other Pi distros would you like to see reviewed on here?

Family Photo Chest Part 10: SANE Front Ends.

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I’m trailblazing the next phase of this project. Let’s get Started!

Ten months now, I’ve trickled on with this project. All so I don’t burn out on it. And as always, just as I crest one peak, another valley of research to explore awaits me on the other side. Hopefully, I’ll get around to scanning the first photo before this project’s first birthday.

My goal for this project is preservation. I’m obsessed with not losing any details and getting the cleanest image possible, and even I don’t fully understand what that means yet. In theory, that could mean grabbing the best scanner on the market and cranking it up to max. That’s more or less what happens to old movies when they’re being digitally remastered for use on HD or 4K big screens. But once something has been digitized, the amount of captured information is locked (barring AI upscaling, but that’s a topic for another time), and I want this project to be able to stand up in a generation or two, even if all physical originals are lost.

Early Research

This week’s research focused on the one known missing link, the software. I would like to have a feature to keep front and back scans together, and that probably means either writing my own interface or modifying an existing program. I went to find the source for the scanner software for Linux I otherwise have a minutia of experience with, and I can’t find it. The closest I can find is an RPM package for Arch, and I read that that’s not a guarantee: such packages can contain precompiled machine code, and editing that would be a bit above my skill level.

I started thinking about the chain of software that accomplishes the task of getting anything scanned. Down at the bottom, just above the operating system, there’s the driver controlling the scanner. Higher up, there’s a middleware layer called SANE. On top of that is a front end in either a GUI or the terminal. If I am to write my own program from scratch, it would be tailored for only this one scanner and be feeding commands to the terminal front end.

I dug up a few alternate front ends for SANE with the intention to attempt modification. Options include XSANE, a program I gather works, but is a little generic, and SwingSane, a project that aims to unlock all options for any compatible scanner, but hasn’t been maintained in five years.

GIMP

I was a little surprised to hear that GIMP has a plugin for scanning pictures directly in for prompt, user-guided restoration works to correct scratches, dust, fading, or other problems without a potentially over-aggressive fully automatic algorithm giving you “scans that look worse than the original” (Link to citation). As an added bonus, a picture can believably be scanned in as multiple layers and easily saved to file as front and back with no extra modification needed. Same goes for if I want to scan a whole album.

Where Are the Bottlenecks?

Scratch that last detail. My whole robotics blog here has turned into being more about how I’m using Linux to keep aging computers out of the e-waste bin, often with a touch of Frankenstein thrown in. If I want to go preserving every little detail I can down to the grain, these pictures WILL be packing away the RAM, and chewing through any remaining swap space, probably crashing any machine I have to throw at it. I’m afraid a more modern machine will need to be specced out.

Such a machine would be built for the task, and intended to have a nice, long retirement as a regular gaming rig. I’d like this thing to still be in service ten years from now. As I understand it, we’re at the relative beginning of Intel’s LGA 1200 slot, so late-life, second hand upgrade isn’t out of the question, and M.2 is still fairly new in terms of how long PATA and SATA lasted. For all I know, I’ll be running out its final clock cycles in some kind of cluster or a cloud computing application twenty or thirty years from now.

Final Question

What is the longest project you’ve ever persevered at before any results started showing?

Miscellaneous Bits and Bobs

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I only have a bunch of unfinished projects I’d like to write about, but not are really ready, so I’m picking one or two and expanding on them with a mini-update. Let’s get started!

NFS

In my last photo archive post, I talked about mounting a file share manually. This is fine and all, but my intention this week was to get it connecting automatically on boot. I had a bit of a bump when I tried connecting to a share called “Photo Trunk” or something like that. When mounting, I would properly escape the space in the file path with a backslash, but the file system table didn’t get the memo. Long story short, it needs “040” instead of an escaped space. I don’t know why, but it just does. Shortly thereafter, I ran into a permissions barrier I have yet to resolve.

Update:
In a random search I wasn’t expecting to go anywhere, I managed to find that I needed to replace the space with “\040” and not just “040”. I tested it with sudo mount -va. It’s working now.

Manjaro Shakedown

Arch has a reputation of being unstable, but so up to date that software any newer is yet to compile. Manjaro Linux aims to shift the balance around to be more friendly to people who don’t know a compiler from a package manager. I’m also being a tad dangerous –or so I hear– by running the KDE desktop environment on an NVIDIA card, especially with the proprietary drivers.

I’ve noticed several times while playing modded minecraft that my desktop environment decides, “You know what? We’re just going to crash and start over from the login screen, even if login on boot is disabled. Oh, and we’re going to make it look like it might be a power blink and spook Shadow each time it happens.” –Note: I now have login at boot. I’ve reached out for help across Discord, but nothing conclusive has shown up. I managed to capture a log file right after a crash, but nobody helping me found anything conclusive. The best guess was that because the traceback for some problem in the xorg logs was handled by a library to manage input, these crashes may be related to the random stutter my wireless keyboard is experiencing, though I’m skeptical.

I’ve had this kind of keyboard for years, and I’ve always had stuttering problems, regardless of OS. Nevertheless, whenever we looked, it was the only wireless, ergonomic keyboard on the market that we could find. I’ve even experienced these frustrating stutters while writing here, now, yet I’ve put up with this particular keyboard til I’ve worn the matte finish on many keys until they’re mirror smooth.My N and Numpad_2 keys are totally missing their decals, and several other keys are already unrecognizable.

It’s possible my keyboard is crashing the desktop environment. Every time I’ve had the crash, I’ve been actively playing, and at least two of those times, I was fighting keyboard/mouse lag at the time. I’ve had another small glitch where a small, almost square rectangle of pixels along the bottom of my screen goes black for everything but my cursor. Unplugging my monitor and plugging it back in didn’t help, but the issue was gone after a reboot.

The more I use Manjaro, the more feels familiar. Really, the biggest difference from Debian I know about is the repositories inherited from Arch. The terminal acts a little differently in a way I don’t like, but I know that if I spent the time to bother changing it, I could. On the whole, I’m familiarizing myself with both a distribution and a desktop environment. A far future project may be to assemble my own experience from elements of everything I’ve seen.

Modded Minecraft Update

This one would never get a post to itself, but I’m after filler. Just tonight, I added a couple mods we were talking about, one to make the ender dragon leave an egg each time, and another to prevent endermen from making off with your grass, dirt, TNT, or other blocks they list as portable. The hardcore modding culture hasn’t moved past 1.12.2 yet, and it was 1.13 that introduced datapacks that really opened up lightly modified gameplay to otherwise strictly vanilla servers. The built-in function involving mob griefing is great, but nerfs creepers and ghasts — two otherwise harmless mobs when totally ignored. To ambitious players, endermen’s abilities to move blocks are more annoying than fun.

The Importance of Help

I’ve been chugging along regularly for three years now, and I only remember being late on a post by a single day once. I have proven to at least myself that I can write regularly. Along the way, I’ve found communities to solicit help from. At some point, I’d like to get a little more serious about my presentation because a default WordPress theme and a weekly wall of text wouldn’t insight confidence in me if I were looking at a tech blog. I know I chose this platform because I could get access to the low-level code, but I’ve only glanced at it once or twice. I don’t know any web design, and I can’t get excited about learning it. I’m not even sure I have the comments section working correctly!

Final Question

I decided to include the extra formatting this post on a whim to better separate the discrete partial projects, but I think I might use it in the future. What do you think of it?