"Daruma Ink"

Linux Merit Badges

BASH

Linux Merit Badges There is a change happening in me: No longer am I screaming ”WWHHYYYY?!,” in the face of computer problems, but asking ”Why?” but How? I can't say Milly has been happy with me goofing off on a computer for most of the weekend, but I’ve learned more about Linux in two days than I have in a long time.

The Thinkpad I rescued came in the mail a lot quicker than I expected. The weather dropped from a cheery 28 to a wet and miserable 4. As if to dissuade any an invasive thought about going outside, I had no clothes to wear for the weather. Milly spent the warmer part of the month packing away and cleaning Winter clothes. Now I had two full days to shutter away, wrapped in blankets and huddled away from the cold world outside. With early sunrises kissing our window and no agenda, it was time to dive into the mysterious world of Arch Linux.

The USB Stick Won’t Work

The Thinkpad went through its pre-installation steps. I swept off the dust, charged it, and checked it all over to be sure it was ready for action! I kept the Arch Wiki up on a different computer and read the documentation about the bios; getting a solid idea on booting from USB. The Arch Wiki has a lot of good options listed for putting the ISO onto a USB stick and chose Rufus to start. When the 16G USB was inserted, only a 4G partition was visible. Odd, but not a deal breaker. It’s enough. Rufus detects the partition and proceeds to clean and burn. I pop it into the Thinkpad and mash the f12 button, select the USB from the boot menu, aaaaand nothing happens.

I look back at the wiki: ”Ah, I chose the wrong read type,” I read, “Just need to do it again with the right settings.”

I repeat the steps, this time reading carefully. Okay. All seems good. I repeat the motions, select the USB stick from the boot menu aaaaannnddd:

Nothing. Again.

Now, the USB isn’t even registering on my Windows Computer. It to shows up in Disk Manager, but attempts to fix the USB crash the application. I tried an old trick in the power shell to fix it, but it flat out doesn’t work. If insanity is doing the same thing over and over but expecting different results, call me crazy because I rebooted the machine and opened Disk Management again. I managed to delete a partition on the drive in hopes of making the USB recognizable… or useable. It was futile. I’ve broken the USB stick. I’m a bit annoyed but not too bothered - I brought that USB stick with me from the Old Country and it’s been with me for 15 years. There is a good chance that being my multipurpose USB stick for so long has finally taken its toll. I stuff it away in a box with other ”To Be Fixed” accessories.

Not All is Lost

Shuffling around in the little box where I keep SD cards and the like, I find a 4gb micro SD card that came with… something. It was empty and the perfect candidate for my next attempt at writing the system. Maybe the issue was Rufus, I theorize. I look at the list again of recommended software and select the seemingly simple USBWriter Portable program. The Wiki even says it’s simple, so I do what the instructions say; select medium, select image, hit enter. Huzzah! It works!

It Doesn’t Work

But my Thinkpad refuses to load it. Now I’m stumped.

BUT I REFUSE TO BE THE FIRST PERSON TO FAIL AT INSTALLING ARCH AT STEP ONE!

It’s highly unlikely that somethings wrong with the installation media so I root around in the BIOS. Lo and Behold, Secure Boot is enabled, not letting me do scary things to the computer like remove its operating system. I may have broken one USB stick, but it wasn’t for nothing - it was for learning. Each mistake is just the sweet sweet experience that make me look really knowledgeable somewhere down the line (just ask my aunt and her three broken year-200X computers and one very smooth working computer).

I'm down to the wire now; my reputation (I guess), my pride, the $50 I dropped to rescue a computer hang in the balance of me getting this MicroSD card to boot. I repeat the prior motions one last time aaaannnddd:

Deep hacker voice, muffled by a hoodie: I'm in! Okay, step 2!

Getting Reeaaalll familiar with fdisk

After this whole mess, I learned that the installation medium has a utility that installs Arch for you with little fuss. Considering the basic use I’m hoping to get out of the machine, it may have done the job in a fraction of the time I spent. Auto-utilities don’t equal learning, I reckon and I’m a glutton for punishment who now loves messing up hard drives. I never outright did disk partitioning, wiping, etc… in the terminal before. Having nice infographics and little warning signs stopping me from ruining everything is my comfort zone. The wiki says something like “Think long and hard at this step to avoid complications along the way. I don’t know what this means since usually the installation steps on other systems go brrrr and magic it all together. I read a lot of documentation since the wiki doesn’t explicitly tell you how to go about identifying drives, cleaning them, naming them, partitioning them, mounting them, and giving them one of seventy different file types as well as choosing encryption.

