Имя пользователя:
Пароль:
 

Название темы: Wi-fi monitor mode
Показать сообщение отдельно

Ветеран


Сообщения: 2029
Благодарности: 704

Профиль | Отправить PM | Цитировать


Цитата Magikanin2006:
Драйвер ядра 8188eu. »
Скачал исходники этого драйвера с github. Если, конечно, это тот...
Судя по всему, драйвер не поддерживает режим Monitor. Смотрим подпрограмму установки режима из файла ioctl_linux.c:
Код: Выделить весь код
static int rtw_wx_set_mode(struct net_device *dev, struct iw_request_info *a,
			     union iwreq_data *wrqu, char *b)
{
	_adapter *padapter = (_adapter *)rtw_netdev_priv(dev);
	NDIS_802_11_NETWORK_INFRASTRUCTURE networkType ;
	int ret = 0;
	
	_func_enter_;
	
	if(_FAIL == rfpwrstate_check(padapter)) {
		ret= -EPERM;
		goto exit;
	}

	if (padapter->hw_init_completed==_FALSE){
		ret = -EPERM;
		goto exit;
	}
	
	switch(wrqu->mode)
	{
		case IW_MODE_AUTO:
			networkType = Ndis802_11AutoUnknown;
			DBG_871X("set_mode = IW_MODE_AUTO\n");	
			break;				
		case IW_MODE_ADHOC:		
			networkType = Ndis802_11IBSS;
			DBG_871X("set_mode = IW_MODE_ADHOC\n");			
			break;
		case IW_MODE_MASTER:		
			networkType = Ndis802_11APMode;
			DBG_871X("set_mode = IW_MODE_MASTER\n");
                        //rtw_setopmode_cmd(padapter, networkType);	
			break;				
		case IW_MODE_INFRA:
			networkType = Ndis802_11Infrastructure;
			DBG_871X("set_mode = IW_MODE_INFRA\n");			
			break;
	
		default :
			ret = -EINVAL;;
			RT_TRACE(_module_rtl871x_ioctl_os_c,_drv_err_,("\n Mode: %s is not supported  \n", iw_operation_mode[wrqu->mode]));
			goto exit;
	}
	
/*	
	if(Ndis802_11APMode == networkType)
	{
		rtw_setopmode_cmd(padapter, networkType);
	}	
	else
	{
		rtw_setopmode_cmd(padapter, Ndis802_11AutoUnknown);	
	}
*/
	
	if (rtw_set_802_11_infrastructure_mode(padapter, networkType) ==_FALSE){

		ret = -EPERM;
		goto exit;

	}

	rtw_setopmode_cmd(padapter, networkType);

exit:
	
	_func_exit_;
	
	return ret;
	
}
Обратите внимание, что могут быть установлены 4 режима: Auto, Ad-Hoc, Master и Managed (Infrastructure). Попытка установить любой другой вызывает сообщение об ошибке. Полный список режимов, включая неподдерживаемые:
Код: Выделить весь код
static const char * const iw_operation_mode[] = 
{ 
	"Auto", "Ad-Hoc", "Managed",  "Master", "Repeater", "Secondary", "Monitor" 
};
Конечно, возможна еще ситуация, что я скачал не те исходники. Как вариант можно попробовать какой-нибудь другой из упомянутых мной драйверов.

-------
Господа! Убедительная просьба не обращаться за консультациями в ЛС. Поверьте, создать ветку в соответствующем разделе форума гораздо эффективнее.

Это сообщение посчитали полезным следующие участники:

Отправлено: 02:26, 25-08-2013 | #4

Название темы: Wi-fi monitor mode