I don’t know how much of it is Debian 10 and how much is swapping a 5400-RPM hard drive with an M.2 NVMe SSD, but my 2-year-old laptop is FLYING now that I’ve ditched Windows 10 and the 1 GB magnetic drive that came with it.

And this is with GNOME 3. The stock or lightly/heavily-favored desktop environment in Debian, Fedora and Ubuntu looks great, runs with no hesitation (in constrast to Windows 10) and doesn’t have me thinking that I need anything else for speed-related reasons.

Could it be the M.2 SSD?

I’d been missing a “full” Linux system for the past couple of years while I stuck with Windows 10, albeit with heavy WSL/Ubuntu use.

And hearing about arduous, days-long efforts to install Windows 10 on an M.2 SSD didn’t excite me about trying it.

Instead, after I got set of Torx screwdrivers (I needed a T4) in the mail from Amazon, it took me about 10 minutes to crack open the laptop and install the M.2 drive and another 10 minutes to boot into Debian 10 on USB and install to the SSD. Like everything with the M.2 NVMe SSD, I can’t believe how fast things are now and how disk-bound everything is on SATA-disk systems.

It probably didn’t hurt that I’ve done many dozens of Debian installs over the years, and I almost always go for the same setup: using the full disk with encrypted LVM and a separate /home partition. I let the installer auto-partition the drive.

It was that easy.

The laptop is super quiet. You hear the CPU fan. And that’s it. Suspend/resume works perfectly and is crazy fast. My HP Envy as133cl’s Intel Core i7 7th Generation chip is running cool.

Everything is better and faster. I’ll mention again that it looks great. I’m using the Adwaita Dark theme (which requires this tweak so Firefox uses Adwaita Light instead and you don’t end up with a lot of black on black and white on white).

All of my hardware on this 2017 laptop works out of the box. No tweaking, no Googling needed.

Except for one thing:

It took me a week or so to figure it out, but I needed get a newer Linux kernel because my i2c HID touchpad was throwing errors — and systemd-journald was logging them — about 10 times a second (aka 600 times a minute, 36,000 times an hour), causing systemd-journald to hog about 25% of one of my four CPU cores. It didn’t kill performance, but a little Googling told me the issue was taken care of in newer kernels.

How did I know this was a problem? I saw systemd-journald running way too often by using htop, and then I checked the logs:

$ sudo journalctl

This is how I got the most recent entries:

$ sudo journalctl -e

The fact that performance was fine is extremely surprising. Again, it’s probably due to the SSD, but I’ll take it. Still, who wants a dodgy touchpad to spam your logs, making them useless?

In Fedora, I would already have a kernel new enough to include the fix. Fedora tracks the upstream Linux kernel very closely, and you probably get a new kernel every week. It’s the best way for your new hardware to get the most compatibility in the least amount of time.

So how do you get a kernel newer than Debian Stable’s 4.19? I could have turned to either Debian Backports or Liquorix. I chose Liquorix. The install was easy. I added the Liquorix repository to my /etc/apt/sources.list, told my system to recognize Liquorix’s GPG key and then used apt to install a 5.2 kernel. Before I did any of this, I had to install curl, which isn’t part of the Debian 10 default.

This wasn’t my first time using Liquorix. And I forgot that I also used a kernel and other packages from Debian Backports. All of this happened in the early days of Debian Squeeze. I went back to my old blog posts, and way back in 2011, I had some audio issues with my AMD-running Lenovo G555, and I used kernels from both Liquorix and Debian Backports to fix this and other problems I was having with Squeeze.

Note that Liquorix kernels are not signed, so they won’t boot if you have Secure Boot enabled on your computer. Regular Debian kernels are signed, so Secure Boot will work. I believe that both signed and unsigned kernels are available in Debian Backports. I didn’t have Secure Boot enabled, so the new kernel ran with no issue.

To sum things up, I’m now running Debian 10 Buster (aka Stable) with GNOME 3 and a Liquorix version 5.2 Linux kernel on a 2017 HP Envy 15 as133cl laptop with an Intel Core i7 7th Gen CPU, 16 GB of RAM and an HP-branded 250 GB M.2 NVMe SSD. I got the drive on sale — for about $30 — many, many months ago after I discovered that my hard-drive running laptop had a spot on its motherboard for the M.2 drive.

As I say above, there’s no reason other than preference for me to run another desktop environment, as GNOME is crazy fast in Debian with this hardware.

Everything is faster.

