Best Linux Distros of 2019/2020

Welcome to my Best Linux Distros of 2019 for 2020 Watch my video here

Welcome to my review and round up of the best linux distributions (distros) of 2019 that you should be using in 2020! This list will give recommendations for Best Linux Distro 2020, Best Lightweight Linux Distro, Best Gaming Distro, and Best Linux Distro for programming. Let’s get started!

Best Lightweight Distro: Void Linux

Void Linux has been my favorite lightweight and minimal Linux distribution for some time now. I have been using Void as a desktop system (also works great for server) for many months and it’s a stable and enjoyable experience for an enthusiast Linux user. Void provides everything you need in its default repositories and has great documentation. The community on r/voidlinux is also pretty good for helping people that need help (very arch-like and elite though). If you’re looking to get yourself started on Void I think LXQT is my favorite Desktop Environment with the least amount of overhead.

Best Gaming Distro: MX Linux

MX Linux has been gaining a huge amount of steam. In 2019 it was one of the best reviewed and highest rated for a “set it and forget it” Linux distro for the everyman. This Debian based distro gives you everything you need as a desktop user right out of the box and even provides non-free drivers (better for gaming) as well out of the box if you want them. The default desktop environment is XFCE which is a good choice for gaming too because of it’s light weight and low impact compositor. MX is a solid choice for everyone that is new or old to Linux. It just works.

Best Linux Distro for Programming: Manjaro Linux

Manjaro is Arch without the headache. This is a great distribution of Linux and no one should be saying it’s anything less than top 5 in the pecking order. Manjaro can lean on the Arch Linux community and documentation that has had so much time to build a great wealth of knowledge. The installation process is easy, all the big development environments are available through the default repos as well as every programming language package you can think of. I love Manjaro because it works on everything and has everything. If you’re looking to switch away from Mint, Ubuntu, or Fedora/CentOS this is my number one pick for a programmers dream.

Best Linux Distro 2019: Void Linux

I need to set Void as the leader in the innovation space of Linux this year. It’s now officially supported Flatpack and is a total joy to use once you have it installed. The XBPS package manager is the best thing to happen to binary distribution since apt and you have a complete backlog of documentation and a giant repository of great packages that are up to date. This is an amazing project that will continue to gather a following. You can’t go wrong this year by installing Void Linux on your main system and trying it out! My pick for Best Linux Distro 2020 is Void Linux.

League of Legends Using Wine and Vulkan D9VK Linux Performance vs Windows (Nvidia)

League of Legends Windows 10 vs Ubuntu Linux 18.04 Performance Graph. Watch my video here.

Hey League of Legends players that also happen to be Linux enthusiasts. Today I would like to share a video comparison I’ve created comparing the difference in performance between League of Legends on Windows 10 and League of Legends on Ubuntu 18.04 Linux. This comparison will provides a frame rate (FPS) graph and and a side by side comparison of performance between the two systems handling the same replay from League of Legends patch 9.24 from Late December 2019.

Hardware

  • RTX 2080 8GB
  • i7 9700K @ 4.6Ghz
  • 16GB DDR4 RAM
  • NVMe SSD

Drivers

  • Win10 – 441.08 WHQL
  • Ubuntu – 430 nonfree
  • Wine: lutris-lol-4.20-x86_64 D9VK/Vulkan Enabled

League of Legends

  • Medium Settings & Shadows
  • 240 FPS Framerate Limit (Recommend)
  • AA Enabled Patch 9.24B (Late Dec 2019)

Results

  • Windows Average: 154
  • Windows One Percent Low: 120
  • Ubuntu Average: 140
  • Ubuntu One Percent Low: 106

Recording Settings

Note: The impact of OBS with these settings is as low as ~5FPS. When running the tests I had no additional software running other than OBS and League. In a real use case even if you don’t record/stream the performance impact should be similar to having Chrome/Firefox open with a YouTube video or Discord ect.

H.264 Encoder veryfast preset, 5000kbps Bitrate, 1280×720 (downsampled from 1080p)

Tutorial: How To Run checkra1n on Linux via QEMU macOS Virtualization

YouTube tutorial on how to enable IOMMU passthrough to QEMU virtual machine on Ubuntu 18.04 host.
checkra1n on Linux using IOMMU PCI USB pass through tutorial on YouTube

Introduction

Hey jailbreakers!

I’ve got a simple step by step guide on how you can dual boot Windows 10 and Ubuntu Linux 18.04 to run the checkra1n jailbreak tool! Be warned that setup is a little technical and will likely take around an hour. Lets start!

Hardware Compatibility Requirements

First off you’re going to need to have a 64-bit processor that has virtualization enabled. You can check this in msinfo32.exe on Windows. Check “System Type” and scroll down to the Hyper-V entries. If System Type is “x64-based PC” the Hyper-V settings are “Yes” you have a CPU with the requirements.

Ubuntu 18.04 Install USB

Download the Ubuntu 18.04 ISO and use the rufus disk imaging tool to write it to any USB flash drive/thumb stick that’s 2GB or greater.

Windows 10 Partitioning & Linux Installation Alongside Windows