I accomplish and LVM structure after 3 hours of research and fiddling around in a (now broken) virtual machine. There were so many terms I didn’t know and had to get defined down into dumb-people terms for folks like me. The Wiki tells me I need three partitions. One for the stuff, one for the bootloader, and one for the Kernal. Now I know what all those different partitions were when I installed Linux in the past.

Just cleaning, separating, and naming the drives isn’t enough. I’ll need to dive deeper because in the end I followed some steps. Even though I know what I did along the way, I still don’t have it stored in my brain like a habit. I read how to mount them, where to mount them, How to name them, and what it’s all going to mean. Miraculously, I got this done, and didn’t skip the part of the wiki telling me to generate an fstab - The setting which tells the machine to mount everything like this every time it boots up, lest it not boot up at all.

I come out of all this work with an appreciation for the stuff that typically gets automated for me. It’s empowering to think that I could partition things for specialized use-cases one day. In the end I have my partitions made, encrypted, and grouped. I can almost start installing Linux on it! I’m not out of the woods yet, and the better half of the morning is over. Proud, I think to myself "Hey! Maybe I can use my newfound partitioning skills to fix that broken USB from before!"

I would end up using my newfound partitioning skills to fix the broken USB, and a broken system...

Not Even The Kernal is Installed

This part was fun and enlightening. I knew Arch was bare-bones but I didn't realize just how barebones it was. I used the iwctl cli utility for the first time to connect to a network. Intuitive and cool, although I think I prefer nmtui since it lets me pick from a list of things right in front of me. Connection goes through no problem. There’s a small list of things the arch wiki recommends I install, so I look them up and see what they are; linux-firmware is one of them. I install that with pacman (oops) first, then look at the wiki again, realized I skimmed a bit, and back peddle to see what it recommends. I use pacstrap to install the Kernal next. I never realized the kernal was something that needed to be installed. It blows my mind a little bit. I search for more information and take the advice to also install the Long Term Support version too.of the kernal too.

Somewhere in my documentation on LVM I remember reading that it was a good idea to mention its existence in the configuration files for the system. I look that up learn about arch-chroot. I try to look at the fstab and some other things... which weren’t there. Wondering if I did something wrong, I get the Chroot function baby-explained to me: ’'m actually logged into my future computer now (neat!). I regenerate the fstab I swore I generated and double check that everything is where it should be so that we will be good to go on boot.

Armed with 10 programs

I felt like I was ready to tackle the world! And by world, I mean my new computer! I add password for root, add a user who will eventually have root access and be the main "user" of the computer, exit the system, umount all my drives, and reboot.

