Two years ago, I was tempted to replace my Raspberry Pi 3 Linux server with a Pi 4. I would have taken this occasion to upgrade it from its Raspbian OS that was based on Debian 9 to the new Raspberry Pi OS, based on Debian 10.
Looking at the various kits for the Pi 4, I changed my mind. Unlike the Pi 3, a fan to cool it down is highly recommended, and one of my requirements is to have a fan-less server. Sure, you can run it without a fan, but that requires running it at a significantly slower clock speed, especially if you put it inside a case. To compare, most the of Pi 3 case kits included a heatsink, while for the Pi 4 most of them included a fan.
Otherwise, the Pi 4 would have been a significant upgrade, especially if you use it as a server. As usual, the CPU is faster, and it supports a lot more RAM (from 0.5 - 1 GB to 2 - 8 GB). More importantly, it supports USB 3 for external devices. To compare, the Pi 3 was limited to USB 2, and the Ethernet port’s bandwidth was shared with the USB 2 ports, so all file transfers from an external USB drive would be at best half of the maximum speed of USB 2.
The Raspberry Pi 400 is internally similar to the Pi 4, but since it comes in the form of a keyboard, it has enough surface to not require any kind of fan. That was perfect for me, so I bought it as soon as I could.
I backed up the micro SD card of my Pi 3 to a SquashFS disk image. I found this more practical than using TAR, since it can be mounted (even as user-space with squashfuse) and allows me to copy individual files instantly from it.
As for setting up the Pi 400, I changed my mind about using Raspberry Pi OS, and installed Ubuntu 20.04 on it. Since I want to use it primarily as a server and don’t really care about having a GUI, I used Ubuntu Server. This is officially supported by Canonical, and they have a nice tutorial about how to set it up. If I want to set up a desktop environment in it later, Ubuntu Server can easily be upgraded to Lubuntu.
Another big advantage of Ubuntu Server over the Pi OS is that it runs the Pi in ARMv8 64-bit mode rather than the older v7 in 32-bit mode. This means that, combined with the Ubuntu ecosystem, there is a lot more software available for it than Pi OS. In addition, this now means that all my “computers” are finally 64-bit processors.
So, after using a little while, I’m still blown away by its performance compared to the Pi 3. Maybe it’s due in part from using a new micro SD card that is almost twice as fast as your typical U1 cards. Yet, when I was testing it with Raspberry Pi OS and lanched Chromium, I could easily tell that its performance could be compared to some lower-end Chromebooks and could be used as a typical modern computer. Beyond using it as a server like I do, the Pi 400 feels like a modern Linux-based equivalent to the Commodore 64, and a great machine to learn software or computer engineering.
Published on April 13, 2021 at 15:54 EDT
Older post: RAM Compression on Linux
Newer post: From Remote Desktop to Remote Gaming