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, lets 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, lets 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 <Kernel@build.opensuse.org> 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 youll see the shell prompt.
Finally, a reboot is required and youll be booted up in the latest Linux kernel 4.x. Happy hacking!