Как я решил избавиться от проводов

8 Апр
2012

Как то раз я решил избавится от кучи сетевых проводов соединяющих два десктопа
в соседних комнатах. Выбор беспроводного маршрутизатора пал на netgear
WNR3500L и два беспроводных адаптера netgear WNA3100. Основное требование — поддержка 802.11n (300mb/s). Маршрутизатор заработал после подключения
сетевого провода и стал раздавать. А вот с адаптерами возникла сложность. Дело
в том, что одна машина работает под управлением windows — там все впорядке; а
другая под управлением ubuntu — там проблема.



Netgear WNA3100 и Ubuntu


Сайт производителя не предоставляет драйвера для операционной систем на базе
linux [1].

Ок, попробуем через ndiswrapper. C первого раза драйвер загрузить не
удалось, проблема в старой версии ndiswrapper 1.56. Установил последнюю 1.57
версию. Драйвера установился и распознал устройство. Но, к сожалению адаптер
смог подключаться только к точкам с WEP и без шифрования. К точкам с другими
параметрами безопасности пытается подключится и через некоторое время
отваливается. Еще момент, при использовании WEP скорость подключения
ограничивается до 54mb/s. Очевидно, такой вариант не подходит. Было принято
решения обменять этот адаптер на что то более совместимое с linux, например
Asus N-13 [2].

Asus N-13 и Ubuntu


Сайт производителя предоставляет драйвера и для linux и windows и mac [3].

Версия для linux собралась не сразу, несовместимость драйвера с ядром 3.0.16
(а точнее с ядром выше 2.6.35). Применив патч, драйвер все таки собирается
[4]. Опять проблемы, устройство не подхватывается драйвером. Добавляем
устройство через sysfs [5]. Драйвер увидел устройство, но работать
отказывается. В syslog сыпятся сообщения вида:

RTUSB_VendorRequest failed(-71),TxFlags=0x0, ReqType=IN, Req=0x7, Index=0x400
RTUSB_VendorRequest failed(-71),TxFlags=0x0, ReqType=IN, Req=0x7, Index=0x400
RTUSB_VendorRequest failed(-71),TxFlags=0x0, ReqType=OUT, Req=0x2, Index=0x3000
RTUSB_VendorRequest failed(-71),TxFlags=0x0, ReqType=OUT, Req=0x2, Index=0x3000


Первичный анализ кода навел на мысль, что проблема с прошивкой
адаптера. Но как окажется, это не так.

Хорошо, попробуем ndiswrapper. Драйвер поставился (уже с последним
ndiswrapper). Но во время подключения устройства ядро зависает намертво, sysrq
кнопки не работают.

Последующий анализ показал, что проблема с linux драйвером связана с
несовместимостью чипсетов! Как же так? Оказывается есть две версии Asus N-13,
h/w rev A1 с чипсетом Ralink 2870 (3070) и h/w rev B1 с чипсетом Realtek 8192
[6]. Информация об этом есть на адаптере, и на торце коробке, и очень мелко. С
коробкой поставляется диск с драйверами, скорей всего там версия как раз для
rev B2, но у меня нету сиди-рома.

Драйвер для чипсета Realtek 8192 есть в убунте (ядро 3.0.16). К сожалению он
не работает. Скачиваем драйвер с realtek (можно и с asus), собираем,
ставим. Отлично, все работает! Даже WPS работает, но только через wpa_gui, но
обещают добавить в NetworkManager, правда, упоминание об этом в 2010г [7].

К сожалению до сих пор перед покупкой какого либо устройства для ОС на базе
ядра linux желательно ознакомится с их совместимостью. Отличный сайт для этого
[8], содержит кучу устройств, и статус драйверов для linux и windows. Ну и да,
быть внимательным, иметь сиди-ром.

PS:

Кто готов помочь добавить поддержку WPS в NetworkManager? Тут пишется NM [9]. Тут
видение разработчиков того как это сделать [10].

[1] support.netgear.com/app/products/model/a_id/13071
[2] www.cyberciti.biz/tips/linux-usb-wireless-compatibility-adapter-list.html
[3] www.asus.com/Networks/Wireless_Adapters/USBN13/#download
[4] linuxforums.org.uk/index.php?topic=852.0
[5] en.gentoo-wiki.com/wiki/Ralink_RT2870#When_similar_adapters_are_supported.2C_but_yours_not
[6] www.asus.com/Networks/Wireless_Adapters/USBN13_B1/#download
[7] mail.gnome.org/archives/networkmanager-list/2010-April/msg00027.html
[8] www.wikidevi.com/wiki/Main_Page
[9] code.launchpad.net/network-manager
[10] bazaar.launchpad.net/~vcs-imports/network-manager/trunk/view/head:/TODO#L337
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх