COVID Crisis Tech Remedies (May 2020)

14 minute read

Published:

My quest for building a cheap PC capable of running Linux, especially LaTeX.

With the “work-from-home” restriction imposed to counter COVID crisis, the chromebook became even more useless. It could neither run the desktop version of Zoom nor work with a drawing tablet. I believe these problems can be solved by enabling the Developer Mode and installing Ubuntu alongside ChromeOS, but I highly doubt that audio and other drivers will work in Ubuntu. However, since mobility is not desired anymore, I decided to build desktop PC with minimum possible budget (which turned out to be USD 650, same as the cost of the basic Pixelbook Go or an entry level ThinkPad with core i5 10th gen). Moreover, desktop CPUs are much more powerful than laptop CPUs, for instance the Intel Core i3-9100 gives slightly better performance than Intel Core i5-10210U.

Performance

Following is the comparison of my PC with the best laptop available in the market in May 2020 for USD 650 (before tax):

SpecificationCustom build PCAcer Swift 3 (SF314-42-R9YN)
CPUAMD Ryzen 3 3200G (3.60 GHz x 4 cores, Zen+)AMD Ryzen 7 4700U (2.00 GHz x 8 cores, Zen 2)
iGPUAMD Radeon Vega 8 (1.25 GHz x 8 cores, Gen 8)AMD Radeon 7 (1.60 GHz x 7 cores, Gen 9)
RAM2 x 4 GB DDR4 2933 MHz (with 64MB reserved for iGPU)2 x 4 GB LPDDR4 4266 MHz
StorageCrucial P1 500GB NVMe SSDSamsung PM991 512GB NVMe SSD
PortsPS/2, 5 x USB 3.2, 4 x USB 2.0, DVI-D, HDMI, Audio In/Out, 2 x Mic1 x USB Type-C, 1 x USB 3.2, 1 x USB 2.0, HDMI, Headset/speaker jack
NetworkRealtek 8111H Gigabit LANIntel Integrated WiFi 6 (802.11ax) and Bluetooth 5.0
AudioRealtek ALC892 CodecRealtek Audio
Display21.5” 1920x1080 60Hz IPS with Eye Care and 2 stereo speakers14” 1920x1080 IPS with Bluelight Shiel and 2 stereo speakers
Webcam720p with mic720p with mic
KeyboardTenkeyless mechanical with Outemu Blue switches60% chiclet with scissor switch and backlight
Pointing deviceWireless mouseTouchpad
Warranty1.5 to 5 years depending on the part1 year
BottomlineSturdy and easy to repairMobility (0.71” thin and 2.65 lbs)

This will certainly an upgrade from the desktop computer I used a decade ago with Intel Pentium 4 CPU and 512MB RAM (no idea what graphics card was there in that machine). Moreover, though on paper Intel Core i7 4702MQ (my old Thinkpad) is not much worse than AMD Ryzen 3 3200G in terms of CPU performance, the AMD iGPU much better. For instance, with the best graphic settings of SuperTuxKart (for 60FPS/1080p required to have min AMD Radeon RX 460 with 1 GB VRAM), AMD gives about 30 fps on an average whereas Intel only gives 10 fps.

my alt text
Desktop screenshot showing neofetch output. (open image in new tab if it is too small)

Cloud Backup Setup for Linux PC (tested in Linux Mint and Ubuntu)

I am using rclone to sync files between my PC and Google Drive. Following are the steps one can follow to set it up:

  1. Create your own Google Drive OAuth2 client ID for rclone:

    a) Log into the Google API Console with your Google account. It doesn’t matter what Google account you use. (It need not be the same account as the Google Drive you want to access.

    b) Select a project or create a new project.

    c) Under “ENABLE APIS AND SERVICES” search for “Drive”, and enable the “Google Drive API”.

    d) Click “Oauth Consent Screen” in the left panel and select user type “External”. Then add Application name (anything you want) and save.

    e) Click “Credentials” in the left panel. Then click on “+ CREATE CREDENTIALS” button at the top of the screen, then select “OAuth client ID”. Select Application type as “Desktop app”, enter whaever client anme you want and click create.

    f) It will show you a client ID and client secret. Use these values in rclone config.

  2. Install the latest version of rclone via Terminal: curl https://rclone.org/install.sh | sudo bash
  3. Now configure rclone for Google Drive via Terminal: rclone config and follow the steps. Remeber to use the Client ID and client secret we created above. Since we created this API for personal use, we won’t be submitting it for verfication. Hence don’t be alarmed by the very scary confirmation screen shown when we connect via your browser for rclone to be able to get its token-id. Also, if you want to fetch Google Docs as links (instead of converting them to .odt etc) from Google Drive, in “advance-config” set “export-formats” to “link.html”.
  4. Sync files using “copy” and NOT “sync”: rclone copy source:path dest:path [flags]. For example, to sync all files from “New Folder” Google Drive (named: Drive) to PC (folder: home) and view the progress, type: rclone copy Drive:"New Folder" /home -P. Google Drive tend to have duplicate files since it allows same names files in same folder, in that case use dedupe to delete all duplicate files.
  5. Set-up auto update for rclone program (can see the latest version here):

    a) Open the bash file using a text editor like gedit/xed/vim: ~/.bashrc

    b) Add the following code to the file and save it: rclone() { if [[ $@ == "-U" ]]; then command curl https://rclone.org/install.sh | sudo bash; else command rclone "$@"; fi; }

    c) To update to the latest version run this in the Terminal: rclone -U and enter the PC password.

