Can You Replace Your Desktop PC With a Raspberry Pi 4?
Here’s why I won’t be tossing out my desktop PC anytime soon
Since the introduction of the Raspberry Pi 4, a lot more people have been trying to use this microcomputer as their desktop PC. More recently, the Raspberry Pi 400 Personal Computer has been released, the name of which directly indicates its “main” purpose. I have long been interested in the possibility of using a portable and silent PC for simple tasks like creating this text, where the full-size desktop is redundant and the tablet is inconvenient. Finally, I bought a top-of-the-line Raspberry Pi 4 with 8GB of memory. It’s time to see how it works.
I wrote and published this article on the Raspberry Pi, and it works well. I did not have any troubles or glitches.
Why the Raspberry Pi?
Of course, motivations for using the Raspberry Pi can vary. You may need an inexpensive Linux desktop for learning. You may not have the money for a full-fledged PC. I have long wanted a 100% silent and low-power computer to use as a media center and “typewriter.” Using the power-consuming 500W Core I7 desktop PC just to type this text seems a bit redundant for me, at least in terms of reducing the energy footprint. (I don’t care about the electricity bill; I care about the environment.) I tried using Samsung DeX as a desktop, and the experience was generally very positive — for typing and watching videos on the big screen, my Samsung Galaxy S10 is powerful enough. But the Android software that can work in desktop mode is limited, and not every website displays correctly using Android in desktop mode with a mouse. And DeX is still Android, with many limitations of the smartphone-based operating system. Linux is another matter — complete freedom in terms of SSH access, installing any libraries, components, a fully functional terminal, USB, GPIO, and hardware support. Sounds promising. Let’s see how it works.
Before we get started, an important note: To fully use the Raspberry Pi as a desktop, good cooling is required. I wanted to have a 100% fanless PC, so I bought this case:
The case works well in terms of heat dissipation. Even with a high load, there was no overheating or system freezing. The case temperature did not exceed 50 degrees Celsius, even during stress tests.
A version of Ubuntu for the Raspberry Pi was recently released, and we will also test that. But first, let’s start with the standard Raspbian, which has been familiar to DIY enthusiasts for many years.
Part I: Raspbian
Before we start, let me remind you of the Raspberry Pi 4 specs. The Raspberry Pi 400 has similar capabilities, so almost everything described below is also true for it.
- CPU Quad Core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
- 2, 4, or 8GB LPDDR4–3200 SDRAM memory
- Wi-Fi 2.4/5.0 GHz, Bluetooth 5.0, BLE
- Gigabit Ethernet port
- 2 USB 3.0 ports; 2 USB 2.0 ports
- Support for two monitors, micro-HDMI connectors (up to 4kp60 resolution)
- Support of H.265 (4kp60 decode), H264 (1080p60 decode, 1080p30 encode)
According to the description, everything looks fine. But the very first launch showed that the system works slowly. The solution is simple: The processor frequency needs to be increased. By default, the OS works in a low-power mode — the Raspberry Pi comes with no heatsink at all, and at high computing power mode, the CPU will simply overheat. Solution: Edit the config.txt file with the sudo nano/boot/config.txt command and uncomment two lines:
After that, everything became noticeably much better. The web benchmark showed an increase of 36 to 48 “units.”
The disadvantage that causes inconvenience is the lack of a power button and sleep mode for the Raspberry Pi. If the system is turned off, you can turn it back on only by reconnecting the power plug. There is no way to activate the sleep mode, and there is no power management system on the board at all, although it is possible to buy a USB cable with a switch — simple enough, but it works.
Electricity consumption, by the way, is quite moderate. When playing videos through a browser, a little less than five watts are consumed.
Compilation using four cores with the make -j4 command gives about the same power consumption. About three watts are consumed when typing this text in the browser.
Things turned out to be not so simple with the web browser. First, the Chromium browser comes preinstalled with Raspbian, and Chromium is not the same as Chrome. I don’t know if they really have the same core, but some news sites wouldn’t play the video, and Amazon Prime refused to work at all, giving a message about an incompatible browser. The main page opens normally.
But when trying to play video, an error message is displayed:
Attempts to replace the User-Agent did not lead to anything; the error was issued elsewhere. I found that it’s caused by the lack of DRM support, and I tried several manuals on how to install the Widevine Content Decryption Module DRM library by extracting it from the Chrome OS image. Several of the published scripts did not work; finally, I found a working tutorial on this site. This support for the DRM is unofficial, and if the version of the library or browser is changed, you will probably need to run the script manually again. But at least it works.
YouTube works fine, but I heard annoying clicks when playing audio. This should not be the case, because the manufacturers of the Raspberry Pi 4 promised support up to 4K. As it turns out, this is a known issue in Linux when playing audio over HDMI and can be solved by editing the /etc/pulse/default.pa file, after which the sound became normal.
Other sites such as Gmail and Google Docs work, although not fast.
The web.basemark.com benchmark worked for a long time and as a result gave a score of 64.8.
For comparison, the latest Microsoft Surface X produces 457 in the same test — the difference is almost the same as the price difference between the devices.
The Galaxy S10 smartphone showed twice the download speed (64.3 MBps) and the same (19.6 MBps) upload speed using the same Wi-Fi. Perhaps the speed still drops due to the metal case of the Raspberry Pi, but 33 MB/s is sufficient for real use.
With programming, everything is quite good. Of course, the Raspberry Pi can’t replace most professional desktops, but in general, it can run almost all programming languages and frameworks, from Python to Fortran.
Simple but handy Mu editor for Python:
For kids, Scratch is available:
In general, the Raspberry Pi is pretty suitable for studying software development basics or just for learning and experimenting with Linux. Even the absence of a disk is rather a plus here — even if the system is completely destroyed, the SD card can just be pulled out and the new image can be saved again in five minutes.
As for Linux itself, terminal commands, bash, and other stuff, everything works in a standard way as expected, with no difficulties. Here’s an example of displaying the system load in htop with a running browser and several programs in the background:
The load of the CPU cores is not high, but video playback in the browser increases it to about 70%. If we make a kind of stress test by opening several browser tabs with large documents (YouTube, graphics editor, file explorer), then the CPU load will go to the maximum (which is not surprising), but there is enough free RAM with even a large margin.
The CPU info:
In conclusion, Raspbian works well, and except for the lack of DRM out of the box, I did not find any serious issues. Let’s switch to Ubuntu.
Part 2: Ubuntu 20.04.1
Ubuntu 20.10 Groovy Gorilla has official support for the Raspberry Pi 4, and as announced, the Raspberry Pi is now a “first-class citizen” for this version. Let’s try to figure out what came of this and how “first class” corresponds to reality.
Ubuntu 20.04.1 LTS install
The installation process is not much different from the standard Raspbian installation. We need to download the system image, write it to a micro SD card, and start the device. The images themselves can be downloaded from ubuntu.com/download/raspberry-pi:
I first decided to go through all the steps from scratch, choose the console version Ubuntu Server 64-bit 20.04.1 LTS (because this version has a “RECOMMENDED” status), and install the missing components myself. After download and boot, we get into the standard Ubuntu console.
First, we need to configure Wi-Fi, for which we edit the 50-cloud-init.yaml file using the sudo nano/etc/netplan/50-cloud-init.yaml command. Add access point parameters to it:
After rebooting, we can check for an internet connection with ping 188.8.131.52 command, and if everything works, we can install Ubuntu desktop. Run the commands sudo apt-get update, sudo apt-get upgrade, and finally sudo apt-get install ubuntu-desktop. The process takes about 30 minutes, after which we can reboot the system and get a full U.
It’s probably easier not to do all this and instead immediately download the final version with the UI support. But that’s not as interesting.
The very first impression is that the system is really buggy. For version 20.04.1, you can simply open window by window and record bugs:
- Wi-Fi: Wi-Fi itself works, but it is not shown in the system settings. “Wi-Fi Unavailable” is displayed, and the list of networks is empty. (At the same time, the command ifconfig shows a normally working wlan0 adapter in the running status and an IP address.)
- Display: The monitor resolution was detected incorrectly, so I had to manually add HDMI parameters into the configuration file.
- Audio: By default, for an unknown reason, the headphone output is always active — there is no sound on the display speakers. I can switch the sound to HDMI in the settings, but it all reverts back after a reboot.
- Application manager: The built-in application manager looks quite nice:
But I failed to install any of the programs. The process hangs in the “Pending” status:
However, the standard apt-get from the console works fine.
Let’s return to the browser. The main hopes were on it because built-in Chromium is limited in DRM functionality. Indeed, Google makes it possible to download Chrome for Ubuntu:
When trying to install it, however, it throws the error “package architecture (amd64) does not match system (arm64).” It looks like there is no version of Chrome for ARM yet. This means that everything written in the first part is relevant here as well. And the icing on the cake: The web.basemark.com test showed a result of only 36.4 against 64.8 for Chromium in Raspbian:
At this point, I decided to stop testing version 20.04. I have no desire to recommend a version that has a lot of bugs and is twice as slow as the standard Raspbian version.
Part 3: The latest Ubuntu 20.10
This version, at the time of writing this article, had the status “latest development release with nine months of support, until July 2021.” That means this is not the final release. But in comparison with what it was, it will definitely not be worse.
Indeed, the Ubuntu developers have done a great job! A bug with Wi-Fi has been fixed, the application manager now works correctly, the display resolution was detected properly, and the system’s responsiveness seems to have increased remarkably. The background picture has also changed. In general, it all looks quite stylish.
The benchmark result in Chromium has grown but still falls short of the original Raspbian value:
I’ve read in some reviews that the Firefox browser has better hardware acceleration support. In practice, YouTube plays video more smoothly, but the benchmark showed only 44.3 in Firefox—that is, even a little less. The conclusion is simple: Firefox only accelerates video, but nothing else is faster, even the contrary.
In general, the Ubuntu UI looks pretty good.
One bug still exists: The sound plays via the headphones after each boot. But Ubuntu version 20.10 is much better than 20.04, so those who want to experiment on their own can be advised to start with it. A lot of work has also been done to improve the drivers. Interface speed, smoothness when dragging windows, and other bells and whistles have been significantly improved.
To be honest, for me, the final conclusion on Raspbian vs. Ubuntu has not yet emerged. Raspbian is more stable, but the latest version of Ubuntu looks much more attractive in terms of design, and the speed and smoothness of the interface in the latest version has significantly increased. For now, I switched back to Raspbian — Ubuntu bugs are a bit annoying, and Raspbian is faster.
As for the subjective opinion about using the Raspberry Pi as a desktop: There is a real potential for this, but the system is still unfinished. In principle, the device can be used (considering, of course, that you shouldn’t expect the comfort and speed of a Core i7 from a $50 computer). This text was completely written on the Raspberry Pi, and it works fine. The possibilities are more limited for multimedia. Some things can be improved by tuning the configs or using third-party tools, but it may require some Linux knowledge. On the other hand, its compactness, noiselessness, and low power consumption are impressive. Also, the Raspberry Pi 4 can be useful for studying programming and Linux and may be a perfect holiday gift for a student who is passionate about computers and IT.
Finally, a short summary about what you get by using the Raspberry Pi 4 as a desktop replacement:
- In general, the Raspberry Pi 4 can handle most tasks such as reading articles like this one, playing video, or working with text. But don’t expect top-level performance from the $50 board — it will be not the fastest computer in the world.
- Be aware that when you buy the Raspberry Pi 4, you get only the board. By default, you get no case, no cooling, no power button, no power supply, no SD card or slot for SSD. The final price will be definitely bigger.
- The big disadvantage is the lack of official DRM support in the web browser. You can use third-party tools, but in the default configuration, you won’t be able to watch Netflix or Amazon Prime. As I understand, it’s a legal issue, not a technical one, and I hope the Raspberry Pi team can finally solve it.
- The latest Ubuntu Desktop 20.10 was still in the beta stage at the time of writing this article (November 2020). Its design looks nice, but the benchmark results in Ubuntu are still lower than on Raspbian.
Those, who are interested in another way of having a desktop experience on the mobile device, can read my article about Samsung DeX on the Samsung S21 Ultra smartphone.