I didn’t have too many complaints about Windows 10 on this laptop and its 1 GB magnetic hard drive. The Windows file manager is NEVER as quick to respond as any Linux file manager. But one thing I like about the Windows file manager is that it has a few kitchen sinks’ worth of features. GNOME has a minimalist philosophy, and you pretty much have to add features through Extensions. But GNOME does the basics very well, has no performance issues on my “modern” hardware and has been extremely stable.

Did I mention that with Debian 10 and GNOME 3, this laptop is fast AF?

I’m pretty sure the game-changer is the M.2 SSD and not Debian Stable, though Debian does have a reputation for running “faster” than Fedora and Ubuntu. But it mostly has to bhe the SSD. The M.2 doesn’t use the slower SATA interface of traditional disks that even slows down SSDs that use the same plugs. Instead, the M.2 has a quicker pipeline to the CPU, and it seems that modern CPUs and RAM can more than handle the faster disks. Everything speeds up.

But Debian definitely adds to the experience. I could have gone with Fedora, which I’ve been using steadily on my older HP laptop. Fedora is a very different animal than Ubuntu or Debian. Fedora releases every six months, just like Ubuntu (and NOT like Debian, where releases are generally spaced two years apart). But Fedora is very dynamic, and there are updates all the time. I really don’t need the newest of everything, especially if my hardware is working well. And with the combination of Debian Buster and a newer kernel, I’m pretty much knocked over by how fast everything is going and how cool — temperature-wise — the laptop is running overall.

And I’m ready — for now anyway — to enjoy the slow pace of Debian Stable updates, as opposed to the continual flood of new Fedora packages. I haven’t been so crazy about the frequent Windows 10 updates, and I really don’t like having to manage application updates on a program-by-program basis. And no, I haven’t yet tried Chocolatey, which seems like a great solution for Windows’ no-package-management problem.

New hardware is hard on Linux. So many things can be dodgy, and when I got my HP Envy 15 laptop a couple of years ago, I wanted to give the newish Windows 10 a try, especially with the availability of the Windows Subsystem for Linux to provide a full console-level Ubuntu system to run the shell scripts and Linux utilities I had been using for years in Fedora.

Windows 10 has been better than expected, better than Windows 7 and 8. In the beginning, I didn’t know when — or even if — I would get back to a Linux or BSD system.

It’s not like I haven’t had problems in Windows. Those updates can take forever and be of poor quality. At one point, an update failed in some kind of spectacular fashion, and the disk was working at 100% for about three whole days, during which I couldn’t really use the laptop. It took at least a couple of those days to coax a backup of my user files onto a 64 GB USB flash drive. Eventually the laptop came back to life. I couldn’t figure out exactly what caused the problem.

And for probably a year at this point, the Conexant sound driver would spawn a process by the name of Flow.exe that would combine with Firefox to chew through about 30% to 60% of total CPU, but only when FF was running. Other applications were not affected. But I couldn’t run Firefox without the laptop sounding like it was going to lift off until I figured out the hack to stop Flow.exe. That “fix” involved renaming Flow.exe as _Flow.exe so Conexant wouldn’t be able to launch the former and would only nag me about it during every reboot. FYI, Conexant is now owned by Synaptics, so the degree to which their incompetence hits all OSes seems to be very high indeed.

I didn’t want to dual-boot like I did with Windows 8 and Fedora 18-30 on the HP Pavilion g6-2210us laptop I bought in 2012 and still have today.

I got that HP Pavilion after the untimely death of the Lenovo G555 laptop I bought in 2010. The Lenovo began its life with Windows 7 before I replaced the whole drive to run Fedora 13 (briefly), then 14 and (extremely briefly) 15. My use of Fedora ended during the 14-to-15 upgrade when the system’s video capability crashed and spectacularly burned due to my use of the fglrx/Catalyst proprietary driver and the delicate nature of upgrading Fedora systems that use those drivers.

Rathern that re-install Fedora, I switched over to Debian 6 Squeeze on that Lenovo without incident — until one day in 2012 I put it to sleep and it never woke up. Enter the HP Pavilion g6.

I used that dual-booting HP Pavilion for several years. I could never upgrade the Windows side from 8 to 8.1 (and then 10) because the Windows Store-based upgrade would kill the ability to boot either Windows or Linux until I used some kind of Windows rescue mode to fix what the Windows Store broke.

In 2017, I was gifted with the HP Envy 15.

Back then I had no idea the HP Envy 15 could accommodate two hard drives, the 1 TB magnetic drive it shipped with and an M.2 NVMe SSD. I didn’t know anything about M.2 drives. I had never heard of them.

