I would like to upgrade to the latest 3.17 Linux Kernel because it has support for the Xbox One Controller and I really want to test it out.

I am running Ubuntu 14.10 64bit with the latest pre-release updates.

I have looked around the internet but most of the tutorials seem outdated, I don't want to follow them, have something mess up and have to reinstall everything


2 Answers 2


I successfully updated my Ubuntu 14.10 installation to the 3.17.8 kernel using the Mainline builds. To update to 3.17, you have to:

  1. Download the corresponding linux-image-*-generic-* package:

    • on a 32-bit system:

      $ wget "http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.17-utopic/linux-image-3.17.0-031700-generic_3.17.0-031700.201410060605_i386.deb"
    • on a 64-bit system:

      $ wget "http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.17-utopic/linux-image-3.17.0-031700-generic_3.17.0-031700.201410060605_amd64.deb"
  2. Install the package with dpkg:

    $ sudo dpkg -i linux-image-3.17.0-*

For some configurations (special drivers, manually compiled kernel modules), you also need the linux-headers-*-generic-* packages.


I had to do this a little while ago when I bought a new sound card for my machine which was running ubuntu 12.04 at the time. I had to upgrade my kernel to 3.16.2 to get the updated sound card driver. The process is fairly straight forward. I take no responsibility for this going wrong for you, if it does :-). It worked well for me:

  1. First install the necessary packages to configure and compile your the new kernel sudo apt-get install g++ libncurses5-dev dpkg-dev
  2. Download the stable kernel from linux kernel 3.17.8 at www.kernel.org

  3. Assuming the tarball has been downloaded to your Downloads folder, move to that folder with cd ~/Downloads and then unpack the tarball with tar -xf linux-3.17.8.tar.xz.

  4. Move into the new folder with cd ./linux-3.17.8. you now need to copy a kernel config file from your /boot folder into this new kernel source folder. Copy your current kernel config file with this cp /boot/config-`uname -r` ./.config
  5. Next update the .config with the new kernel 3.17.8 options with make olddefconfig
  6. At this point if you wanted to tweak the new kernel options you could type make menuconfig to enter the kernel configuration utiltiy. Don't do this unless you really need to. There are A LOT of options, most of which most people wouldn't know anything about. You might have to find the driver for your controller and select it to include as a kernel module. With a bit of luck it will already be included. Personally I would first try to compile the kernel without making any changes to the config, and if your controller still doesn't work then edit the config and see if there is a new driver to include.
  7. To proceed with compiling the new kernel you basically run this command make deb-pkg. This will compile the new kernel and build DEB packages which you can use to install the new kernel. If you have multi-core processor, which most people do, you can speed up the compiling process by adding an argument to the make command. For example if you have a quad core then you could use make -j4 deb-pkg or if you have an 8 core processor then make -j8 deb-pkg and so on ... the compiling process will take quite a while so getting your machine to use multiple threads will help speed things up a bit. Once it's finished compiling and building the DEB packages you will find a set of DEB packages in your Downloads folder.
  8. Before you install the new kernel I would recommend you edit your grub configuration to allow you to select which kernel to boot with when you reboot your machine. This is just in case there is a problem with the new kernel and you need to boot into your old kernel. Edit the file with sudo -i gedit /etc/default/grub. Find the follwoing line in the file GRUB_HIDDEN_TIMEOUT=0 and comment it out with a #. Also find the line GRUB_TIMEOUT and set a value for it like 10 (10 seconds). This will give you a 10 second count down before the machine boots into the first kernel in the list. Once this is done and the file saved. Run this in the terminal window sudo update-grub make the changes take effect. Also, before installing the new kernel, if you are using a proprietry nvidia driver you should probably drop back to nouveau driver which comes included with the linux kernel. You can do this through the "Additional drivers" utility.
  9. You can now install the new kernel. Assuming that your terminal is still in ~/Downloads/linux-3.17.8 folder you can install with sudo dpkg -i ../linux*3.17.8*.deb.
  10. Reboot and then check which kernel is in use with uname -r. Hope this works for you. It worked well for me! One last note: if you are running a custom compiled kernel like this then you will not recieve the usual Ubuntu kernel updates for it. Eventually the ubuntu kernel will probably be updated with the updated driver for your controller and you can then go back to using the ubuntu provided kernel and continue to recieve thier updates.

I hope this helps!

Not the answer you're looking for? Browse other questions tagged or ask your own question.