I also set up grub before doing this - an important step. I was amazed to see all the possible boot loaders on offer, but chose grub out of familiarity, plus it worked with my encryption set up (still so much to learn! I'll need to revisit this later). I’ve seen some really goofy bootloaders. Maybe I’ll jump off that cliff in the future.

The BASH Merit Badge

From the moment I got my first computers, I loved covering them in neat stickers. I stopped doing this directly for my desktops and expensive new laptops (because I always sell my "nice" things...). I put a protective cover on my work computer and covered it with some stickers but I’m not very attached to it. I was very attached to my first thinkpad though. I brought it with me when I began my life as an adventurer, and gave it to a friend in 2020 when his laptop from 2005 died. Unlike my old thinkpad; a super tiny portable Thinkpad I got new for $120 back in 2012, the work computer is very plain. The old thinkpad is still getting a lot of use. When it got slow, we installed a lighter distro. When he needed a little more power, we installed more ram. When the keyboard got destroyed by his cat, we replaced it. When the battery stopped working, we messed with power options but eventually replaced. it. He's still using it as his primary computer. I don't get to see him much, as he moved to the other side of the country, but when I do, I look at that computer's stickers: a vinyl sticker made by an artist/friend in college who became a local legend for them. An "I Love Weed and Coffee" sticker of the Starbucks girl holding a bong - given to me by my brother before he died. Some neat Linux stickers I picked up at a FOSS event once, a few I found in my early travels. A sticker that just says SLUT on it; a clothing brand a friend of mine tried to launch at the end of his skating career.

Those stickers each feel like little badges. None of them suit my friend at all, but because they are so wild, he loves them. I think he enjoys the fact that anyone who looks at it will see this intense hodgepodge of stickers, and then him; a very clean-cut academic with a love for Steiner, gnomes, and anything that relates to hippies and happy childhoods. Then they would see that his its running Linux. He embodies that down-to-earth with electronics life I am slowly stretching towards.

I have this Bash sticker I found when clearing out the house to make room for the baby and baby things (our house is super tiny, every inch counts). I don’t know where I got it, and stickers I've collected over the years pop up in journals, photo albums, document binders. It feels like a good omen. I put the bash sticker where the CPU sticker used to be:

bishybashy

"I Dub Thee; BishyBashy" A nicer name than the VM I experiment on: GopherChucks.

Oh Fuck, There’s Literally No WiFi

The Arch Wiki has this to say to people who are smart and don't skim installation instructions (unlike me):

Note: No software or configuration (except for /etc/pacman.d/mirrorlist) gets carried over from the live environment to the installed system.

I should have realized... why did I not realize. I tried to use iwctl to connect to the internet but it isn't there. I try to do a lot of things. They aren't there. I close the screen to take a break, come back, open the screen, it doesn't turn back on. I try to use pacman, of course it doesn't connect.

I made this assumption that, like almost every other OS I've installed, some sort of utilities for connecting to the internet would be on there. Or other QoL things. turns out the only thing I got other than a file system is vim and the network manager. I read around to see how the network manager might help me connect to a network, but I can't even see my network card anywhere.

I have a small panic - it took me forever to get the drives set up and do all that work. I didn't feel like repeating it. I turned off the machine and took a shower. Fearful that I wouldn't get another stretch of weekend to do this Linux work again (note to self, make a backup...), I pondered over a solution. Shower thoughts are real though. I wondered to myself "Can I just use the installation USB to log into the system the way I did before?

Oh, I can still Chroot into it from the Installation USB. Neat!

Turns out I can! I'm writing the steps here in case I forget:

  1. cryptsetup open /dev/nvme0n1p3 SomeName 2.. Activate LVM (Logical Volumes)

Since your root and home partitions are inside an LVM volume group (volgroup0), you need to activate it:

vgscan # Scan for volume groups vgchange -ay # Activate all volume groups

  1. Mount Your System

Now that the logical volumes are accessible, you need to mount them:

mount /dev/volgroup0/lv_root /mnt # Mount root partition mount /dev/nvme0n1p2 /mnt/boot # Mount boot partition mount /dev/volgroup0/lv_home /mnt/home # Mount home partition

  1. Chroot Into Your Installed System

arch-chroot /mnt

At this point, you are inside your installed Arch system as if you had booted into it.

Also some other little bits I learned which I don't want to forget:

It's Still Broken, Until It's Not

I get into the system and install a ton of missing stuff. I put in the Network Manager Applet so I can use nmtui to quickly just choose my network and see if the card is working. I log out, unmount all the drives, and restart the computer, booting into my Arch installation directly.

Tons of little issues. Sound isn't working, screen still not working correctly. Worse of all, the wifi card is being detected. It's being named. It's being assigned an iwlwifi driver. Everything should be working, but when I do anything to get it to work, it wont. I search around but all support discussions for this network card fizzled out in 2019.

I try forcing the card to turn on. I try forcing the driver on. I try just naming the non-working card in iwctl. It's annoying. In the heat of the moment, I realize I never checked rfkill or ran a grep on dmesg to see if iwlwifi was having issues.

I run rfkill list but nothing is being blocked.

I then ran dmesg | grep iwlwifi > /mnt/usb/iwlwifi_errors.txt

The text shows the errors: [ 12.660229] iwlwifi 0000:01:00.0: enabling device (0000 -> 0002) [ 12.665695] iwlwifi 0000:01:00.0: Detected crf-id 0x2816, cnv-id 0x1000200 wfpm id 0x80000000 [ 12.665757] iwlwifi 0000:01:00.0: PCI dev 2526/0014, rev=0x321, rfid=0x105110 [ 12.665763] iwlwifi 0000:01:00.0: Detected Intel® Wireless-AC 9260 160MHz [ 12.665941] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-46.ucode failed with error -2 [ 12.665983] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-45.ucode failed with error -2 [ 12.666021] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-44.ucode failed with error -2 [ 12.666059] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-43.ucode failed with error -2 [ 12.666097] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-42.ucode failed with error -2 [ 12.666136] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-41.ucode failed with error -2 [ 12.666173] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-40.ucode failed with error -2 [ 12.666211] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-39.ucode failed with error -2 [ 12.666250] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-38.ucode failed with error -2 [ 12.666288] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-37.ucode failed with error -2 [ 12.666326] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-36.ucode failed with error -2 [ 12.666364] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-35.ucode failed with error -2 [ 12.666403] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-34.ucode failed with error -2 [ 12.666441] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-33.ucode failed with error -2 [ 12.666481] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-32.ucode failed with error -2 [ 12.666519] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-31.ucode failed with error -2 [ 12.666558] iwlwifi 0000:01:00.0: Direct firmware load for iwlwifi-9260-th-b0-jf-b0-30.ucode failed with error -2 [ 12.666562] iwlwifi 0000:01:00.0: no suitable firmware found! [ 12.666565] iwlwifi 0000:01:00.0: minimum version required: iwlwifi-9260-th-b0-jf-b0-30 [ 12.666568] iwlwifi 0000:01:00.0: maximum version supported: iwlwifi-9260-th-b0-jf-b0-46 [ 12.666571] iwlwifi 0000:01:00.0: check git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

I toss the file onto a USB stick so I can look it over on my other computer that works to search for what this might mean.

Wait, That Means Linux-firmware Wasn't Installed?

I looked up what might have been causing the error. This output is typical if linux-firmware isn't installed. Many people I tried talking to online told me after installing linux-firmware, there were no issues. But I could have SWORN I installed it. When looking up the Arch Wiki on the x395 it mentioned compatibility with latest firmware. I thought I remembered people saying something about firmware mismatches, so I quickly learn how to update firmware from a bootable drive.

Speaking of bootable drives Learning all that partitioning stuff came in handy! I fixed my broken USB from step one and gave it new life as a bios-disk.

I felt like USB-Jesus resurrected from Computer-heaven to deliver my arch system into this mortal world.

But updating the bios didn't work. Out of ideas, I chroot back into my system from the installation USB, and install linux-firmware, log out, reboot, load up my installation, aaannnddd

It works! :) The network stuff works.

