Linux Kernel 5.3 released. How to update and install Linux Kernel 5.3 on Ubuntu Linux Systems. Linux Kernel 5.3 brings support for 16 million new IPv4 addresses and Intel HDR display support for Icelake, Geminilake, support for AMDGPU Navi, including the Radeon RX 5700, support for the NVIDIA Jetson Nano, MacBook & MacBook Pro keyboard support and Intel UMWAIT support.
This release includes support for AMD Navi GPUs; support for the umwait x86 instructions that let processes wait for short amounts of time without spinning loops; a ‘utilization clamping’ mechanism that is used to boost interactivity in the power-asymmetric CPUs used in phones; a new pidfd_open(2) system call that completes the work done to let users deal with the PID reuse problem; 16 millions of new IPv4 addresses in the 0.0.0.0/8 range are made available; support for Zhaoxin x86 CPUs; support Intel Speed Select for easier power selection in Xeon servers; and support for the lightweight hypervisor ACRN, built for embedded IoT devices.
Kernel 5.3
Announcing the release of Kernel 5.3, Linus Torvalds writes:
” So we’ve had a fairly quiet last week, but I think it was good that we ended up having that extra week and the final rc8. Even if the reason for that extra week was my travel schedule rather than any pending issues, we ended up having a few good fixes come in, including some for some bad btrfs behavior. Yeah, there’s some unnecessary noise in there too (like the speling fixes), but we also had several last-minute reverts for things that caused issues.
One _particularly_ last-minute revert is the top-most commit (ignoring the version change itself) done just before the release, and while it’s very annoying, it’s perhaps also instructive. What’s instructive about it is that I reverted a commit that wasn’t actually buggy. In fact, it was doing exactly what it set out to do, and did it very well. In fact it did it _so_ well that the much improved IO patterns it caused then ended up revealing a user-visible regression due to a real bug in a completely unrelated area.
The actual details of that regression are not the reason I point that revert out as instructive, though. It’s more that it’s an instructive example of what counts as a regression, and what the whole “no regressions” kernel rule means. The reverted commit didn’t change any API’s, and it didn’t introduce any new bugs. But it ended up exposing another problem, and as such caused a kernel upgrade to fail for a user. So it got reverted.
The point here being that we revert based on user-reported _behavior_, not based on some “it changes the ABI” or “it caused a bug” concept. The problem was really pre-existing, and it just didn’t happen to trigger before. The better IO patterns introduced by the change just happened to expose an old bug, and people had grown to depend on the previously benign behavior of that old issue.
And never fear, we’ll re-introduce the fix that improved on the IO patterns once we’ve decided just how to handle the fact that we had a bad interaction with an interface that people had then just happened to rely on incidental behavior for before. It’s just that we’ll have to hash through how to do that (there are no less than three different patches by three different developers being discussed, and there might be more coming…). In the meantime, I reverted the thing that exposed the problem to users for this release, even if I hope it will be re-introduced (perhaps even backported as a stable patch) once we have consensus about the issue it exposed.
Take-away from the whole thing: it’s not about whether you change the kernel-userspace ABI, or fix a bug, or about whether the old code “should never have worked in the first place”. It’s about whether something breaks existing users’ workflow. Anyway, that was my little aside on the whole regression thing. Since it’s that “first rule of kernel programming”, I felt it is perhaps worth just bringing it up every once in a while.
Other than that aside, I don’t find a lot to really talk about last week. Drivers, networking (and network drivers), arch updates, selftests. And a few random fixes in various other corners. The appended shortlog is not overly long, and gives a flavor for the changes.
And this obviously means that the merge window for 5.4 is open, and I’ll start doing pull requests for that tomorrow. I already have a number of them in my inbox, and I appreciate all the people who got that over and done with early.”
https://lkml.org/lkml/2019/9/15/241
Build for amd64 succeeded (see BUILD.LOG.amd64):
Run the following commands in terminal to install Kernel 5.3 in 64 Bit Systems:
sudo apt-get upgrade
sudo apt-get update
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-headers-5.3.0-050300_5.3.0-050300.201909152230_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-headers-5.3.0-050300-generic_5.3.0-050300.201909152230_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-headers-5.3.0-050300-lowlatency_5.3.0-050300.201909152230_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-image-unsigned-5.3.0-050300-generic_5.3.0-050300.201909152230_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-image-unsigned-5.3.0-050300-lowlatency_5.3.0-050300.201909152230_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-modules-5.3.0-050300-generic_5.3.0-050300.201909152230_amd64.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-modules-5.3.0-050300-lowlatency_5.3.0-050300.201909152230_amd64.deb
sudo dpkg -i *.deb
sudo reboot
Build for i386 succeeded (see BUILD.LOG.i386):
Run the following commands in terminal to install Kernel 5.3 in 32 Bit Systems:
sudo apt-get upgrade
sudo apt-get update
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-headers-5.3.0-050300_5.3.0-050300.201909152230_all.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-headers-5.3.0-050300-generic_5.3.0-050300.201909152230_i386.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-headers-5.3.0-050300-lowlatency_5.3.0-050300.201909152230_i386.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-image-5.3.0-050300-generic_5.3.0-050300.201909152230_i386.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-image-5.3.0-050300-lowlatency_5.3.0-050300.201909152230_i386.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-modules-5.3.0-050300-generic_5.3.0-050300.201909152230_i386.deb
wget https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.3/linux-modules-5.3.0-050300-lowlatency_5.3.0-050300.201909152230_i386.deb
sudo dpkg -i *.deb
sudo reboot
Compile Linux kernel 5.3
Run the following commands to compile and install Linux kernel 5.3:
sudo apt-get upgrade
sudo apt-get update
sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.3.tar.xz
unxz -v linux-5.3.tar.xz
xz -d -v linux-5.3.tar.xz
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.3.tar.sign
gpg --verify linux-5.3.tar.sign
tar xvf linux-5.3.tar
cd linux-5.3
cp -v /boot/config-$(uname -r) .config
sudo reboot
Configure Linux kernel 5.3
Run the following commands to configure Linux kernel 5.3:
sudo apt-get upgrade
sudo apt-get update
make menuconfig
make -j $(nproc)
sudo make modules_install
sudo make install
sudo update-initramfs -c -k 5.3
sudo update-grub
sudo reboot
uname -mrs