You also need to partition some free space away from your Windows 10 Installation. Using the Disk Management diskmgmt.msc shrink your C: Volume by 25000MB and leave it as unpartitioned free space. Now boot from USB and run the installation utility in Ubuntu. Select “Install Ubuntu alongside Windows” If this open isn’t there please don’t continue with the guide as your may accidentally format your drive. Choose a username and password in the setup then click install. Wait for the installation to complete and then reboot into UEFI/BIOS to change the boot priority of your drive to default to Ubuntu. While you’re in UEFI/BIOS you must also enable your CPU virtualization technology settings. Save and quit F10 and boot into your Ubuntu install.

Following GitHub Guide

From here you are ready to follow the instructions explained in the GitHub README.md so continue from there. Good luck!

checkra1n on PC/Linux via QEMU macOS Virtualization

EDIT: I have now successfully achieved checkra1n on Ubuntu Linux 18.04 using QEMU and IOMMU Pass through. Installation scripts coming soon!

I have a work around using a live Linux USB. There is no offical release for Windows and Linux currently so macOS must be virtualized using KVM and IOMMU groupings.

Watch my YouTube video explaining my virtualization approach

The checkm8 jailbreak implementation called checkra1n was released Sunday November 10th 2019 but only for macOS. This wasn’t done to spite non-apple desktop users. The checkm8 exploit relies of precise control of the desktop USB stack to manipulate DFU mode.

Due to the precision of this communication they needed to craft the checkra1n desktop application to work with the the USB stack. The first USB stack they targeted as macOS, likely due to the developers familiarity with it. You can read more about the exploit in @qwertyoruiop talk at POC2019 which I attended.

So here’s the work around. A disk image you can flash to any 16/32GB USB flash drive to boot into which will provide the macOS Virtual Machine and provide USB passthrough.

This is possible and I can get this working. Just give me another few days. You’ll just need a 16/32GB USB drive and to boot into a live linux distro, run a script, and then you’ll have a macOS Virtual Machine is USB passthrough for use with checkra1n. VirtualBox and VMWare WILL NOT WORK for checkra1n. You need to have lower level access.

About VM’s and how this would work:

Stay tuned. I’ll have an update soon. You can watch my YouTube video linked above.

How To Hide Android 10 Q Navigation Bar

With Android 10 Q full gesture navigation is finally available. Google has unfortunately overlooked the option for users to simply hide the bottom navigation bar once they have become accustomed to the gestures. Thankfully there is already an app that will allow you to toggle the navbar’s visibility (well actually it just draw it below the screen). This can be done easily on rooted devices but is also available to non-rooted phones as well. If your device DOES NOT have root access this requires a PC (Windows, Linux/BSD, or Mac) to enable the functionality.

This does NOT require your device to be rooted. The following ADB command does NOT void your devices warranty, you are just granting an additional permission to an app that is unavoidable through the GUI.

If your device IS ALREADY rooted you can simply grant the app SuperUser and skip the command.

There are currently two apps that offer a toggle setting for the navigation bar once the required command has been run.

  1. Navigation Gestures – Swipe Gesture Controls! by XDA (recommended)
  2. Hide Navigation Bar by Manuel Wrage

If you are rooted: grant your selected app SuperUser, finish the on-boarding and enable the setting. Your navigation bar should now be off screen.

For those who aren’t rooted, lets now grant your selected app the secure settings permission. Depending on which app you decide to use the command will be slightly different as you are actually granting the specific app an additional system permission. 

Enable Developer Mode & USB Debugging

First you need to let your phone communicate with your PC via USB debugging.

Open your Android settings app, scroll to bottom and select “About Phone”, scroll to the bottom again and tap the build number seven(7) times, enable developer mode

Settings>About Phone>Tap Build Number 7 Times>Enable Developer Mode

Now that you’re a developer go back to the main settings page, select System, Advanced, Developer options, enable USB debugging 

Settings>System>Advanced>Developer options>USB debugging

Installing ADB

ADB or the Android Debug Bridge is available for all platforms. You can follow this in depth guide on XDA https://www.xda-developers.com/install-adb-windows-macos-linux/

If you’re on Linux you should be able to install ‘android-tools-adb’ on any Debian or Ubuntu based system. https://packages.debian.org/buster/android-tools-adb

On Arch/Manjaro systems ADB is provided through the ‘android-tools’ package. https://www.archlinux.org/packages/community/x86_64/android-tools/

Once you have some kind of ADB binary on your system you can now plug in and trust your device, then run the following command depending on which of the toggle apps you’ve chosen.

Navigation Gestures – Swipe Gesture Controls! by XDA

adb shell pm grant com.xda.nobar android.permission.WRITE_SECURE_SETTINGS

Hide Navigation Bar by Manuel Wrage

adb shell pm grant com.ivianuu.hidenavbar android.permission.WRITE_SECURE_SETTINGS

If you get an error about the device not being trusted, unlock your device and trust your PC for USB debugging.

After you have successfully granted the app the permission you’re done! Now enter the app and toggle the setting on or off whenever you want!