In case you wish to remove rclone, run the following commands in terminal which will delete the files containing information about rclone:

sudo rm /usr/bin/rclone
sudo rm /usr/local/share/man/man1/rclone.1

Build Details

All the system part recommendations were from PC-Part-Picker forums and Build-a-PC subreddit hence were biased towards gaming performance.

PC PartModelMSRP (round figure)Comments
System UnitTotal costUSD 370Should not require any upgrade for 4 years. 57% of the total budget.
CPU+GPU+CoolerAMD Ryzen 3 3200gUSD 100Latest and cheapest quad-core processor in the market with a proper GPU. However, the cooler is a bit loud when running at full speed.
MotherboardMSI A320M-A Pro MaxUSD 55Cheaptest motherboard with Ryzen 3000 APU support and M.2 PCIe. Shortcomings include the lack of ability to overclock CPU, no VGA port, only 2 RAM slots, only one case fan port and Realtek LAN. Luckily it came with most stable UEFI/BIOS (UEFI version 7C52v24/E7C52AMA.240, Released Nov-07-2019)
MemoryPatroit Viper 4 Blackout (2x4GB, 3000MHz)USD 40Was able to use it at CPU’s supported frequency of 2933 MHz
StorageCrucial P1 500GBUSD 60This QCL NVMe M.2 SSD is chaper than many SATA SSDs in the market
PSUCorsair CX450USD 65Cheapest 80+ Bronze rated power supply with good reviews.
PC CaseCooler Master N200USD 50Decent quality mini-tower with two pre-installed quiet-fans (not PMW). However, it being small in size, made cable management really hard though it comes with zip-ties. I hade to move the front intake fan to the outside to get rid of humming noise (video)
Input/Output DevicesTotal costUSD 180minimalistic, nothing fancy. 28% of the total budget.
KeyboardRedragon K552-NUSD 30Cheapest tenkeyless mechanical keyboard without any lighting. The next decent option was for around USD 100.
MouseLogitech M310USD 20Wireless ambidextrous mouse which is not very small. Though would prefer a bigger mouse.
Monitor+speakersAsus VA229HRUSD 100This 1080p 21.5” IPS screen with 1.5W sterio speakers didn’t meet my expectations. Its HDMI port doesn’t work well with my motherboard/GPU. Also, stand was so bad that I has to buy a new stand. Would have bought HP VH240a if it had longer warranty period and a smaller screen size option.
Webcam+micLogitech C270USD 30Better than the HD camera laptop has.
AccesoriesTotal CostUSD 100Required to make PC setup comfortable. 15% of the total budget.
Surge protectorBelkin BE108200-06USD 20Expected lifespan of 3 to 5 years.
Mouse padInsignia NS-PNP5008USD 10Should have bought the one with wrist rest
Monitor standHuanuo HNCM5-SUSD 25Can tilt,rotate and adjust height of the monitor.
DVI-D to VGA cableBenfei B07JYXYSSLUSD 15Since HDMI didn’t work
Audio cableStarTech Slim 3.5mm jackUSD 5Since HDMI didn’t work
Ethernet cableQuantum CAT5eUSD 15bye bye wifi
USB 3.0 extension cableSabrent CB-3060USD 10Since the ports at the back of PC case are far away from the desk.

I also bought IKEA Micke (Black-Brown) computer desk for kids (had to remove the bigger drawer to accomodate my legs) and IKEA Flintan+Nominell office chair (USD 80 + USD 100).

Introspection

