Connecting via wireless has got to be in the top 10 of things people want for their computer. So many of us are opting for laptops, netbooks or tablet devices that wireless connectivity becomes a must have function. Fortunately wireless has never been easier with Linux than ever before. But there are still some cases where the driver doesn’t automatically load. I am writing this post for these situations.
First some quick background to setup the stage. Linux like other operating systems undergoes changes all the time. The main part of a Linux distribution is called the kernel. Windows and Mac OSX both have a kernel built in to their system too. You can think of it as the heart of the system. What separates Linux from OSX and Windows is the kernel undergoes development constantly and is released constantly on a pretty regular schedule. OSX and Windows develop theirs constantly too but will only release when they feel it is necessary or for new version releases. In the Linux community every distribution, Mint, Debian, Slackware, Ubuntu etc., will decide which version of the kernel they include. This can have an impact on what drivers are included since the kernel developers may decide to drop support or add support for drivers at their discretion. This part of the discussion will be left out since it can be a topic for an entire book. Also no matter what distribution, you can change the kernel but again that becomes a new topic and is recommended only for the advanced users.
With this very basic idea in mind let’s add to it a bit more. In Linux the kernel contains modules and some of those will be drivers. Wireless drivers go into this category and if they are released as open source can be adopted into the kernel. Not every driver is released as open source or as free to use and subsequently may not appear in the kernel ever. That doesn’t mean there isn’t a driver available but it does mean you may have to find it. Identifying the chipset of your wireless controller will aid you in finding that driver you need and reduce the frustration of not connecting via wireless.
The command to find the chipset make and version ID is very simple. Open a terminal window and type at the prompt:
lspci (for card type devices or internal chips) some abbreviated output you will see is:
02:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (rev 61)
This is the controller in my system and one of the lines from the command lspci. It clearly identifies the network controller coming from Intel and it is the 4965 chipset. The AG and AGN are the ratings for the card. Most common nowadays is the N rating but the G rating is still widely in use. For reference refer to the wireless protocol Wiki page where they are explained in detail.
and for USB devices type:
lsusb (mine is not USB but some sample output form the command follows);
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 05ca:1839 Ricoh Co., Ltd Visual Communication Camera VGP-VCC6 [R5U870]
You can see I have a camera and supprt for USB 1.1 and 2.0 but nothing else is connected via USB right now. If your wireless device were USB there would be a line similar to what’s above for the lspci command.
Now armed with the information of the chipset you can Google the chipset ID and the Linux version you are using. I copy from the terminal window this part:
Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (rev 61) and add what version I’m using such as Mint LMDE and I will find links for the driver and or how to’s from people with the same issues. Undoubtedly someone else has the same problem and usually someone somewhere has solved it. As I write this I did Google the first part and it appears that in 2008 there were all sorts of problems with this driver. Probably fairly new back then since now it works pretty well. But the idea here is to follow what has worked before or what people are doing now to solve the problems. No since in re-inventing the wheel unless you are a developer, then by all means write the code and share it please.
Now it should be clear that to search you need to be online. That of course is the goal wireless but if not possible then cabled or the use of another computer somewhere. Libraries are great for free access to computers and you can take the laptop and test the suggestions on the spot.
I hope this post will help someone connect to wireless when they otherwise could not. I always say that the greatest thing about Linux is the community and it stretches around the entire world. There are so many people ready and willing to help. I do suggest also to read on your own a bit too. Learn the Linux basics and the language enough to understand or ask the right questions and provide the right information. Linux at its core is the same code (kernel) and forums will generally advise to use terminal commands because of this. Different distributions may have different controls and specific questions regarding those controls will be better served in the forums for that distribution.
I have held back on very specific solutions since there are so many. My goal with the post is to help new Linux users find answers. Wireless is one of the top issues and knowing the chipset is the key to making it work. Please feel free to add information I may have left out or correct me where needed in the comments. Questions are also welcome there too.