Wi-fi monitor mode

Ответить
Аватара пользователя
Magikanin2006

Wi-fi monitor mode

Сообщение Magikanin2006 »

Добрый день,



Есть Debian (kernel 3.4.43) и usb-wifi карата mw150us (определяется как 0bda:8179 Realtek).

Устройство видится и работает.

Как включить monitor mode ?

"iwconfig wlan0 mode monitor" выдает

Error for wireless request "Set Mode" (8B06) :

SET failed on device wlan0 ; Invalid argument.
Аватара пользователя
AMDBulldozer

Re: Wi-fi monitor mode

Сообщение AMDBulldozer »

Какой модуль ядра обслуживает эту карту? Их существует несколько. В состав ядра включен rtl8192cu в то время как сам realtek распространяет 8192cu. Есть еще 8188eu.

Вообще говоря, такое сообщение об ошибке обычно означает отсутствие поддержки данного режима драйвером. Либо данный драйвер такой режим в принципе не поддерживает, либо он был собран без поддержки этого режима. Хотя, конечно, я не могу дать гарантии, что у ошибки не может быть какой-то другой причины.



P.S. Предыдущее утверждение неверно. Сейчас попробовал выполнить команду iwconfig wlan0 mode master на своём notebook'е с адаптером WiFi на чипе Atheros и получил то же самое сообщение об ошибке, что и Вы. Однако при запуске hostapd адаптер переходит в этот режим. Значит есть и другие причины ошибки, кроме отсутствия поддержки затребованного режима.
Аватара пользователя
Magikanin2006

Re: Wi-fi monitor mode

Сообщение Magikanin2006 »

Драйвер ядра 8188eu. Где посмотреть возможность поддержки нужного режима? Исходники ядра есть, пересобрать смогу.
Аватара пользователя
AMDBulldozer

Re: Wi-fi monitor mode

Сообщение AMDBulldozer »

Цитата Magikanin2006:



Драйвер ядра 8188eu.
Wi-fi monitor mode




Скачал исходники этого драйвера с
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" 
};

Конечно, возможна еще ситуация, что я скачал не те исходники. Как вариант можно попробовать какой-нибудь другой из упомянутых мной драйверов.
Аватара пользователя
ruslandh

Re: Wi-fi monitor mode

Сообщение ruslandh »

В man`е iwconfig вообще-то прописано, что надо выдавать название mode с большой буквы, а не с маленькой, т.е.



iwconfig wlan0 mode Monitor



В man`е iwconfig вообще-то прописано, что надо выдавать название mode с большой буквы, а не с маленькой, т.е.



iwconfig wlan0 mode Monitor
Аватара пользователя
AMDBulldozer

Re: Wi-fi monitor mode

Сообщение AMDBulldozer »

Цитата ruslandh:



В man`е iwconfig вообще-то прописано, что надо выдавать название mode с большой буквы
Wi-fi monitor mode




Этот параметр не зависит от регистра. Для проверки можно выполнить команду с поддерживаемым режимом набранным в другом регистре. Или даже с орфографическими ошибками: "iwconfig wlan0 mode MANAGEDDD". До тех пор пока первые три буквы набраны правильно ("man" для managed, "mas" для master", "aut" для auto) команда не выдаст сообщения об ошибке - остальные она игнорирует.
Ответить

Вернуться в «Железо в Linux»