passthejoe — the blog

The 2021 Linux laptop rebuild

CentOS Stream 8 — a controversial yet boring Linux — would be my new operating system

After holding up due to indecision, I went ahead with the Linux laptop rebuild.

I decided to give CentOS Stream 8 a try. It’s a “hot” Linux distro. But for all the wrong reasons. I can say now that it’s technically excellent, with the extremely notable exception of an error in the Boot ISO (yes, I filed a bug) that makes it impossible to proceed before figuring out and manually entering a URL for a working mirror and then a regression in Mutter that killed Files/Nautilus for a day or so until I figured out a workaround. (Developers sent a new package soon thereafter.)

Once the installation is done and the Flathub, EPEL and RPM Fusion repos are added, it’s very much a “like butter” experience.

It remains buttery until you need an application that isn’t in the main CentOS repos, isn’t packaged for CentOS in EPEL and isn’t a Flatpak. That’s where you either do without, package it yourself, or turn to Fedora/Red Hat’s Copr repos, which is where I found my main photo-editing app gThumb and the program that generates this blog, hugo.

Backup, tools and parts

Before I say more about the operating system and other software, let’s talk hardware.

I didn’t touch the hardware until I made an rsync backup of the /home files on my Debian Bullseye SSD, an HP-branded 250 GB NVMe M.2, and put them on a USB-connected portable backup drive.

I had my hand tools ready:

And my parts:

2019: New drive, new OS

I’ve had this laptop’s case open before, in 2019, to see if a $40 M.2 SSD would work with my HP Envy 15 as133cl laptop. It did, and I installed Debian Buster — then (and now) the stable release.

Going from Windows 10 on a spinning hard drive to Debian on an M.2 SSD brought a tremendous performance boost.

With Windows on a magnetic drive, it took multiple minutes to boot and then a half-hour to an hour for the Windows desktop to “stabilize” and be usable. One time, a series of Windows updates went horribly wrong, and I couldn’t use the laptop for at least three days due to something that was overwhelming the disk. That’s what drove me back to Linux — and a Linux with very minimal updates. Even Fedora, which I ran for years on an older HP laptop seemed like too much in terms of continual updates and twice-yearly upgrades.

Debian on the SSD meant booting to a working GNOME desktop in under a minute. The desktop was ready as soon as I logged in. Updates were transparent and quick. Everything was faster.

I stayed with the 250 GB SSD and Debian Buster for about a year and a half. I ran out of space on the drive after the first year and kept many GB of data on a couple of other computers and a 64 GB USB flash drive.

Maybe a month or two ago, I tried to do an in-place upgrade from Debian Buster (10) to Bullseye (11). Bullseye is still the Testing distribution, but a routine Debian upgrade from one version to the next should have worked. It didn’t. I had some issue with GCC that prevented the upgrade from going through, and I was left with an unbootable system.

I had a backup of my user files, and I did a fresh install of Debian Bullseye. It’s a great distribution. Even more things worked without issue than in Buster. In addition to automagic printing, I also had automagic scanning. That meant I didn’t need HPLIP to use my HP all-in-one printer/scanner. I didn’t have to configure anything to print and scan.

But I still had the problem of the SSD being too small.

I planned my upgrade.

New SSD, new Linux, new battery, new problem

I chose the Samsung 970 EVO M.2 NVMe SSD. It’s pretty much the industry standard. Users have fewer bad things to say about it than the less-expensive alternatives. The SSD is the “strongest” part of my computer, and I wanted something that would be fast, reliable and robust. It’s not worth saving $20 on such a critical part. This is one of the ways users who upgrade their own hardware — while that is still possible — end up with better systems. Vendors often cheap out on SSDs while charging you more than you would pay for a better drive you could buy on your own.

And now back to the laptop …

I did another rsync backup. Bare-metal backups like those done with Clonezilla make a restore of the entire disk possible, but I was replacing my SSD with a bigger one and changing the operating system. I only needed my user files. Rsync is what I know, and it’s perfect for this.

I’ve had this laptop’s case open before. The long, thin rubber strips on the bottom, meant to keep the laptop from “wandering” across the table, look like they cost $5 but really sell for $60 from HP were long gone. Years earlier, one fell off. Since the laptop “moves” when you open it, it eventually loosened. The sticky stuff failed, and I replaced the rubber strip with those little silicon “dots” you use to make cabinet doors close without banging. Those are a couple bucks per package. Not $60.

The last time I opened the laptop, I had to remove the other rubber strip to get to a couple of screws. Why screws are under a rubber strip that otherwise steadies the laptop, I don’t know. It’s stupid.

I kept both strips but wasn’t eager to put either back. I found more silicon dots for the other side of the laptop, and that’s what keeps it from scratching tables and traveling around the table when I use it.

