I have various high-end PC’s, because I am really fond of lightning-fast hardware. But my development machines sometimes have issues with older kernels, because the drivers in the Ubuntu 12.04 LTS kernels that I run are outdated and do not support the kick-ass and brand-new hardware.
The reason I run 12.04 LTS is that most servers (I work with) run that version. And by running the latest long-term-stable on your development environment you can avoid writing software that cannot run on your production system, because it would simply not work there as well.
Even when you are limited to Ubuntu 12.04 LTS there are still many things you can choose. One thing you can tweak is your window manager. You can either run Ubuntu (using Unity), Xubuntu (with XFCE), Lubuntu (LXDE) or Kubuntu (KDE). You may run whatever variant you prefer, but Linus uses XFCE. My preference also goes to XFCE, and more particular Xubuntu, since it is lightweight and traditional in its layout.
The other thing you can tweak is the kernel version. You can upgrade to newer kernels if needed, even though these newer kernels are officially not supported on Ubuntu 12.04 LTS. The kind of issues that may be caused by having an old kernel include:
- Not able to recover from standby (outdated power management support)
- High power usage or noisy fan (also due to outdated power management support)
- WiFi card not detected or other wireless issues (outdated WiFi chipsets support)
- Random freezes or other stability issues (outdated motherboard chipsets support)
- Crashing window manager or other video issues (outdated video chipsets support)
NB: If your USB device or PCI card is not recognized it may be sufficient to update your PCI and USB id’s with the following command:
sudo update-pciids && sudo update-usbids
The reason to not update to the latest (13.10) Ubuntu is that apart from the kernel, also the software packages will be updated. To get the best of both worlds, you would want to update your kernel, but not update the software packages. The good news is that you can. To get the latest kernel you can either “use the package manager”, “download and install” or “compile it yourself”. This post will cover the easiest of all the options, which is “use the package manager”.
Use the package manager to get a new kernel
To list all Linux kernel meta packages in Ubuntu, execute:
maurits@nuc:~$ apt-cache search kernel | grep linux-image | grep -v "\-3\."
linux-image - Generic Linux kernel image.
linux-image-extra-virtual - Linux kernel extra modules for virtual machines
linux-image-generic - Generic Linux kernel image
linux-image-server - Linux kernel image on Server Equipment.
linux-image-virtual - Linux kernel image for virtual machines
linux-image-generic-pae - Generic Linux kernel image
linux-image-lowlatency - lowlatency Linux kernel image
linux-image-lowlatency-pae - lowlatency Linux kernel image
linux-image-current-generic - Depends on the most recently released generic kernel image.
linux-image-generic-lts-quantal - Generic Linux kernel image
linux-image-generic-lts-raring - Generic Linux kernel image
linux-image-generic-lts-saucy - Generic Linux kernel image
linux-image-hwe-generic - Depends on the generic hardware enablement kernel image and headers.
To remove all previously installed kernels:
sudo apt-get purge linux-image-* linux-headers-*
To install the latest 3.2 kernel:
sudo apt-get install linux-image-generic linux-headers-generic
To install the latest 3.5 kernel:
sudo apt-get install linux-image-generic-lts-quantal linux-headers-generic-lts-quantal
To install the latest 3.8 kernel:
sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring
To install the latest 3.11 kernel:
sudo apt-get install linux-image-generic-lts-saucy linux-headers-generic-lts-saucy
After rebooting, kernel 3.11 should be loaded. To check the kernel version after rebooting, open a terminal and type “uname -a”.
maurits@nuc:~$ uname -a
Linux nuc 3.11.0-13-generic #20~precise2-Ubuntu SMP Thu Oct 24 21:04:34 UTC 2013 x86_64 GNU/Linux
That was easy right? Updates should automatically be installed. I hope it solves your Linux hardware issues as well.