Resolving Hardware Issues with a Kernel Upgrade in Linux Mint

One evening recently, whilst climbing the wooden hills with netbook in hand, I encountered a cat who had decided that halfway up the stairs was a perfect place to catch forty winks.
One startled moggy later, I had become the owner of what I can only describe as…an ex-netbook.

Now, finally, I’ve managed to get a replacement (netbook, not cat).

As usual when I get a new machine, the first thing I did was to replace Windows with Linux Mint…with the immediate result being that the wireless card stopped working.

The solution ? Don’t (kernel) panic, kernel upgrade !

Support for most of the hardware out there is included in the Linux Kernel. The kernel is enhanced and released every few months. However, distributions, such as Mint, tend to stick on one kernel version for a while in order to provide a stable base on which to develop.
This means that, if Linux is not playing nicely with your Wireless card/web-cam/any other aspect of your machine’s hardware, a kernel upgrade may resolve your problem.
Obviously it’s always good to do a bit of checking to see if this might be the case.
It’s also good to have a way of putting things back as they were should the change we’re making not have the desired effect.

What I’m going to cover here is the specific issue I encountered with my new Netbook and the steps I took to figure out what kernel version might fix the problem.
I’ll then detail the kernel upgrade itself.

Machine details

The machine In question is an Acer TravelMate-B116.
It has an 11.6 inch screen, 4GB RAM and a 500GB HDD.
For the purposes of the steps that follow, I was able to connect to the internet via a wired connection to my router. Well, up until I got the wireless working.
The Linux OS I’m using is Linux Mint 17.3 Cinnamon.
Note that I have disabled UEFI and am booting the machine in Legacy mode.

Standard Warning – have a backup handy !

In my particular circumstances, I was trying to configure a new machine. If it all went wrong, I could simply re-install Mint and be back where I started.
If you have stuff on your machine that you don’t want to lose, it’s probably a good idea to back it up onto separate media ( e.g. a USB stick).
Additionally, if you are not presented with a grub menu when you boot your machine, you may consider running the boot-repair tool.
This will ensure that you have the option of which kernel to use if you have more than one to choose from ( which will be the case once you’ve done the kernel upgrade).

It is possible that upgrading the kernel may cause issues with some of the hardware that is working fine with the kernel you currently have installed, so it’s probably wise to be prepared.

Identifying the card

The first step then, is to identify exactly which wireless network card is in the machine.
From a terminal window …

lspci

00:00.0 Host bridge: Intel Corporation Device 2280 (rev 21)
00:02.0 VGA compatible controller: Intel Corporation Device 22b1 (rev 21)
00:0b.0 Signal processing controller: Intel Corporation Device 22dc (rev 21)
00:13.0 SATA controller: Intel Corporation Device 22a3 (rev 21)
00:14.0 USB controller: Intel Corporation Device 22b5 (rev 21)
00:1a.0 Encryption controller: Intel Corporation Device 2298 (rev 21)
00:1b.0 Audio device: Intel Corporation Device 2284 (rev 21)
00:1c.0 PCI bridge: Intel Corporation Device 22c8 (rev 21)
00:1c.2 PCI bridge: Intel Corporation Device 22cc (rev 21)
00:1c.3 PCI bridge: Intel Corporation Device 22ce (rev 21)
00:1f.0 ISA bridge: Intel Corporation Device 229c (rev 21)
00:1f.3 SMBus: Intel Corporation Device 2292 (rev 21)
02:00.0 Network controller: Intel Corporation Device 3165 (rev 81)
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)

It looks like the penultimate entry is our wireless card.
It is possible to get details of the card you have by using “Intel Corporation Device 3165” as a search term. However, we may be able to get the name of the card by running ….

lspci -vq |grep -i wireless -B 1 -A 4

In my case, this returns :

02:00.0 Network controller: Intel Corporation Wireless 3165 (rev 81)
	Subsystem: Intel Corporation Dual Band Wireless AC 3165
	Flags: bus master, fast devsel, latency 0, IRQ 200
	Memory at 91100000 (64-bit, non-prefetchable) [size=8K]
	Capabilities: <access denied>

Further digging around reveals that, according to Intel, this card is supported in linux starting at Kernel version 4.2.

Now, which version of the Kernel are we actually running ?

Identifying the current kernel version and packages

This is relatively simple. In the Terminal just type :

uname -r

On Mint 17.3, the output is :

3.19.0-32-generic

At this point, we now know that an upgrade to the kernel may well solve our wireless problem. The question now is, which packages do we need to install to effect the upgrade ?

If you look in the repositories, there appear to be at least two distinct versions of kernel packages, the generic and something called low-latency.
In order to be confident of which packages we want to get, it’s probably a good idea to work out what we have now.
This can be achieved by searching the installed packages for the version number of the current kernel.
We can do this in the terminal :

