ThinkStation Kernel Upgrade Solutions

Version 1.0

1. Introduction

The is the core of any Linux that is responsible for resource allocation, low-level hardware interfaces, security, simple communications, basic file system management, and much more. Linux is a replica of the UNIX operating system with greater reliability, stability and performance. From time to time, Linux releases new and improved updates to the kernel that can contain, but not limited to, new device drivers, bug fixes and much more. This is why it is necessarily critical and important to update your Linux kernel from time to time.

This document will instruct users in how to safely update their Linux operating system kernel to provide them with system enhancements that may or may not be critical to the user experience. 2. Linux Pre-checks

The first thing a user should do before thinking about upgrading their Linux kernel is to check which kernel they may be currently using.

 Open a terminal window and run the following command: uname –a o This should print the version of the kernel that the user is using.

The next thing a user should do before thinking about upgrading their Linux kernel is to check whether their Linux operating system is 32-bit or 64-bit.

 Open a terminal window and run the following command: file /sbin/init o This should print whether the operating system is 32-bit or 64-bit.

OPTIONAL: The user may decide to update all their Linux packages from the Linux ISO image.

 Open a terminal window, browse to the ‘Packages’ directory from their Linux ISO image and run the following commands: o Yum –y update o Yum install asciidoc newt-devel pciutils-devel pesign

The user should then check which Linux kernel is the latest stable kernel and decide which kernel version is right for them. This can be done by browsing to http://www.kernel.org. Download the appropriate *.tar.xz file.

3. Building the Kernel RPM Package

Once the user downloads the appropriate Linux kernel version they choose to upgrade (or downgrade) to, the next step is to unpack the kernel source files to the ‘/usr/src/’ directory.

 Open a terminal window and run the following command: tar xvfvJ linux-x.xx.tar.xz – /usr/src/ o This will create a new directory under /usr/src/ and extract the contents of the .tar.xz file.

It’s probably a good idea to use the configuration of your current working kernel as a basis for your new kernel. Therefore, browse to the newly created linux.x.xx directory created above and do the following:

 Open a terminal window and run the following command: menuconfig o In menuconfig, save the new configuration by pressing ‘S’ for ‘Save Config’. o After you save the new configuration, exit the menuconfig option.

Next, the user should build the kernel.

 Open a terminal window and run the following command: make rpm o This will build the kernel creating a src.rpm and an rpm package.

4. Installing the New Kernel RPM Package

Once the new kernel RPM/SRPM packages are created, the user can now install the new kernel. The first step is to browse to the appropriate directory location to where the new SRPMS and RPMS were created and install the source rpm. (default: /root/rpmbuild/SRPMS)

 Open a terminal window and run the following command: rpm --install --nodeps kernel-x.xx.x.src.rpm o Note: The ‘--install and --nodeps' should be 2-dashes (--) instead of 1-dash (-).

Then, the user should browse to the ‘/root/rpmbuild/SPECS’ directory to build the rpm.

 Open a terminal window and run the following commands: - cd rpmbuild/SPECS - rpmbuild –ba kernel.spec

The kernel is fully built now and resides in /root/rpmbuild/RPMS/x86_64

- cd /root/rpmbuild/RPMS/x86_64 - rpm –ivh kernel-x.xx.rpm kernel-devel-x.xx.x.rpm - reboot

Upon system reboot, the system should automatically default to the newly installed kernel version. If not, the user may have to set the grub.conf file to make the system boot to the newly created kernel by default.

5. Upgrading Linux Kernel For Ubuntu

A user may find it easier to install the *.deb packages for Ubuntu or Debian Linux. In this case, the user should then check which Linux kernel is the latest stable kernel and decide which kernel version is right for them. This can be done by browsing to http://kernel.ubuntu.com/~kernel-ppa/mainline/ to download the appropriate *.deb file.

 For 32-bit system, download the following files: - Linux-headers-x.x.x-xxxxxx_all.deb - Linux-headers-x.x.x-xxxxxx-generic_i386.deb - Linux-image-x.x.x-xxxxxx_i386.deb

 For 64-bit system, download the following files: o Linux-headers-x.x.x-xxxxxx_all.deb o Linux-headers-x.x.x-xxxxxx-generic_amd64.deb o Linux-image-x.x.x-xxxxxx_amd64.deb

Once the user downloads each of the three files above, then install each of the three packages:

- From a terminal window, type the following commands: o sudo dpkg –i linux-headers-x.x.x-xxxxxx*.deb linux-image-x.x.x-xxxxxx*.deb o sudo update-grub

After the packages successfully install, reboot the system.

If for some reason the kernel release doesn’t work properly, reboot the system into the previous kernel and remove the newly installed packages.

- From a terminal window, type the following commands: o sudo apt-get remove linux-headers-x.x.x-xxx*.deb linux-image-x.x.x-xxx* o sudo update-grub