In case your operating system (OS) is a member of the Windows family any built-in wireless adapter will be recognized and functioning by the OS, and any external USB wireless adapter will either run out of the box, or run after you installed the driver from the CD coming with the USB adapter. In case of an Apple laptop the OS will also know how to deal with the wireless adapter. This simple install procedure is for 99% of the users a satisfactory situation. However, not if you want to fully explore all the wireless stations in your neighborhood. For an in-depth exploration you will have to be able to put your wireless adapter in "monitor mode", rather than in the default "managed mode". You will have to use as OS a member of the Linux family if you want to put your wireless adapter in monitor mode. Of course your reason for using Linux could as well be that Linux is your favorite OS anyway.
The Linux OS is great. Nowadays I have on all my Windows laptops also installed Ubuntu, the most popular Linux flavor. Installing Ubuntu next to Windows on an original Windows computer is easy these days, as long as you have enough free disks space available. See for instance here for a guide.
Hardware manufactures will always supply drivers for Windows, but often forget to deliver Linux drivers for their hardware. So if you install Linux on your laptop you might discover that your ethernet network adapter or your wireless network adapter does not work. The Linux community is doing its best to deliver these drivers and in many cases with success. For wireless adapters the situation is complicated because there are hundreds of different types on the market.
This flood of hardware is bad news for Linux. But there is also some very good news: if you get your wireless working in monitor mode you can do many more, fascinating, things - unheard of in a Windows or Apple environment.
Out of the box
If you are lucky Linux recognizes your WiFi adapter out of the box. I bought very recently three WiFi USB adapters:
- Sitecom 150N
- Belkin Surf N300
- Icidu 300N
Linux drivers: cheap way ndiswrapper
If you are interested in only a few basic WiFi operations under Linux ndiswrapper might be the solution. The Linux program ndiswrapper wraps a windows driver in such a way that Linux can use it. You will never get more than the Windows functionality of the driver and possibly less.
WiFi not working on Linux
If your WiFi-adapter does not work because the Linux OS has not a built-in driver for it, you might find the driver on the Internet. In case of USB wireless adapters the supply of different brands is so large that the Linux community has problems in keeping up. The apparent lack of drivers is not so bad as you think. The wild zoo of wireless adapters is based on only a few chipsets. Ralink and Intel are very popular chipsets used in wireless adapters. The good news is that if your wireless uses a chipset for which a Linux driver is known you can use that driver, even if your wireless adapter is of another brand.
Finding your chipset
There are several ways of discovering what chipset is in your wireless adapter. The manufacturer gives this information only in exceptional cases. If the firmware of the adapter is of high quality the adapter will tell the system when interrogated the details about the chipset. Linux interrogates the network properties by running "
iwconfig" in a terminal window and Windows people run the command "
ipconfig /all" in a command window. But this solution begs the question: if your OS does not recognize the adapter it cannot give information about it. In a such a case you have to use the Windows version to find out, because if an adapter is not recognized by Windows it would not be on the market. To your regret you will discover that almost in any case the response of ipconfig is not detailed enough.
Use name of file containing the Windows driver
There is a method that never fails: use the name of the Windows driver. Mount your CD that came with your wireless adapter, locate the name of a windows driver. In my case I found:
- Sitecom 150N, name of file is "rtl8192cu.sys". I googled the name of the driver and I found that the chipset is RTL8192CU-GR from the company Realtek from Taiwan.
- Belkin Surf N300, name of file: rtl8192cu.sys. Surprise: exactly same chipset as the Sitecom
- Icidu 300 name of the file "athuw.sys". Googling told me it is an Atheros chipset. Opening the .inf file on the CD (is a text file) reveals it is an AR9271 from the US company Qualcomm Atheros.
You might have a working adapter on Windows, like the built-in wireless, without having the CD containing the driver. No problem. Go to Control Panel, System, Device manager. Locate the network adapter, double click on it. A tabbed window appears, click Driver, click Details and there it is: name of the drive.
Now that you have the name of the driver and the name of the chipset you can easily find the Linux driver - if available - on the Internet.
I assume now that you have a wireless adapter that is recognized by your Linux system. Can it be put in monitor mode? Well when you were looking for your Linux driver you should also look for the term "monitor mode". Sometimes more drivers are available for the same chipset, differing in their support for monitor mode and differing in their support of various Linux flavors. Linux developers often extend drivers to allow for the monitor mode.
Unfortunately a number of chipsets are not capable of being put in monitor mode, whatever driver you are using.
Now that you have name of your chipset it is quite easy to find out whether your chipset allows monitor mode. On both my HP laptops (2530p and 6930p) the built-in wireless adapers do not support monitor mode. If your adapter does not allow monitor mode, do what I did: buy a new one in the form of a USB stick. Wireless USB-adapters cost about 10$ a piece. I bought three in the hope one would do it. And indeed I was lucky.