fixed-channel:-1
airmon-ng start [interface]
execute
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:
uname -r
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.