Linux

Linux 6.0 is the latest released version.

Linux Features

  • 6.1 – MGLRU, Rust support, signigicatn Btrfs speedups, suspend2idle ACPI fixes for buggy AMD UEFI-vendor notebooks can be enabled now per kernel paramter acpi.prefer_microsoft_guid=1 if notenook has no official workacround yet, PinePhone Pro works with the mainline kernel
  • 6.0 – Raspberry Pi V3D kernel driver, Performance improvements due to preferring the right core(s) on the right nodes https://www.phoronix.com/news/Linux-5.20-AMD-NUMA-Imbalance
  • 5.9 – Compressing the Linux kernel with Zstd is possible now
  • 5.7 – Completed AMD Ryzen 4000 “Renoir” mobile graphics support
  • 5.6 – Added Wireguard as a replacement for the dated VPN. USB4 support, multipath TCP, Async DISCARD support for Btrfs on SSD’s
  • 5.5 – Btrfs RAID1C3/RAID1C4 modes, changes to the kernel’s scheduler, NVMe SSD drive temperatures
  • 5.1 – AMD Vega GPU’s can be turned off with the bus active chip off technology (BACO) to save power

CPU bugs on Linux

  • The first generation of the AMD desktop Ryzen (Ryzen 7 1700+) is freezing in idle or under low load from time to time, at least once every day. A workaround is to use the kernel boot paramter rcu_nocbs=0-X (X=Number of CPU threads -1).
  • The third generation of the AMD desktop Ryzen (Ryzen 9 3900+) is resetting the system and rebooting randomly from time to time. Setting in the UEFI Bios the CPU to Typical Current Idle seems to mitigate this issue.

Linux Hardware Vendors

Some hardware vendors are selling at least some of their notebooks and desktops with Linux and Coreboot:

  • Purism
  • System76

Without Coreboot:

  • Tuxedo
  • Dell
  • Lenovo

Linux-git and Linux-next

Sometimes the stable version of Linux is not enough if you got some brand new hardware. Then you have to compile and install a Linux development snapshot from Git. In Arch Linux we have the gladly the AUR user repository. As somebody has created already a PKGBUILD we just have to type the following to get the Linux mainline development version of Linus:

yay linux-git

Or if you need the next development version, then type:

yay linux-next

If you confirm the PKGBUILD you can start the compile process. It will basically to the following:

  1. Download dependencies
  2. Compile
  3. Install with pacman

Compiling the full kernel will take a long time, if not done already make sure to use all CPU threads, read Pacman & Makepkg.

If there is a new release candidate (RC) provided by the package linux-git in AUR I would recommend to compile the kernel again to get all security changes and improvements.

Microcode

The microcode for Intel is usually installed by default (package intel-ucode). Install the AMD one with the following command:

sudo pacman amd-code

The adjust the boot loader entry, see below.

Linux-lts

On Arch Linux it is recommended to install a normal Linux plus a Linux-lts package in case something goes wrong with a new release or a package upgrade. In this case you can still boot the other kernel just fine. After installing Linux-lts add a bootloader entry.

Linux-hardened

Arch Linux provides with Linux-hardened a kernel with better security defaults. If you run a server and/or you want to use AppArmor, then this kernel is recommended.

Add Bootloader Entry

Before being able to boot to the new kernel, you will have to edit your bootloader config to switch to linux-git or linux-next. In the example below a new config file arch-linux-git.conf for systemd-boot entry will be added, but it can have another name depending from you Arch Linux distribution or if you use another bootloader like grub.

nano /boot/loader/entries/arch-linux-git.conf
title Arch Linux-git
linux /vmlinuz-linux-git
initrd /amd-ucode.img
initrd /intel-ucode.img
initrd /initramfs-linux-git.img
options root=UUID=9bede0c8-d51c-45a5-8ae5-eb30c4a4b235 rw quiet

If this is done, you can boot to the new kernel. After the UEFI/Bios screen press several times enter to get the systemd-boot menu, or if this change should be permanent, define the default like this:

$ nano /boot/loader/loader.conf
default arch-linux-git
timeout 0

VKMS

VKMS is a virtual kernel modesetting driver. It is developed as a google summer of code project in 2018 and first work has been merged to Linux 4.19. You can use it on a headless machine providing display output of Wayland or X11 without needing a real GPU, but it could use one if available as well. Wayland process will be added probably until end of 2018.