The 4.12 Linux Kernel was finally released earlier today. Linus Torvalds announced in lkml.org:
Things were quite calm this week, so I really didn’t have any real reason to delay the 4.12 release.
Ubuntu Kernel Release
Install / Upgrade to Linux Kernel 3.18 in Ubuntu: The Ubuntu Kernel Team has made the binary packages of this kernel release, available for download at the link below: Download Kernel 3.18 (.deb) First check out your OS type, 32-bit (i386) or 64-bit (amd64), then download and install the packages below in turn: linux-headers-3.18.0-031800xxx. The Ubuntu LTS enablement (also called HWE or Hardware Enablement) stacks provide newer kernel and X support for existing Ubuntu LTS releases. These enablement stacks can be installed manually but are also available when installing with Ubuntu LTS point release media.
As mentioned over the various rc announcements, 4.12 is one of the bigger releases historically, and I think only 4.9 ends up having had more commits. And 4.9 was big at least partly because Greg announced it was an LTS kernel. But 4.12 is just plain big.
There’s also nothing particularly odd going on in the tree – it’s all just normal development, just more of it that usual. The shortlog below is obviously just the minor changes since rc7 – the whole 4.12 shortlog is much too large to post.
In the diff department, 4.12 is also very big, although the reason there isn’t just that there’s a lot of development, we have the added bulk of a lot of new header files for the AMD Vega support. That’s almost exactly half the bulk of the patch, in fact, and partly as a result of that the driver side dominates everything else at 85+% of the release patch (it’s not all the AMD Vega headers – the Intel IPU driver in staging is big too, for example).
But aside from just being large, and a blip in size around rc5, the rc’s stabilized pretty nicely, so I think we’re all good to go.
Go out and use it.
Kernel 4.12 top features:
- initial GeForce GTX 1000 series 3D accelerated support on Nouveau driver stack
- Intel’s DRM driver has turned on atomic mode-setting by default
- Initial Radeon RX Vega support on AMDGPU DRM driver
- A USB Type-C port manager
- KASLR enabled by default for x86 systems.
- BFQ and Kyber now mainline as two new I/O schedulers.
- Continued power management tuning.
How to Install Kernel 4.12 in Ubuntu / Linux Mint:
The mainline kernel PPA has made the binaries for the new kernel release, available for download at the link below:
Depends on your OS type, download and install the packages in turns:
- linux-headers-4.12.0-xxxxxx_all.deb
- linux-headers-4.12.0-xxx-generic(/lowlatency)_xxx_amd64(/i386).deb
- linux-image-4.12.0-xxx-generic(/lowlatency)_xxx_amd64(/i386).deb
Select generic
for common system, and lowlatency
for a low latency system (e.g. for recording audio), amd64
for 64bit system, i386
for 32bit system, or armhf, arm64, etc for other OS types.
To get the Kernel 4.12 from the command console, run the commands below one by one:
For 64-bit OS:
for 32-bit OS:
Ubuntu 20.10 Kernel Version
After installed these .debs, restart and enjoy!
Uninstall Linux Kernel 4.12:
Start/restart your machine and select boot with the previous kernel in Grub2 -> Advanced menu. Then use Ubuntu Tweak, or other system tool to remove the Kernel 4.12, or you may see this how to remove old kernels tutorial.
Why would someone want to compile a new kernel? It is often notnecessary since the default kernel shipped with Ubuntu handles mostconfigurations. Also, Ubuntu often offers several alternative kernels.So you may want to check first if there is an alternative kernel imagepackage that better corresponds to your hardware. However, it can beuseful to compile a new kernel in order to:
handle special hardware needs, or hardware conflicts with thepre-supplied kernels
use options of the kernel which are not supported in the pre-suppliedkernels (such as high memory support)
optimize the kernel by removing useless drivers to speed up boot time
create a monolithic instead of a modularized kernel
run an updated or development kernel
learn more about linux kernels
Don't be afraid to try compiling the kernel. It's fun and profitable.
To compile a kernel the Debian/Ubuntu way, you need some packages:fakeroot
, kernel-package
,linux-source
and a few others which are probably already installed (see/usr/share/doc/kernel-package/README.gz
for thecomplete list).
This method will make a .deb of your kernel source, and, if you havenon-standard modules, make a synchronized dependent .deb of thosetoo. It's a better way to manage kernel images;/boot
will hold the kernel, the System.map, and alog of the active config file for the build.
Note that you don't have to compile your kernelthe “Debian/Ubuntu way”; but we find that using the packaging systemto manage your kernel is actually safer and easier. In fact, you can getyour kernel sources right from Linus instead oflinux-source
,yet still use the kernel-package
compilation method.
Ubuntu Kernel Version List
Note that you'll find complete documentation on usingkernel-package
under/usr/share/doc/kernel-package
. This section justcontains a brief tutorial.
Hereafter, we'll assume you have free rein over your machine and willextract your kernel source to somewhere in your home directory[17]. We'll also assume that your kernel version is5.4. Make sure you are in the directory to where you want tounpack the kernel sources, extract them usingtar xf /usr/src/linux-source-5.4.tar.xz
and change to the directory linux-source-5.4
that will have been created.
Now, you can configure your kernel. Run makexconfig
if X11 is installed, configured and being run; runmake menuconfig
otherwise (you'll needlibncurses5-dev
installed). Take the time to readthe online help and choose carefully. When in doubt, it is typicallybetter to include the device driver (the software which manageshardware peripherals, such as Ethernet cards, SCSI controllers, and soon) you are unsure about. Be careful: other options, not related to aspecific hardware, should be left at the default value if you do notunderstand them. Do not forget to select “Kernel module loader”in “Loadable module support” (it is not selected by default).If not included, your Ubuntu installation will experience problems.
Clean the source tree and reset the kernel-package
parameters. To do that, do make-kpkg clean
.
Now, compile the kernel:fakeroot make-kpkg --initrd --revision=1.0.custom kernel_image
.The version number of “1.0” can be changed at will; this is justa version number that you will use to track your kernel builds.Likewise, you can put any word you like in place of “custom”(e.g., a host name). Kernel compilation may take quite a while, depending onthe power of your machine.
Once the compilation is complete, you can install your custom kernellike any package. As root, do dpkg -i../linux-image-5.4-
.The subarchitecture
_1.0.custom_s390x.debsubarchitecture
part is an optionalsub-architecture,depending on what kernel options you set.dpkg -i
will install thekernel, along with some other nice supporting files. For instance,the System.map
will be properly installed(helpful for debugging kernel problems), and/boot/config-5.4
will be installed,containing your current configuration set. Your newkernel package is also clever enough to automatically update your bootloader to use the new kernel. If you have created a modules package,you'll need to install that package as well.
It is time to reboot the system: read carefully any warning that theabove step may have produced, then shutdown -r now
.
For more information on Debian/Ubuntu kernels and kernel compilation, see theDebian Linux Kernel Handbook.For more information on kernel-package
, readthe fine documentation in /usr/share/doc/kernel-package
.
[17] There are other locations where you can extract kernel sources and buildyour custom kernel, but this is easiest as it does not require specialpermissions.