The original plan was to use Ubuntu 20.04 GNOME as the OS since I wanted a stable system (hence not the rolling release distros like Arch/Manjaro, Solus and openSUSE TW) with Linux kernel greater than 4.20 for AMD Ryzen Picasso APUs (hence not Debian and CentOS) and large software repository (hence not enterprise focused distros like OpenSUSE Leap and Fedora). But Ubuntu turned out to be RAM hungry, since it required extra softwares like GNOME extensions and Variety for customization, and depended on the unstable Snap store. While trying to fix these issues I was able to brick my system thrice and hence decided to shift to Linux Mint 20 Cinnamon which provides out-of-the-box support for Flatpak(needed for Xournal++) and blocks Snap while providing better customizability and the same 5 year support (unlike official Ubuntu flavours which give only 3 years support). Though the appearance and RAM usage became much better with Linux Mint, it still inherited many boot errors like:

  1. IOMMU: Most likely this is a false alarm from the Linux kernel. However, turning off IOMMU in BIOS is not an option (which somehow is suggested in forums) since it is needed for HSA used by AMD for making GPU and CPU work together in its APUs. If I end up with black-screen during boot then I will consider updating AGESA drivers in the BIOS.

  2. Time Stamp Counter: Another Ryzen APU compatibility issue with Linux kernel.

  3. Kwallet: KWallet is supposed to be with KDE and not Cinnamon/GNOME.

  4. GNOME key-ring: Issue with GNOME.

  5. Pulseaudio+BlueZ: due to unavailability of Bluetooth in my computer and presence of Pulseaudio and BlueZ 5.53 in Ubuntu 20.04.

  6. initramfs: Boot speed improvements through changing the default kernel compression algorithm to lz4 (in Ubuntu 19.10) on most architectures, and changing the default initramfs compression algorithm to lz4 on all architectures. Somehow doesn’t work well for my PC. I switched to gzip compression to avoid this bug.

  7. UVC driver/Alsa: I think that the audio driver of Webcam leading to error during boot.

Out of these 1 and 4 are logged consistently during each boot, 2 and 7 are logged some times, and the remaining could be fixed if they ever occur again. Since I am running LTS distro, I won’t have to worry much about losing compaibility of my hardware or learning about latest softwares. Though there are only non-fatal boot errors, since everything is working as intended, it might be best to just shrug sholders.

Also, if you are using NVMe SSD then consider installing the NVMe tool as discussed here (might lead to logging of boot errors). Once you install any linux OS I would recommend running following commands and checking is everything is running as expected:

inxi -Fxz #system information google to learn more about inxi

lscpu #can also see lspci, lshw

sudo nvme smart-log /dev/nvme0n1" #NVMe info

journalctl -b -p 3 #error log messages

dmesg -l emerg,alert,crit,err

Also, in case things get out of hand, to access GRUB Menu press right Shift if system boots using BIOS or press Esc if system boots using UEFI. Remeber that if you press Esc multiple times then you will enter GRUB command prompt instead.

The current AMD budget processors provide a much superior iGPU performance than their Intel counterparts. For example:

  • We can compare the entry level quad-core desktop processors from last year: Intel Core i3-9100 (MSRP USD 120) has better CPU but worse iGPU than AMD Ryzen 3 3200g (MSRP USD 100) (benchmark).
  • We can compare the pro level mobile processors from this year: Intel Core i7-10710U with 6-physical cores and hyperthreading, is not better than AMD Ryzen 7 4700U with 8-physical cores but no hyperthreading (comparison).

I decided not to spend extra USD 20 for i3-9100 since the ability of 3200g to allow light gaming would be more than enough for my daily usage. Moreover, since neither of them have hyperthereading/multithreading, I won’t expect much improvement in multitasking. However, Intel being more popular has better support for various hardware (for example, I couldn’t run my monitor via HDMI due to compatibility issue between the motherboard and monitor). Luckily, this time the Realtek ethernet drivers didn’t cause headache with Ubuntu.

my alt text
This is a comparison of PassMark results (screenshot taken on 26 June 2020, when the prices had dropped due to announcement of next gen processors). PassMark a good measure of server orientated performance, where multiple cores are often simultaneously loaded. However, as seen above, for everyday use Core i3 is better than Ryzen 3.

We can’t deny the fact that, Intel Core i3 9100 would have been a better choice in terms of processing power. Even after the launch of 10th gen CPUs that build would have costed about USD 20 more since though the RAM will be really cheap as only 2400 MHz is supported by i3 (- USD 10), the CPU and motherboard (H310) will remain a little more expensive than the AMD counterparts (+ USD 30). however, by buying HP VH240a instead of Asus VA229HR, I could have saved USD 30, hence keeping the total cost of build USD 650 even with i3 9100. That said, I am happy with my AMD PC since it allows me to do some light gaming as a bonus (which was not the purpose of this PC). AMD build is clearly better than Intel if one plans to play even a single racing/shooting game with an option for overclocking by buying a better motherboard.