A new Linux Kernel 6.2 arrived with updated Rust language support, IPv6 protective load balancing and more.
Linus Torvalds released Linux Kernel 6.2 on Feb 19, 2023, as the first mainline Kernel release of 2023. The merge and testing window is a little larger, considering a few bugs and fixes, but it arrives almost in time to be featured in the upcoming major distro releases.
Overall changes are usual, catered to GPU, CPU lineups, more Rust infra support, and port and file-system updates.
And this obviously means that the 6.3 merge window will open tomorrow,
and I already have 30+ pull requests queued up, which I really
appreciate. I like how people have started to take the whole “ready
for the merge window” to heart.
But in the meantime, please do give 6.2 a testing. Maybe it’s not aLinus while announcing the 6.2
sexy LTS release like 6.1 ended up being, but all those regular
pedestrian kernels want some test love too.
Let’s take a look at what’s new.
Table of Contents
Linux Kernel 6.2: New Features
CPU and subsystems
A considerable amount of power management code arrives in Linux Kernel 6.2 across CPUs and architectures. Intel Alder Lake N and Raptor Lake P models changed the Energy Performance Bias (EPB) value from 6 to 7, which helps to reduce power consumption. In addition, Apple M1/M2 brings CPU frequency scaling for the P-State to control the power consumption in Apple silicon.
A bunch of code dropped for the message signalled interrupts (MSI) subsystem of the Kernel to support per-device interrupt domains. The revamp of MSI was in discussion for some time for implementation due to its initial design issue.
AMD’s Zen 4 processors are now supported by Kernel 6.2 with various opening up of performance modules. Essential items that get support for this processor are core performance monitor counters, L3 cache performance monitor counters, multiple event metrics around dispatch, branch prediction, L1/L2 cache activity and many more.
AMD’s P-state driver code was added to Kernel for the past few releases. In this version, a bunch of patches arrive at this p-State Energy Performance Preference handling module.
More RISC-V architecture support arrives in this Kernel release bringing persistent memory device support, T-Head PMU support and additional changes.
Furthermore, a handful of system on a chip (SoC) support arrives in this release. Significant models include Qualcomm Snapdragon 460, 650, 652, 821, 662, 695, 670, Apple M1 Pro, Max, Ultra SoCs, a bunch of Rockchip boards and many more.
The graphics stack also gets significant updates, including the ongoing code addition for upcoming models from Intel and AMD.
Firstly, Intel’s Arc Graphics (DG2/Alchemist) card support becomes stable and removed as experimental support. Hence it’s ready to be used with the latest mainline Kernel from this version onwards.
Also arriving, the initial NVIDIA RTX 30 “Ampere” accelerated support, more Intel Meteor Lake code base and AMD is also patched more code for RDNA3 cards.
A vast number of file system change arrives in this release. The significant update includes the NTFS driver adding new mount options, better performance for exFAT while creating files/directories, better caching for F2FS, performance and fixes for btrfs file system.
The USB4 updates continue to arrive, and 6.2 is bringing wake on connect and disconnect via USB4 ports. In addition, the USB 2.0 dongle to VGA adapter “sisusbvga” driver support is dropped in this release, being outdated hardware.
The IPv6 stack in the networking module gets “protective load balancing” (PLB) support. PLB is a host-based system for load balancing across switches, leveraging congestion signals from the transport layer by changing the path of connections.
Since kernel 6.1 added the initial Rust skeleton, this release also adds more initial support for Rust for the future. The changes include new macros, and constructors for the Kernel support with Rust which you can find here (via the mailing list):
String and formatting: new types
Formatter; new macros
Errors: the rest of the error codes from
errno-base.h, as well as some
From trait implementations for the
Printing: the rest of the
pr_*! levels and the continuation one
pr_cont!, as well as a new sample.
alloc crate: new constructors
Procedural macros: new macros
concat_idents!, as well as better ergonomics for
Asserting: new macros
build_assert!, as well as a new crate
build_error to support them.
Vocabulary types: new types
Debugging: new macro
On top of the above changes, Kernel 6.2 started dropping code for 800Gbps networking support and MotorComm YT8521 Gigabit ethernet support and Wi-Fi 7.
A brief list of hardware support is present in this list:
Clock, Pin control and GPIO
- MStar CPUPLL clocks
- Ingenic JZ4755 CGU clocks
- MediaTek FHCTL hardware controller clocks
- Qualcomm SC8280XP and SM6375 display clock controllers
- Qualcomm SDM670 pin controllers
- Loongson-2 SoC pin controllers
- Intel Moorefield pin controllers
- Open Firmware display controllers
- Renesas RZ/G2L MIPI DSI encoders
- Jadard JD9365DA-H3 WXGA DSI panels
- NewVision NV3051D DSI panels
- Ampere Altra SMpro hardware monitors
- OneXPlayer EC fan controllers
- Hynitron cst3xx touchscreens
- Cypress TrueTouch Gen5 touchscreens
- Himax hx83112b touchscreens
- OmniVision OV08X40 and OV4689 sensors
- STmicroelectronics VGXY61 sensors
- Toshiba TC358746 parallel-CSI2 bridges
- Allwinner A31 image signal processors
- Microchip image sensor controllers
- Renesas RZ/G2L MIPI CSI-2 receivers
- ARM CoreSight performance monitoring units
- Amlogic DDR bandwidth performance monitors
- Loongson-2 SoC global utilities register blocks
- Dell WMI-based platform sensors
- ChromeOS human-presence sensors
- Apple CPU-frequency controllers
- ARM SCMI powercap controllers
- Richtek RT6190 4-Switch BuckBoost controllers
- MediaTek MT6357 power-management ICs
- Sunplus SP7021 MMC controllers
- Realtek 8852BE PCI wireless network adapters
- Motorcomm yt8521 gigabit Ethernet PHYs
- Renesas R-Car S4-8 Ethernet switches
- MediaTek MT7996 wireless interfaces
- NVIDIA Tegra multi-gigabit Ethernet controllers
- Realtek 8821CU, 8822BU, 8822CU and 8723DU USB wireless network adapters
- Broadcom BCM4377/4378/4387 Bluetooth interfaces
- Realtek RT1318 codecs
How to Download and Install Linux Kernel 6.2
Remember that using the bleeding-edge mainline Linux Kernel in your production systems/daily-drive laptops/desktops is not wiser unless you have a specific requirement. Or have the latest GPU, CPU, which requires support.
For general users, it’s always best to wait for a few weeks until all the major Linux Distributions bring this version via their official stable channel after proper testing.
That being said, if you still want to install this version, go ahead and follow the below instructions in Debian-based distributions, which I lined up here.
- Firstly, visit the mainline kernel page.
- There are two types of builds available – generic and lowlatency. You can download generic builds that work most of the time for standard systems.
- For audio recordings and other setups that require low latency (like real-time feeds), download the lowlatency one.
- Secondly, download the below four packages for generic via the terminal and install them.
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.2/amd64/linux-headers-6.2.0-060200-generic_6.2.0-060200.202302191831_amd64.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.2/amd64/linux-headers-6.2.0-060200_6.2.0-060200.202302191831_all.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.2/amd64/linux-image-unsigned-6.2.0-060200-generic_6.2.0-060200.202302191831_amd64.deb
wget -c https://kernel.ubuntu.com/~kernel-ppa/mainline/v6.2/amd64/linux-modules-6.2.0-060200-generic_6.2.0-060200.202302191831_amd64.deb
sudo dpkg -i *.deb
- After installation, reboot the system.
- The instruction for lowlatency and other architecture (e.g., ARM) installations are the same. Replace the package name in the above wget commands. You can find them on the mainline Kernel page.
Arch Linux users should get this version by 1st week of March-2023 via monthly ISO refresh.
Ubuntu 23.04 Lunar Lobster may feature this Kernel, due on April-2023. However, Fedora 38 may feature this version which is due in March. But I think both are unlikely.
This release opens the merge window for the following Linux Kernel 6.3, which is expected to bring more updates to the Rust framework and additional hardware support.