dpkg --list |grep 3.19.0-32 |awk '{print $2}'

In my case, this returned :

linux-headers-3.19.0-32
linux-headers-3.19.0-32-generic
linux-image-3.19.0-32-generic
linux-image-extra-3.19.0.32-generic
linux-kernel-generic

As an alternative, you could use the graphical Synaptic Package Manager.
You can start this from the menu ( Administration/Synaptic Package Manager).

synaptic1

Now we know what we’ve got, the next step is to find the kernel version that we need…

Getting the new kernel packages

It may well be the case that the kernel version you’re after has already been added to the distro’s repository.
To see if this is the case, use Synaptic Package Manager to search as follows :

Start Synaptic Package Manager from the System Menu.
You will be prompted for your password.

Click the Status button and select Not Installed

synaptic_search1

In the Quick filter bar, enter the text : linux-headers-4.2*-generic

synaptic_search2

This should give you a list of any kernel 4.2 versions available in the repository.

If, as I did, you find the version you’re looking for, you need to select the packages that are equivalent to the ones you already have installed on your system.
Incidentally, there are a number of 4.2 kernel versions available, so I decided to go for the latest.
In my case then, I want to install :

  • linux-headers-4.20.0-25
  • linux-headers-4.20.0-25-generic
  • linux-image-4.20.0-25-generic
  • linux-image-extra-4.20.0-25-generic

NOTE – If you don’t find the kernel version you are looking for, you can always download the packages directly using these instructions.

Assuming we have found the version we want, we need to now search for the relevant packages.
In the Quick filter field in Synaptic, change the search string to : linux-*4.2.0-25

To Mark the packages for installation, right-click each one in turn and select Mark for Installation

synaptic_select

Once you’ve selected them all, hit the Apply button.

Once the installation is completed, you need to re-start your computer.

On re-start, you should find that the Grub menu has an entry for Advanced Options.
If you select this, you’ll see that you have a list of kernels to choose to boot into.
This comes in handy if you want to go back to running the previous kernel version.

For now though, we’ll boot into the kernel we’ve just installed.
We can confirm that the installation has been successful, once the machine starts, by opening a Terminal and running :

uname -r

If all has gone to plan, we should now see…

4.2.0-25-generic

Even better in my case, my wireless card has now been recognised.
Opening the systray icon, I can enable wireless and connect to my router.

Backing out of the Kernel Upgrade

If you find that the effects of the kernel upgrade are undesirable, you can always go back to the kernel you started with.
If at all possible, I’d recommend starting Mint using the old kernel before doing this.

If you’re running on the kernel for which you are deleting the packages, you may get some alarming warnings. However, once you re-start, you should be back to your original kernel version.

The command then, is :

sudo apt-get remove linux-headers-4.2* linux-image-4.2*

…where 4.2 is the version of the kernel you want to remove.
Run this and the output looks like this…

The following packages will be REMOVED
  linux-headers-4.2.0-25 linux-headers-4.2.0-25-generic
  linux-image-4.2.0-25-generic linux-image-extra-4.2.0-25-generic
  linux-signed-image-4.2.0-25-generic
0 to upgrade, 0 to newly install, 5 to remove and 7 not to upgrade.
After this operation, 294 MB disk space will be freed.
Do you want to continue? [Y/n]

Once the packages have been removed, the old kernel will be in use on the next re-boot.
After re-starting, you can check this with :

uname -r

Thankfully, these steps proved unnecessary in my case and the kernel upgrade has saved me from hardware cat-astrophe.

Advertisements

