My 3D Printer Needed Maintenance!

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project for the week. Let’s get started!

I wanted an easy post this week, as the past two weeks have been downer endings, and 3D printing has been on by background list for a while. For reference, I have a Monoprice Maker Select Plus I got for Christmas several years ago. Since then, I’ve learned that 3D printing is almost more about maintaining your machine than it is about actually printing things.

I wanted to print up a part I need for a planned project, but no matter what I did, the bed wouldn’t level out for me. The back, right corner kept turning up as too close to the extruder, even when at the end of its adjustment screw.

I reached out to relevant help channels, and someone from the Sweetie Bot Project’s Discord server informed me of new ways my model of printer was a low-end tool/high-end toy. My print bed is warping over time, though I cannot test it with a ruler or triangle because of a bad spot in the middle.

My solution was to find an Allen wrench and raise the Z-stop switch a notch. I leveled the bed again, and I was just barely comfortable enough with a flat test print to try a Benchy. I came back to a failed print. When I got around to servicing it properly, the filament was snapped off – my filament is wet from improper storage over a period of humidity.

I don’t have time to fix it and try again before posting, so this short post again turns into a downer ending. At least I learned a thing or two.

Final Question

If you have a 3D printer, how do you manage how it absorbs humidity?

My Sister’s Computer Hates Me!

Good Morning from my Robotics Lab! This is Shadow_8472, and today I am starting a series on installing Linux on my sister’s desktop. Let’s get started!

The Plan

My sister has expressed an interest in digital privacy and switching to Linux. She showed interest in installing Linux on her computer this week, and I just got a pair of new SSD’s on sale while shopping for my Arch installation, so I’m using one of those for this installation.

To the best of my experience, PopOS has been the distro of choice to use in terms of compatibility and privacy – by that I mean it has access to the Ubuntu library while System76, the company that makes it, advertises itself as being more privacy aware. While I’ve had problems with it in the past, they weren’t too difficult to sort out. It has a straightforward installer, and then their website has a selection of commands to install a preferred desktop environment. In short: it’s my favorite distro for beginners.

Hardware Installation 1

My sister left me a note inviting me to start work at my convenience, only for a Windows update to pop up while her system was unattended. I got her message before it was obscured, but I still found the irony funny.

For reference, I am working with a 1TB SATA SSD. About as soon as I had the case open, I was scavenging the technology pile for a SATA cable and a power connector from the supply I replaced a while back. The computer screws I found gave me too much trouble attaching it to her computer’s bracket, so I left it loose, later securing it with electrical tape several hours and “learning moments” later.

PopOS Install 1

Computer motherboards have what’s known as firmware, often referred to as BIOS, though recently replaced by UEFI. For the rest of this post, BIOS refers to the old, limited firmware exclusively. My sister’s computer boots with UEFI, and it was displaying on her WACOM graphical tablet where I missed it for playing around with HDMI connections on the graphics card so I could override boot to a USB drive with the latest PopOS install media.

I forget how, but the tablet-monitor went unnoticed until it was the sole output with the installer. I took special care to make sure I was installing to the blank drive, and not over her Windows installation. This was especially important because the system already had a 1 TB hard drive. After that, I put on the KDE desktop environment.

A minor, still-unresolved nuisance was the main monitors constantly being swapped. You can swap cables, or physical devices. Somehow, they always end up swapped. I also noticed some sort of U/I ghosting and horizontal line flickering I solved by removing the WACOM tablet entirely (it was mirrored to one screen – possibly both directions).

I finished up my first day arguing Minecraft into working (barely). I installed MultiMC and GraalVM, only for her modded world to require Java 8 (not an option at present for GraalVM). I was able to link up OpenJDK 8, which came preinstalled. I had to duck back into Windows to disable fastboot so Linux could mount the Windows drive and she can play the same world in either operating system using a symbolic link (shortcut) there. Despite Minecraft only launching around 1 in every 30-50 attempts, we were able to leave her world running “overnight” – which turned out to be only a few minutes after walking away. We found Linux in a mess in the morning. Very little worked, but it all pointed to hard drive failure. It wouldn’t even boot after requiring a forced shutdown. We ended up trying a SATA cable from an old church office computer in our stock – praise God, it cleared up the issue! It still didn’t solve Minecraft from arguing with video drivers:

java: ../nouveau/pushbuf.c:730: nouveau_pushbuf_data: Assertion `kref' failed.

or throwing SIGSEGV errors I haven’t begun to investigate yet.

All this time, I was thinking about how GRUB (Grand Universal Boot Loader) was never able to see Windows, like in the other systems I’ve dual booted. To my dismay, I found PopOS was running in legacy BIOS mode, where Windows was in UEFI mode. The two will never be able to see each other. A reinstall was in order.

PopOS Install 2

Dual booting is no joke if you don’t know what you’re doing. If it were my system, I’d have just taken the hit and accepted the need to select an operating system at the firmware-level. But no, I want an intuitive menu my sister can use. Unfortunately, this meant reinstalling in UEFI mode. To help with that, the folks at r/TechSupport pointed me to Ventoy and instructions on how to set it up with a GPT (General Partition Table for UEFI) instead of an MBR (Master Boot Record for BIOS).

I used my new Ventoy USB to reinstall PopOS, being sure to select the NVIDIA drivers version of the install disk image and choosing the more KDE-native display manager sddm over GDM3 when prompted.

UEFI is a pain to dual boot.

GRUB did not come installed this time. I tried installing grub-efi, but was never able to get it to work correctly, even after installing something for it to /dev/sdX. After much reading, I concluded that a simpler alternative to GRUB may be more suited to this application as the last of my stamina for the week depleted.

Takeaway

I thought this would be a nice, little side project done in a couple hours with a tough issue here or there. WRONG!

Final Question

Have you ever had a project fight you every. step. of. the. way?

I Don’t Want to Use Manjaro Anymore

Good Morning from my Robotics Lab! This is Shadow_8472, and today, I am scoping out Arch Linux for install on a daily driver. Let’s get started.

Majaro done did it this time. With every bad update I get, I’m more keen to listen to the people calling out its mistakes. Recently, an update broke around three pieces of software I use – including one I need for an upcoming project. Let’s spend a week or few installing Arch!

Arch Linux: Pre-Install Impressions

Arch is a major Linux distribution heading a branch of other distributions, similar to Debian or Fedora (of the Red Hat branch). Its userbase has an elitist reputation like the ability to install Arch makes them smarter or something, but I’m sure it’s just for the memes. My understanding going into this project is that Arch Linux is less a “Here is an operating system to install” and more “Here are the components, install what you need. If you don’t know what you need, check the wiki [1]. It’s one of the best.” Thus: people who use arch [by the way] have only proved they know how to follow instructions.

Arch Linux has two primary resources: archlinux.org [2] and wiki.archlinux.org [1]. Additionally, I’m following a tutorial by Learn Linux TV on Arch installation [3]. One afternoon on the Arch Wiki, and I can tell this is looking like a longer project. I’ll be lucky to have my installation media and basic install.

The Arch community is smaller than other distributions, and therefore places a heavier emphasis on users contributing back. Given the more technically inclined user base Arch caters to, it’s a more reasonable of an expectation than it sounds like at first glance.

Choices Before Install

As noted above, Arch is a distribution that highly values customizability. Browsing the wiki turns up a slew of names I’ve seen while troubleshooting. Every little part that can go into an operating system one never thinks of until it’s not working properly is on display here. While I intend to go for a complete desktop environment at this time, I could totally spend months building something truly unique if I had the patience to learn each piece – perhaps starting with a window manager as different from what you typically find on phones and desktops as they are from each other, maybe something that doesn’t use the mouse outside a program. I’m not ready for that though.

One major choice made before even download is if you want to install for a BIOS vs UEFI (or on an encrypted drive). BIOS almost needs no introduction – almost. Some version of the Basic Input Output System can be found on most desktop computers made since around 1980 and on into the new millennium. BIOS runs directly on a computer’s motherboard the moment power turns on. Its job is to start the boot loader, and manage system I/O until shutdown. It has become so ubiquitous that even having grown up around computers, I only recently realized the word is a proper name like “Linux” as opposed to describing its purpose per the term “operating system.”

It’s taken fifty-some-odd years, but BIOS replacement UEFI is the de-facto successor that addresses these limitations. UEFI boots drives beyond 2.2 terabytes, with its limitations on the 2022 scale of the Internet in exabytes. Unconfined to 16 bit operations, UEFI can afford things like a nicer interface with mouse support. Like it for its additional utilities or hate it for being closed source and Internet capable, it’s what most people are stuck with going forward.

Takeaway

Installing Arch is a much larger task than I originally gave it credit for. From what I have seen, it is the distribution I would recommend for people looking to learn how to assemble a Linux system once they are familiar with the command line. I expect this project to take my Linux problem solving skills to the next level.

Final Question

What is the deepest you have gone into your favorite operating system?

Works Cited

[1] wiki.archlinux.org, [Online]. Available: https://wiki.archlinux.org/. [Accessed Oct. 17, 2022].

[2] J. Vinet, A. Griffin, and L. Polyák. archlinux.org, 2002-2022. [Online]. Available: https://archlinux.org/. [Accessed Oct. 17, 2022].

[3] Learn Linux TV, “Arch Linux: Full Installation Guide – A complete tutorial/walkthrough in one video!,” youtube.com,March 31, 2021. [Online]. Available: https://youtu.be/DPLnBPM4DhI. [Accessed Oct. 17, 2022].

I Went From Command Line to Discord Voice on Raspberry Pi

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project of the week. Let’s get started!

Starting From the Basics

I found myself in need of a separate Discord account connected to a voice server this past week. With one account on my main computer and myself unable to use Discord mobile, I chose to work with my Raspberry Pi 400. I downloaded a build of Debian 12 for the Pi, flashed it with balenaEtcher, and it booted to the command line with no Internet access.

I was challenging myself by trying to maintain a conversation while setting things up. As I lacked a free Ethernet connection, that meant working with Wi-Fi. I only got as far as failing to get wpa_supplicant up while only using far fewer tools than were assumed by the tutorials I was using. In the end, I moved a connection over from my main computer temporarily.

Desktop Environment

The MATE desktop environment has been good to me for my old laptop. Once I got it installed on the Pi, even it felt a bit heavy – a note for next time, I suppose. I was able to easily connect to Wi-Fi and restore my desktop’s Ethernet.

Firefox went on next because Discord doesn’t have a client for ARM processors outside the same Android app I cannot use, but the browser version loaded. It didn’t see my USB microphone, and neither did Firefox even after bumbling around with allowing web pages to see my mic. Only then did I find and enable the PulseAudio daemon so Firefox could see my mic and pass it to Discord.

pulseaudio --start

Since I was working quick and sloppy as root, I had to use the following instead:

pulseaudio --system

Takeaway

I can tell my skills are improving. I believe a full Arch install may be in my future.

Note

An interesting problem I keep running into is the system clock. Extreme low-end computers frequently don’t include the circuitry to measure time while power is otherwise off because of monetary cost and circuit board real estate. This week, it meant I had to reboot after connecting to Ethernet, though I could probably have found a way to manually set it.

Final Question

What is the craziest project you’ve ever done starting with a command line?

I look forward hearing your answers on in the comments below or on my Discord server.

I Want to Power On Without the Power Button

Good Morning from my Robotics Lab! This is Shadow_8472 with a side project of the week. Let’s get started!

Booting Without the Power Button

I retired my laptop as a server primarily over a broken load-bearing clip on the screen’s bezel. As I now have to be more careful than I can be in regular use, I want to minimize how often I open or close the lid. The power button is under the lid. A month or so ago, I told it to reboot over Cockpit, a web admin interface, and the web interface remained down. Only this week did I open the lid to the background of my login screen.

Without considering the actual problem, I marched along research for booting with lid closed. Options for this kind of thing are either limited or use different keywords than I think of. My options consolidated into the following: “Wake on LAN,” “Wake on USB,” “Wake on AC.” Wake on LAN allows other computers to power on a device with a special packet. Wake on USB was an option I found for the look-see in my BIOS under a similar name, but its help description implied it was only for when the computer was asleep and would work for a cold boot or perhaps even with Linux.

Wake on AC is an option I have witnessed before and even used without understanding it for a fair booth I once helped with long ago when it was defaulted on for a system. I reached out to multiple places for help with this one, and am still to hear back. No option appears in my BIOS menu, but rumors exist about hidden options or recovery modes. I have been unsuccessful in accessing any such modes so far.

Open Source BIOS Replacements

While it’s easy to think of BIOS as essentially part of the hardware, it’s actually a category of software called firmware, and it can be swapped out like an operating system. On the other hand, open source BIOS alternatives suffer from the same challenges as replacement operating systems for smartphones: every model of motherboard potentially has a tailored BIOS to run it, meaning it can take a while reverse engineer and get working properly.

My I focused my attention on two projects called Coreboot and Libreboot (Libre-boot, not Lib-reboot). Both are open source projects. Coreboot is willing to grab proprietary, closed-source blobs of binary data to increase their availability to enthusiasts. Libreboot’s mission is 100% open source booting at the cost of more extensive work to communicate with different chipsets. Neither project lists my laptop model as supported. On the other hand, I recognized System76 on Coreboot’s list of vendors.

All I wanted was to boot without my power button. Is that too much to ask?

Takeaway

In the end, I worked on the wrong problem this week. I misdiagnosed my symptoms with a valid concern, but even if I pulled it off this week, Cockpit still does not start until I’m logged in, and that’s kind of important when physical access is less than immediate.

Final Question

Have you ever gone off working on an issue you hadn’t actually run into yet?

I look forward hearing your answers on in the comments below or on my Discord server.