Once I figured out that these way-faster-than-SATA drives were available — and my laptop supported them, I started looking them up. It seemed like the Samsung EVO M.2 drives were the ones to get. They ran faster than others. They didn’t have overheating issues. But they hovered around $100 for a 512 GB size and nearly $200 for 1 TB. I didn’t know for sure that an M.2 drive would even work in my laptop, despite having a slot for it.

I came across a sale on a 250 GB HP-branded M.2 NVMe SSD a few months ago, and I snapped one up for about $30. Then it sat in a drawer until about a week ago. Moving OSes, even reinstalling one Linux over another, is a major endeavor, especially on a laptop I use for work.

I had already been testing the waters on my older HP Pavilion g6, where I can easily unscrew a door on the bottom and swap various SATA drives in and out with little trouble. I really wanted to run OpenBSD, but I had so many problems with applications either crashing (just about everything from KDE) or not running at all (Chromium, which is kind of essential) that I figured I had to fall back to Linux.

I pivoted to testing live systems on the 2017 HP Envy 15. Everything seemed to run just fine. Ubuntu, Fedora, Debian. I pretty much had my pick.

Despite the relentless bad press and general “real geeks use insert DE or window manager that is definitely not GNOME” vibe, I like GNOME 3. On my 2012 Fedora 30-running HP Pavilion laptop, you can feel a little heaviness, so I use Xfce about half the time.

I love Xfce and have spent a lot of time using it over the years, but GNOME’s modern design, the fact that it is under active development, is the main “choice” of the Debian, Ubuntu and Debian projects and is the only DE that works with the Wayland display system are all cementing it as the environment I want to be in right now.

Installing the M.2 drive was an easy hardware “project.” The Debian install was quick and easy. Now I’m tweaking things here and there.

And I can honestly say I’m enjoying the hell out of this super-fast Debian 10 system.

A 150 GB Dropbox sync that took many days on a 2012-era laptop with a magnetic drive was done in a couple of hours with the SSD.

Things like using apt to find and install software, searching for something in GNOME’s Files, starting either Firefox or Chromium, and even booting or shutting down the laptop are all extremely fast.

While I haven’t run a SATA SSD, I’m very sold on the M.2 NVMe SSDs. If you’re buying a new laptop or desktop, make sure you get one. Don’t include any SATA drives, spinning or SSD. And if your current laptop or desktop has a slot for an M.2, get one immediately.

Update on 9/7/19: Since this is an encrypted install, /boot is outside of the encrypted portion of the drive, and the Debian installer made it only 237 MB in size. I had the original Debian kernel and a Liquorix kernel installed, and during today’s Debian 10.1 update, /boot filled up.

I tried the stock Debian kernel again, and my i2c HID touchpad did not throw 10 errors per second and fill up the logs. Everything worked perfectly.

So I removed the Liquorix kernel, finished the rest of the Debian 10.1 upgrade, and now I am running standard Debian Stable.

Would I have made /boot bigger? I’ve never had this problem before, and I have run many encrypted Debian systems. The next time I install, I am definitely making /boot bigger — probably 1 GB — just to be safe.

Will I stick with Debian Stable? Yes, it is working very well for me.

Flatpaks: Debian supports the Flatpak application installation system, and running Debian Stable with Flatpaks (from Flathub) seems like a very viable way to have a stable base with newer applications.

Update on 9/8/19: The i2c HID touchpad errors returned while I was using the stock Debian kernel. This time I used the kernel from Debian Backports. Once I enabled Backports, this is the kernel I installed.

That brought everything back to normal.

While I was booted into the Backports kernel, I removed the stock Debian kernel in an effort to keep /boot from filling up.

Here is my stack in Debian

Desktop environment

  • GNOME 3

Browsers

  • Firefox
  • Chromium

Text editors

  • Gedit
  • Gvim

Office suite

  • LibreOffice

FTP

  • FileZilla

Image editors

  • gThumb
  • GIMP
  • IrfanView (.exe under Wine)

File synchronization

  • Dropbox
  • Syncthing

Multimedia

  • Videos (Totem)
  • Rhythmbox

Other things I’ve installed

  • Ruby (with Nokogiri and Twitter Gems)
  • htop
  • curl
  • git
  • Wine

Things I haven’t installed yet (but might)

  • OpenJDK
  • OpenJFX (JavaFX)
  • Clojure and Leiningen
  • Racket
  • Golang
  • Geany
  • Inkscape
  • OpenShot
  • Audacity

Discuss this post at Hacker News and Reddit.