Yesterday while I was working on the new version of Wi-fEye , I found out that every time I try to use airodump-ng I get the ‘mon0: fixed channel -1’ error message , now this is a very popular one , and there are a few ways to get around it , in the past to get around this I usually set the channel when I enable monitor mode , so instead of running
airmon-ng start [interface]
airmon-ng start [interface] [target-AP-channel]
For example if your network interface is wlan0 and the target AP is running on channel 6 then the command would be
airmon-ng start wlan0 6
This unfortunately didn’t work on ubuntu 12.04 , so I decided to set the channel and enable monitor mode manually without airmon-ng.
iwconfig [interface] channel [target-channel] ifconfig [interface] down iwconfig [interface] mode monitor ifconfig [interface] up
This – sort of – did the trick , when I say sort of i mean the error message is gone , I can run airodump-ng successfully on any AP with no problems , I can assotiate with APs successfully as well , even the injection test (airmon-ng -9 wlan0) tells my that injection is working , but when I actually try to inject packets it doesn’t work :S.
At this stage I was out of ideas and had to ask google , after some googlig I decided to patch my kernel but before that I thought it could be a good idea to search for compat wireless , so I did and it was a good idea indeed.
first check you kernel version:
then install the relevant compat wireless package from the software center or using apt-get.
Then I restarted my system and BOOM , injection is working perfectly.
Now all of these ways have worked for me at some stage (depending on the kernel , the linux distro and the wifi card) , so if you are stuck with the same problem try them all and see what works for you.