Hola,
Existe un pequeño bug en los drivers compat-wireless con algunos drivers (con el driver b43 por ejemplo, que es mi caso, ocurre) que hace que cada vez que lanzas airodump en un canal concreto te pone error explicando que el canal activo es -1 (error).
La forma de solucionar esto es editando el archivo que se encuentra en:
compat-wireless/net/wireless/chan.c
Y COMPILANDO DESPUES.
Despues de mucho buscar por internet, no encontre ningun parche generico para todas las versiones compat-wireless. Asique, edite la funcion de chan.c a mano, para aplicar a saco los cambios. La funcion de chan.c es cfg80211_set_freq, y debe quedar asi (podeis copiar y pegar sustituyendo la funcion antigua por esta, y ya funcionara):
int cfg80211_set_freq(struct cfg80211_registered_device *rdev,
struct wireless_dev *wdev, int freq,
enum nl80211_channel_type channel_type)
{
struct ieee80211_channel *chan;
struct wireless_dev *mon_dev = NULL;
int result;
if (wdev && wdev->iftype == NL80211_IFTYPE_MONITOR) {
mon_dev = wdev;
wdev = NULL;
}
if (wdev) {
ASSERT_WDEV_LOCK(wdev);
if (!netif_running(wdev->netdev))
return -ENETDOWN;
}
if (!rdev->ops->set_channel)
return -EOPNOTSUPP;
chan = rdev_freq_to_chan(rdev, freq, channel_type);
if (!chan)
return -EINVAL;
/* Both channels should be able to initiate communication */
if (wdev && (wdev->iftype == NL80211_IFTYPE_ADHOC ||
wdev->iftype == NL80211_IFTYPE_AP ||
wdev->iftype == NL80211_IFTYPE_AP_VLAN ||
wdev->iftype == NL80211_IFTYPE_MESH_POINT ||
wdev->iftype == NL80211_IFTYPE_P2P_GO)) {
switch (channel_type) {
case NL80211_CHAN_HT40PLUS:
case NL80211_CHAN_HT40MINUS:
if (!can_beacon_sec_chan(&rdev->wiphy, chan,
channel_type)) {
printk(KERN_DEBUG
"cfg80211: Secondary channel not "
"allowed to initiate communication\n");
return -EINVAL;
}
break;
default:
break;
}
}
result = rdev->ops->set_channel(&rdev->wiphy,
wdev ? wdev->netdev : NULL,
chan, channel_type);
if (result)
return result;
if (wdev)
wdev->channel = chan;
if (mon_dev)
mon_dev->channel = chan;
return 0;
}
Espero sirva de ayuda,
saludos