[How to] Configuring Intel wifi on Linux

Hey there, this is an easy to follow step by step guide of how to get your intel wireless card working on Linux. I'll be covering this process in the terminal as it will work across all distros and desktop environments. Many steps can be substituted by the graphical method so feel free to do so if you wish.

Note:

I'm aware there is often a package for intel wireless on many distros but for new kernels they don't always have the newest package available especially in the case of Debian. Additionally I am attempting to make this guide generic as possible as to avoid getting too distro specific so the instructions will work across many distros.


Onto the guide,

1) Issue the following command and look through the list of output for your wireless card. Note the model number as that will be important in the following steps

lspci

It will look something like this

Note: It's often installed by default but if this command doesn't work look into installing the pciutils package for your distro.


2) Go to the following page, it's intel's official wireless firmware page for their linux stuff. Look for the firmware that matches the model number from the previous command. When you find it you will see some numbers beside it like such, this represents the kernel version that each firmware release supports

If you're unsure which kernel you have, do the following command. Download the appropriate version for your kernel

uname -r


3) Switch into your Downloads directory. This assumes that you're using the default directory that your browsers downloads go to. If you've changed that go to the new location and resume, otherwise it is the default location still (Downloads) you're OK

cd ~ && cd Downloads

4) Issue a command to view the contents of the download folder so we can verify the file is there and then know the name of it so we can extract it

ls


5) Extract the downloaded archive

tar -xf insert_name_of_file_here


6) Go into the directory of the extracted archive

cd name_of_dir_here

Note: Repeat step 4 if you're unsure what the name is. It should be the same as the download, but without any file extension as it is a directory


7) Copy the firmware to the /lib/firmware directory

sudo cp iwlwifi-*.ucode /lib/firmware


8) Just encase, modprobe to active the kernel module to assure it will work. This isn't always necessary

sudo modprobe iwlwifi

COMPLETE. This is quite straight forward, you shouldn't run into any issues, but if you do post here or make a thread in the linux helpdesk section and you'll be assisted


Extra things and troubleshooting

  • For Intel PRO/Wireless 3945 and WiFi Link 4965 devices you can use the firmware-iwlwifi package and probe the following module respective of your specific card

Intel PRO/Wireless 3945, do the following:

sudo modprobe -r iwl3945 ; modprobe iwl3945

WiFi Link 4965, do the following:

sudo modprobe -r iwl4965 ; modprobe iwl4965

sudo modprobe -r ipw2100 ; modprobe ipw2100

or

sudo modprobe -r ipw2200 ; modprobe ipw2200

If your device isn't on that list, you likely will need to look into ipw2x00 and then make sure you probe the appropriate module after installation

sudo apt install firmware-iwlwifi

and then

sudo modprobe iwlwifi iwlmvm

The package name will likely differ between distros so verify the correct package name for your distro.

  • For Debian systems these packages require the use of non-free enabled in your /etc/apt/sources.list. To add this do the following

sudo nano /etc/apt/sources.list

After where it says 'main' for the main software repo add 'non-free' with a space between them and no quotations. Save by doing 'Ctrl + x' and then pressing 'Y'. You'll need to update your cache by doing

sudo apt update

Great guide! Though, is there any advantage running the driver directly from Intel? Cause on Ubuntu 15.04 upward the intel wwan worked out the box... lets say pretty ok.
I think its the laptop causing sometimes slow throughput and disconnects. But its not as severe so I would call it non working.

Thank you :)

Nope, there isn't any special reason. The primary reason is to make a guide as generic as possible as to avoid getting too distro specific, these instructions will work on any distro. As well as this method is sometimes necessary for distros like Debian where the firmware isn't always up to the date for the newer kernels for people who custom compile theirs

I added an edit about this to make it a little clearer

1 Like

I actually just did this last night on Debian 8.2 "Jessie" for the same Intel 3160 wireless device, here are the steps.

deb http://http.debian.net/debian/ jessie main contrib non-free

apt-get update && apt-get install firmware-iwlwifi

Then reboot, works great.

Yep, for the 3160 on Debian doing what you said works wonderfully for the default kernel. Do note for either you or anyone else, newer kernels 3.17+ you require jessie-backports for the newer version of firmware-iwlwifi from stretch or to do the manual method outlined above