Using the Phillips and Torx screwdrivers, I removed all the screws from the bottom. Then I used the guitar pick-turned-“spudger” (that is a real word, in that people use it) to pry the bottom of the laptop case from the motherboard.

Then I could see everything.

Replacing an M.2 SSD is easy. You take out the screw, lift out the stick, put a new one in and put the screw back. It takes maybe 2 minutes.

Replacing the battery took longer. I had more Phillips screws to remove. Then I had to pry off the connecting cable and lift out the battery.

I reversed the procedure to put the “new” battery in. I say “new” because after I had the whole thing together, I noticed that the laptop was holding a charge no better than before.

I ran the HP battery diagnostics, and not only was my “new” battery 816 days old, it also had a dead cell. Just like the “old” battery I replaced.

After I had CentOS Stream 8 running, I had to open up the laptop again, swap the batteries and send the “new” one back to Amazon.

The no-name replacement battery cost about $50 and came from an anonymous Chinese company. I should have known better.

Luckily Amazon’s return policies and procedures are reasonable and easy. I packed up the battery, got the OK from Amazon and took it to my local Amazon Locker. A day or so later, I had my refund.

I could buy a real HP battery, but that’s more $100, less $50, so I’ll hold off for now.

Since I’d been inside this laptop to add an SSD before, I didn’t run into any surprises. While I was inside the case, I blew out the dust around the CPU fan with a can of air. I pondered getting an electric air blower and found a bunch of good ones on Amazon. I might get one in the future. It’s got to be better than that canned air that makes the can super cold when you use it.

Aside from the bad replacement battery, everything went fine. I considered removing the spinning hard drive, which still has Windows 10 on it, but I decided to leave it in. Maybe in the future I’ll pull it. I couldn’t exactly see how to get the drive out, but there are a couple of screws, and maybe that’s how you do it. In any case, I do have the service manual for my laptop (thanks, HP!), and I’m sure the instructions are in there.

Good thing I didn’t remove the Windows drive

It turns out I might need Windows for a class next semester. So I’m leaving this laptop as a dual boot with one OS per drive.

Installing a new Linux OS

As I say above, I decided to go with CentOS Stream 8 as my new Linux OS. I didn’t want to download the HUGE 10 GB DVD image, mostly because I had a free 8 GB USB flash drive I wanted to use for the ISO, so I got the 700-or-so MB Boot ISO image. While installing, I ran into a problem with the Anaconda installer not offering any mirrors.

I decided to start a bug — much like I have done in the past with Fedora — to see if I could “help” get the ISO fixed.

I started a CentOS account and soon learned that Stream bugs need to be filed in Red Hat’s Bugzilla. I already had a Fedora contributor account and was able to log into Bugzilla and file my bug. Within a few weeks, the bug was fixed and the CentOS Stream 8 Boot ISO now offers the “closest mirror” by default.

At the time I did my installation, the fix was pretty easily found on the Internet. It consisted of finding the right CentOS mirror URL and entering it in the Anaconda installer. Now the mirror is picked up automatically.

To make a long story short, I successfully installed CentOS Stream 8 and eventually installed all of the applications I need. I have more Flatpaks than I thought I’d use, and they all run pretty well. There are slight problems with access to some system bits for Chromium and Dropbox, but everything works.

I needed to use Copr repositories for two apps — Hugo and gThumb. The static blog generator Hugo — which powers this site — is easy enough to download from the project web site and run on any system since it’s a Go-generated binary.

But gThumb is absolutely a problem. It is CRITICAL to my editing workflow and isn’t in the CentOS/RHEL AppStream or EPEL repositories. It also isn’t in the Flathub repo of Flatpaks. Somewhere I saw an explanation about why gThumb can’t be a Flatpak, but I don’t remember where I saw that (probably in a bug report) or what it said. Suffice it to say that gThumb is hard to come by.

As it was, I had to install gThumb from the proper Copr repo and then disable that repo because it was causing conflicts with other packages.

(Update on Nov. 6, 2021: Since this entry was written, Carl George was nice enough to package gThumb in EPEL — the Extra Packages for Enterprise Linux repo that is an offshoot of the Fedora Project. And finally, gThumb is now also available as a Flatpak.

I also had a problem with the Hugo Copr repo, but I got some help with the configuration from Fedora/RHEL/CentOS developers.

That’s the biggest thing about using Stream 8. Contributions are encouraged, and the distro’s users and developers are VERY HAPPY to help.

Summing it up: I did get my laptop opened up and back together, and now I have a full TB of SSD storage. I’m not happy that the battery swap failed. I have looked for another battery, but all the suppliers seem extremely dodgy.

(Update on Nov. 6, 2021: I bought a new battery from another third-party supplier, this time directly instead of through eBay. I haven’t pulled the laptop apart just yet, but I’m hopeful.)

Next: CentOS Stream 8: A long-term, real-life review

Discuss this post on Twitter.

#linux #centos #hp #laptops