The lid even works correctly now too!

I'm gonna find me another merit badge after all this...

Time to Re-Read the Wiki Because Even "man" Is a Program

My main take away from all this is that there is a lot more that goes into making the computer run than I thought. I enjoy being exposed to exactly what it is I don't know though. At some point this will likely have me coding in C in the distant future, but before that I'll deep dive into partitions and file systems. Because I put so much effort into it, and the pay-off was immediate, I'm interested in file systems and partitioning drives. I wonder if there is a book or manual or something out there that can get me down the first couple rungs of that rabbit hole. At another point I'll try to see what a kernel is exactly.

More Learning Experiences

There are other issues popping up now, but nothing dire. Like, the backlight of the keyboard not turning on without physically commanding it to, the Fn key being mapped but no Fn shortcuts working even though they should. More man pages, more documentation to swallow.

A friend of mine who learned of my Arch journey this week mailed me some stickers that I cannot wait to receive. all of them are GNU/Linux stickers. One of them is an Arch sticker, so I'll peel off the Windows sticker clinging to the bottom of my machine and replace it.

The Next Merit Badge

Considering step one was to get the machine up and running properly, the BASH and (upcoming) Arch stickers are well earned. The next merit badge is going to be a little different.

Although this build is primarily going to function as a server, Its other function is for learning. In university, it was a really big thing to rice Linux environments, making them snappy, fun to use, and aesthetically pleasing. The tools available in 2025 are better than yesteryears and I'm excited to see what I accomplish. Some keywords that are starting to pop up are window manager, xserver, display manager, selecting a terminal, compositors, and taskbars (or menu bars).

Configuring Vim and other tools without copying other people’s configurations is a goal too – so is writing my own plugins after I get back into the groove with something like LUA or Python.

Until then, the project is going well and I'm having a great time with it. More updates to come as they are worked on. Until then;


seal With loving kindness, Daruma
Did you enjoy this?Send me an email


© Daruma - all rights reserved

#fiction #tech