10 thoughts on “Resolving Hardware Issues with a Kernel Upgrade in Linux Mint

  1. Mike, Thanks very much for clear explanation of how to resolve the Intel wireless problem. You easily saved me a few hours of troubleshooting when I tried to get my new Intel NUC running. The NUC is a nice little low power Intel mini PC kit. (http://www.intel.com/nuc) Linux Mint is running beautifully on it. Greg.

      • Mike,
        Thanks for an awesome, easy to read tutorial. Not only did your solution fix the wi-fi issues I was having with Linux Mint 17.3 not recognizing/finding my Intel wireless 3165 chipset, I learned a few tips that will help with Linux overall going forward.

        I have to be honest, this wasn’t the first link I clicked on, but the ones I looked at previously were confusing and not as easy to understand as yours. I’m really happy that I finally ended up here.

        Next time I need Linux help, if Mike Smithers shows up in my google search, your link will be the first one I click on.

  2. Thanks a lot Mike for your text. I appreciate the tone of it. A pleasure to read it.
    Well, I have the same problem with the Wlan Intel 3165 (rev 81) so I’ve followed the steps. But the new kernell poses a problem with my nvdia card GTX 960M.

    This is the first day in my life that I install a linux system in my laptop. First day that I run Linux.

    These last days I’ve tried to install several versions of Ubuntu: 15.10, 14.10, 13.10, 10.10 and also Fedora. None worked, because of the NVDIA graphic card except Ubuntu 10.10 but then this version didn’t recognize Ethernet device.

    Finally this morning I’ve installed Linux Mint 17.3 and everything works except the WLAN.

    I am going to stick to that but I hope that some way some where I will able to resolve this problem.

    Juan

    • Juan,

      Congratulations on your perseverance !
      Whilst there are many different Linux distros ( Ubuntu, Mint, Fedora etc) they all use the same kernel. The kernel is what makes Linux, well, Linux.
      The other thing to remember (especially when searching for help on problems such as hardware compatibility), is that Mint is based on Ubuntu.
      Ubuntu, in turn, is based on Debian. Therefore, any advice that mentions Debian or Ubuntu ( or any other Debian based distro) is likely to be helpful for Mint also.

      I’ve had a look around and found a couple of links which may help.

      This article provides details of how to install the drivers for your graphics card in what is likely to be the safest way.

      There’s this Ubuntu forum article, which may also be of interest.

      If you decide to download the drivers for your card directly from Nvidia, you can find them here (assuming you’re running 64-bit Mint).

      I hope this is of some help,

      Mike

      • Thanks a lot Mike. Sometimes it gets very frustrating all this sudo and sado and mido 🙂 and I appreciate very much your help. I am going to read these articles you point out. Thanks a lot Mike.

  3. Can u help me here, I am a more-than-newbie in linux, installed linux mint 17.3 rosa solely on my HP laptop, my wireless since then keep disconnecting after 10 – 20 minute refusing to connect unless the laptop is restarted..
    That is my network controller
    0a:00.0 Network controller: Realtek Semiconductor Co., Ltd. RTL8723BE PCIe Wireless Network Adapter
    Subsystem: Hewlett-Packard Company Device 2231

    While my Kernel is this :
    3.19.0-32-generic
    tried to update by the way u said to 4.25, after i finished, and did uname -r still had the same kernel.
    I did my update manager and drive manager, finished the recommended ones..

    What do u suggest?

    • Hi,

      these are probably things that you’ve already thought of, but just in case…

      Firstly, the kernel upgrade will take effect after a re-boot. So if you haven’t already, try rebooting and see if the Kernel has been updated.
      Another thing to check would be to see if Grub is still selecting the old kernel to boot into as it’s default.
      If neither of those are the issue, then I’d suggest you check to make sure that all of the 3.19 kernel packages you have their 4.25 equivalents installed.

      Please let me know how you get on.

      HTH,

      Mike

  4. Goodness gracious, what a wonderfully succinct and useful post! 🙂

    I am a casual Ubuntu user but have been struggling to get a Linux desktop OS going with a Dell Inspiron 15 7559 laptop, and after excising the evil that was Windows 10 have been trying one install after another. While I have had some abject failures, and a few successes, this post finally got me the last piece of the puzzle – wifi working!!

    Thank you and blessings be upon you!!

    In case anyone else stumbles on this post as I did, my experience so far w/the Inspiron 7559 was that the new 16.04 Ubuntu would not work out of the box – I was able to get the installer USB to work only after switching the Inspiron’s BIOS to legacy rather then UEFI. I also tinkered with nomodset which allowed the installer to complete… However, after installing seemingly successfully it would still hang on booting. Bummer.

    So I tried Ubuntu 15.10 with no luck at all, then finally moved to 14.04 and although it installed fine without any special tweaks – I found that not only would the sound wouldn’t work, no wifi either. Dealkiller. 😦

    Next I grabbed the latest Linux Mint 18/Cinnamon installer and saw much the same behavior as in Ubuntu 16.04. Finally grabbed Mint 17.3 Cinnamon, and lo & behold most everything worked including the sound, on a standard default install.

    Last but not least, I had no wifi. After poking around I found this post and ended up installing a new kernel per this post (in my case I chose 4.4.0-24 since that seemed to be the latest at this time)

    After a reboot, oh my goodness…graphics still worked fine w/dual screens (w/NVIDIA’s proprietary driver), sound works great including HDMI to LED TV, and wifi connecting smoothly.

    Nice, I can no go to sleep. Thanks again!!!!!

    • Weeble,

      thanks for sharing the details of your adventures with Linux installs.
      Hopefully someone else will find this useful.
      In the meantime, well done for getting it all working.
      Mike

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s