5

I'm trying to resolve a problem with wireless connectivity on my Toshiba C55-C-184 laptop. I asked about this problem here.

It looks like the problem is with the Intel Corporation Wireless 3160 network controller. I've found a couple of posts that suggest making sure that the latest versions of linux-firmware and linux-firmware-nonfree are installed.

When I install linux-firmware I get

sudo apt-get install linux-firmware
Reading package lists... Done
Building dependency tree       
Reading state information... Done
linux-firmware is already the newest version (1.157.8).
0 to upgrade, 0 to newly install, 0 to remove and 21 not to upgrade.

so all seems OK there. But when I try to install linux-firmware-nonfree I get the following:

sudo apt-get install linux-firmware-nonfree
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package linux-firmware-nonfree

which is clearly not so good.

I did a Google search, and it seems that the package does, in fact, exist, so why can't I locate it?

As always, any help will be appreciated. Especially if you can explain why it's not working as well as how I can go about fixing it. I'm always looking to expand my working knowledge of Linux.

sempaiscuba
  • 1,433
  • 1
    I would guess it exists, but not for your Ubuntu release. The link gives no releases newer than 14.04. Your installation is probably newer. Try apt-cache policy linux-firmware-nonfree and you will see that there are no candidates for installation. – Jos Apr 26 '17 at 14:02
  • Thank you @Jos. That would explain it. I'm running 16.04. – sempaiscuba Apr 26 '17 at 14:07
  • 1
    You should use a driver in /lib/firmware called iwlwifi-3160-{something}. Do you have such a file? – Jos Apr 26 '17 at 14:08
  • Seems there are 8 of them, which should make it fun trying to identify the correct one! – sempaiscuba Apr 26 '17 at 14:15
  • 2
    Luckily you don't have to choose, the system should do that for you; and in case of doubt, the highest-numbered, which happens to be the most recent, is very probably the one you need. – Jos Apr 26 '17 at 14:17

4 Answers4

4

The reason your Ubuntu release (from previous question I assume it is 16.04) can't locate this package is that it was only released for older versions, namely Precise, and Trusty of the still supported releases.

This package won't help with the Intel iwlwifi driver anyway, as the Intel drivers traditionally are Open Source and already included in the default kernel firmware packages.

So to get a newer driver I would recommend to update the kernel to the HWE kernel (What is hardware enablement (HWE)?), or install a later Ubuntu release.

Further reading:

Takkat
  • 142,284
  • Thank you for this. Those links look helpful. Unfortunately, I don't think that I can update the kernel or install a later Ubuntu release as this laptop is going to have ROS installed and, as I understand it, ROS Kinetic only supports Ubuntu 15.10, and Ubuntu 16.04 GA at present. – sempaiscuba Apr 26 '17 at 14:31
  • 1
    With HWE kernel installed you will remain at Ubuntu 16.04 LTS. Therefore (unless ROS Kinetic really depends on kernel <= 4.4.) you should be fine. – Takkat Apr 26 '17 at 17:13
  • I figured that if I can't get the wireless working then the whole question of ROS is moot, so I ran sudo apt install linux-generic-hwe-16.04 to update the kernel. Sadly the problem is still there. Thanks for your help anyway. Back to the search ... – sempaiscuba Apr 26 '17 at 18:51
4

linux-firmware is already the newest version (1.157.8).

That's not quite true. I suggest that you download and install an even newer version and see if it helps your issue. If it does not, then tell us more and we'll propose another solution.

From the terminal:

wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.164_all.deb
sudo dpkg -i linux-firmware*.deb

Reboot and let us hear your results.

@Takkat is quite correct. Intel firmware is free and will not be found in linux-firmware-nonfree.

chili555
  • 60,188
  • Thank you @chili555. I ran the command and got a Permission Denied error. – sempaiscuba Apr 26 '17 at 14:38
  • wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.164_all.deb --2017-04-26 15:36:14-- http://mirrors.kernel.org/ubuntu/pool/main/l/linux-firmware/linux-firmware_1.164_all.deb Resolving mirrors.kernel.org (mirrors.kernel.org)... 198.145.20.143, 2620:3:c000:b:0:1994:3:14 Connecting to mirrors.kernel.org (mirrors.kernel.org)|198.145.20.143|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 34169962 (33M) [application/octet-stream] linux-firmware_1.164_all.deb: Permission denied – sempaiscuba Apr 26 '17 at 14:38
  • I think it is a temporary issue with the mirror. I just tried three times and it works for me. Please try again. – chili555 Apr 26 '17 at 16:14
  • You may have to change to your downloads directory before running wet (cd ~/Downloads). – Takkat Apr 26 '17 at 17:14
  • I think it may have been a problem with the mirror. I just ran the command again and it worked fine. However, after the reboot the problem with the wireless is still there. Since the problem is clearly not with linux-firmware-nonfree I think I should probably accept the answer from @Takkat and carry on searching for other possible causes. Thanks guys! – sempaiscuba Apr 26 '17 at 17:42
  • 2
    I suggest that you start a new question and describe your problem fully. @Takkat, I and possibly others will be happy to help. – chili555 Apr 26 '17 at 21:28
0

I ran into the same problem, and found the solution:

Add a line to your /etc/apt/sources.list like this:

deb http://ftp.de.debian.org/debian stretch main non-free

I found this answer when I tried to bypass Aptitude and download directly from Debian's package index.

David Foerster
  • 36,264
  • 56
  • 94
  • 147
0

in real life the packet linux-firmware-nonfree often doesnt have necessary firmwares. it's better to download firmwares directly from https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/refs/

Alex
  • 139