The Complete Magazine on Open Source

Upgrade openSUSE to the Latest Linux Kernel

SHARE
/ 336 0

89-90_OpenSuse June 2015

This article offers readers some interesting hacker tips. The tutorial is on upgrading the openSuse 13.2 stock kernel to Linux Kernel 4.x. So go on and get your hands dirty!

OpenSUSE 13.2 ships with the stock Linux kernel 3.16.7-13. However, with all the interesting platform technologies for developers, like Docker and Limba, evolving at a rapid pace, there is a need for the functionality available in the later kernel versions.
The approach we adopt involves the following steps:
1. Use the command line tool zypper
2. Edit the /etc/zypp/zypp.conf file to support multiple kernel configurations
3. Add the kernel HEAD repository
4. Use zypper to perform a distribution upgrade from the kernel HEAD repository
5. Reboot the system
First, let’s edit the /etc/zypp/zypp.conf file with the entries shown below.
The options are specified to support multiple kernels on the same system and retain multiple kernels including the oldest, i.e., the general availability (GA) kernel, the one openSUSE ships with. We also retain the running kernel.

multiversion = provides:multiversion(kernel)
multiversion.kernels = latest,latest-1,running,oldest

Second, let’s add the openSUSE kernel HEAD repository that has the latest kernels. This applies irrespective of which kernel version is running on your system.

$ sudo zypper addrepo -f http://download.opensuse.org/repositories/Kernel:/HEAD/standard/ kernel-repo
Adding repository ‘kernel-repo’ ......................[done]
Repository ‘kernel-repo’ successfully added
Enabled : Yes
Autorefresh : Yes
GPG check : Yes
URI : http://download.opensuse.org/repositories/Kernel:/HEAD/standard/

Next, perform a distribution upgrade only from the specific repository; in this case, the kernel HEAD repository.

$ sudo zypper dist-upgrade -r kernel-repo

Retrieving repository ‘kernel-repo’ metadata
----------------------------------------------------------[\]

New repository or package signing key received:

Repository: kernel-repo
Key Name: Kernel OBS Project <[email protected]>
Key Fingerprint: 4529410A B52F94C4 03BAB484 ECEEF210 03579C1D
Key Created: Tue 12 Feb 2013 05:52:10 PM IST
Key Expires: Thu 23 Apr 2015 05:52:10 PM IST (expires in 6 days)
Rpm Name: gpg-pubkey-03579c1d-511a33f2

Do you want to reject the key, trust temporarily, or trust always? [r/t/a/? shows all options] (r): a
Retrieving repository ‘kernel-repo’ metadata .......................................................................[done]
Building repository ‘kernel-repo’ cache ............................................................................[done]
Loading repository data...
Reading installed packages...
Computing distribution upgrade...

The following NEW package is going to be installed:

kernel-desktop-4.0.0-2.1.g38d8739

The following three packages are going to be upgraded:

kernel-docs kernel-firmware ucode-amd

The following 3 packages are going to change vendor:

kernel-docs openSUSE -> obs://build.opensuse.org/Kernel
kernel-firmware openSUSE -> obs://build.opensuse.org/Kernel
ucode-amd openSUSE -> obs://build.opensuse.org/Kernel

3 packages to upgrade, 1 new, 3 to change vendor.
Overall download size: 75.9 MiB. Already cached: 0 B After the operation, additional 231.2 MiB will be used.
Continue? [y/n/? shows all options] (y): y

Retrieving package kernel-docs-4.0.0-2.1.g38d8739.noarch (1/4), 4.3 MiB ( 4.0 MiB unpacked)
Retrieving: kernel-docs-4.0.0-2.1.g38d8739.noarch.rpm ................................................[done (1.4 MiB/s)]
Retrieving package kernel-firmware-20150209git-102.1.noarch (2/4), 24.4 MiB ( 80.1 MiB unpacked)
Retrieving: kernel-firmware-20150209git-102.1.noarch.rpm ..........................................[done (1.3 MiB/s)]
Retrieving package ucode-amd-20150209git-102.1.noarch (3/4), 39.7 KiB ( 28.6 KiB unpacked)
Retrieving: ucode-amd-20150209git-102.1.noarch.rpm ............................................................[done]
Retrieving package kernel-desktop-4.0.0-2.1.g38d8739.x86_64 (4/4), 47.3 MiB (220.7 MiB unpacked)
Retrieving: kernel-desktop-4.0.0-2.1.g38d8739.x86_64.rpm ..........................................[done (1.3 MiB/s)]
Checking for file conflicts: ........................................................................................[done]
(1/4) Installing: kernel-docs-4.0.0-2.1.g38d8739 .................................................................[done]
(2/4) Installing: kernel-firmware-20150209git-102.1 .................................................................[done]
(3/4) Installing: ucode-amd-20150209git-102.1 ......................................................................[done]
(4/4) Installing: kernel-desktop-4.0.0-2.1.g38d8739 ................................................................[done]
Additional rpm output:
Creating initrd: /boot/initrd-4.0.0-2.g38d8739-desktop
Executing: /usr/bin/dracut --logfile /var/log/YaST2/mkinitrd.log --force /boot/initrd-4.0.0-2.g38d8739-desktop 4.0.0-2.g38d8739-desktop
dracut module ‘fcoe-uefi’ will not be installed, because command ‘dcbtool’ could not be found!
dracut module ‘fcoe-uefi’ will not be installed, because command ‘fipvlan’ could not be found!
dracut module ‘fcoe-uefi’ will not be installed, because command ‘lldpad’ could not be found!
dracut module ‘fcoe-uefi’ will not be installed, because command ‘dcbtool’ could not be found!
dracut module ‘fcoe-uefi’ will not be installed, because command ‘fipvlan’ could not be found!
dracut module ‘fcoe-uefi’ will not be installed, because command ‘lldpad’ could not be found!
*** Including module: bash ***
*** Including module: warpclock ***
*** Including module: i18n ***
*** Including module: ifcfg ***
*** Including module: drm ***
*** Including module: plymouth ***
*** Including module: btrfs ***
*** Including module: kernel-modules ***
Omitting driver i2o_scsi
*** Including module: resume ***
*** Including module: rootfs-block ***
*** Including module: terminfo ***
*** Including module: udev-rules ***
Skipping udev rule: 91-permissions.rules
Skipping udev rule: 80-drivers-modprobe.rules
*** Including module: systemd ***
*** Including module: usrmount ***
*** Including module: base ***
*** Including module: fs-lib ***
*** Including module: shutdown ***
*** Including module: suse ***
*** Including modules done ***
*** Installing kernel module dependencies and firmware ***
*** Installing kernel module dependencies and firmware done ***
*** Resolving executable dependencies ***
*** Resolving executable dependencies done***
*** Pre-linking files ***
*** Pre-linking files done ***
*** Hardlinking files ***
*** Hardlinking files done ***
*** Stripping files ***
*** Stripping files done ***
*** Generating early-microcode cpio image ***
*** Constructing AuthenticAMD.bin ****
*** Store current command line parameters ***
Stored kernel commandline:
resume=UUID=87a0bb7e-0f62-4401-909e-f4976a75e158
root=UUID=abec46fa-a48a-4556-8d2a-5e9f9d668dc3 rootflags=rw,relatime,space_cache rootfstype=btrfs
*** Creating image file ***
*** Creating image file done ***
Update bootloader…

The ‘update bootloader’ takes some time, so please wait for a couple of minutes and you’ll see the shell prompt.

Finally, a reboot is required and you’ll be booted up in the latest Linux kernel 4.x. Happy hacking!