- Создаем точку доступа Wi-Fi под Linux из USB модема
- Предисловие
- Запускаем драйвера. Wi-Fi, просто Wi-Fi
- Запускаем драйвера. Сильные духом
- Страшная тайна firmware!
- Танцы с бубном. Hostapd
- Лирическое отступление
- Вместо послесловия
- Помогите выбрать wifi-роутер
- Re: Помогите выбрать wifi-роутер
- Re: Помогите выбрать wifi-роутер
- Re: Помогите выбрать wifi-роутер
- Re: Помогите выбрать wifi-роутер
- Re: Помогите выбрать wifi-роутер
- Re: Помогите выбрать wifi-роутер
- Re: Помогите выбрать wifi-роутер
- Re: Помогите выбрать wifi-роутер
- Re: Помогите выбрать wifi-роутер
- Re: Помогите выбрать wifi-роутер
- Re: Помогите выбрать wifi-роутер
Создаем точку доступа Wi-Fi под Linux из USB модема
Все началось, когда я заменил материнскую плату в своем домашнем компьютере. В старой плате был встроенный USB Wi-Fi адаптер на обычном Realtek 8187, который два года исправно работал точкой доступа под Windows. В новой плате Wi-Fi модуля не было, зато у меня появился целый сервер на замечательном Intel Atom 525 с одним маленьким недостатком — в нем было очень мало PCI слотов.
Немного поразмышляв, я решил сделать невинную, как мне сначала казалось вещь — запустить программную Wi-Fi точку доступа на обычном USB адаптере. Если бы меня предупредили что меня ожидает, я бы отказался от идеи с самого начала! Я раздобыл недорогой адаптер и, только в процессе возни с ним, стал осознавать что использование «неправильного» USB на «неправильном» чипсете это настоящее насилие для Linux! Гуру Линукса отказывались от помощи!
Тем не менее, мне удалось подружить Debian 6.0 с чипсетами Ralink 2870/3070 и Atheros 9170, и я готов раскрыть эту страшную тайну всему миру!
Предисловие
В последние годы Wi-Fi система в ядре Linux подверглась серьезной доработке. Идея была очень простой — разбить подсистему на модули, вынести повторяющиеся процедуры MAC уровня в отдельные модули ядра и отдельные демоны и переписать заново драйвера физических устройств. Так появилась пачка компонентов, про которые можно почитать на сайте разработчиков: wireless.kernel.org/en/users/Documentation
Как это часто бывает, красивые теории подверглись воздействию суровой прозе жизни. В нашем случае это выглядит так: для каждого чипсета Ralink 2870/3070 и Atheros 9170 в ядро включены две версии драйверов — «old school», которые работают из коробки, но не могут быть запущена в режиме Master (режим для запуска Access Point) и новые «net-link style» которые все умеют но не работают из коробки. По-умолчанию взаимоисключающие драйвера пытаются запуститься одновременно с печальным результатом. Но довольно сетований, скорее за дело!
Запускаем драйвера. Wi-Fi, просто Wi-Fi
Если вы обычный пользователь, и хотите просто подключаться к имеющимся Wi-Fi сетям, то на Debian 6 (и других подобных убунтариях) вам нужно сделать следующее:
Для чипсета RT2870/3070 на коем собраны популярные Dlink DWA-140, TL-WN727N рекомендую оставить драйвер старого стиля rt2870sta, к которым не забываем скачать firmware.
apt-get install firmware-ralink wireless-tools
Далее идем в /etc/modprobe.d/blacklist.conf и блокируем запуск драйверов нового стиля:
После чего можно подключить USB свисток и внимательно посмотреть dmesg. Если в нем будут писать про конфликты драйверов, то вы ошиблись или не запретили все конфликтующие драйвера. Если будет написано про отсутствие firmware, значит у вас отсутствует firmware (чертовски неожиданно?). Наберите ls -l /lib/firmare должно быть что то типа такого:
-rw-r—r— 1 root root 8192 Мар 6 22:34 rt2561.bin
-rw-r—r— 1 root root 8192 Мар 6 22:34 rt2561s.bin
-rw-r—r— 1 root root 8192 Мар 6 22:34 rt2661.bin
-rw-r—r— 1 root root 8192 Мар 6 22:34 rt2860.bin
-rw-r—r— 1 root root 8192 Мар 19 11:46 rt2870.bin
-rw-r—r— 1 root root 4096 Янв 4 05:40 rt2870.bin.old
-rw-r—r— 1 root root 8192 Дек 28 2009 rt2870.bin.ralink
-rw-r—r— 1 root root 4096 Мар 6 22:34 rt3070.bin
-rw-r—r— 1 root root 4096 Мар 6 22:34 rt3071.bin
-rw-r—r— 1 root root 8192 Мар 6 22:34 rt3090.bin
-rw-r—r— 1 root root 2048 Мар 6 22:34 rt73.bin
Пытливый читатель наверно заметил подвох, мы еще вспомним о нем.
Для Ar9170 аналогичная процедура. На нем собраны Dlink DWA-130, 160 а так же очень популярный в узких кругах TL-WN821N v2. В мои же руки попал Netgear WNA1000.
apt-get install firmware-atheros wireless-tools
Блеклистим carl9170 и вперед!
Потом идем в /etc/network/interfaces и пишем там нечто вроде:
Запускаем ifup wlan0 . Далее какой нибудь графической утилитой можно подключиться к сети. Для окончательной настройки подойдет, например, «Network manager»
Если у тебя, уважаемый хабраюзер уже замигал Wi-Fi и больше ничего не требуется, то смело закрывай тему.
Запускаем драйвера. Сильные духом
Итак, настойчивый хабраюзер, несмотря на скепсис признанных гуру, мы все еще хотим запустить USB Wi-Fi в режиме точки доступа.
Для начала два простых совета по выбору адаптера:
- Все что угодно, только не Realtek!
- Остальные чипсеты/драйвера смотрим в справочнике: wireless.kernel.org/en/users/Devices/USB
Теперь вычеркнем все рекомендации из раздела «просто Wi-Fi»! 90% блогов в интернете забиты этой ерундой. Мы будем отключать драйвера старого стиля и запускать новые, которые ни черта не работают из коробки даже в новейших версиях ядер, а значит пришло время компиляции. Пока ты читаешь эту хабрастатью, разработчики наверняка исправили 1-2 бага в драйверах и добавили новый, а значит качаем самую свежую версию compat-wireless: www.orbit-lab.org/kernel/compat-wireless-2.6
Она совместима с драйверами начиная от 2.6.14
Далее следуем инструкциям: wireless.kernel.org/en/users/Download/stable
Компилируется все очень долго игнорируя флаг включения многопоточности:
declare -x CONCURRENCY_LEVEL=»4″
После компиляции и инсталляции не забываем отключить старый стиль в /etc/modprobe.d/blacklist.conf
И конечно не забываем выгрузить ранее загруженные драйвера:
Драйвера нового стиля корректно выгружать так (пригодится при отладке):
Страшная тайна firmware!
Кажется все. Запускаем modprobe … и полное разочарование! В логах опять ругается на firmware. Дело в том что новые драйвера имеют и фирмваре другое. Для Ralinka идем сюда: www.ralinktech.com/support.php?s=2 и скачиваем нечто вида RT2870_Firmware_V22.
Распаковываем и пишем в /lib/firmware, удивляясь как это файл с одинаковым именем может отличаться ровно в два раза по размеру! Внимательный читатель уже отметил этот факт раньше. Дело в том, что несколько месяцев назад разработчики объединили драйвера для чипсетов rt2870 и rt3070 в один. Не мудрствуя лукаво назвали драйвера и фирмваре по имени 2870. Вы видели на странице Ралинка фирмваре 3070? И я не видел, а оно там есть! Адаптер DWA-140 сделан на чипсете 3070 и распознается драйверами rt2800usb.
С Атеросом немного проще, идем на страницу разработчиков и скачиваем свежую версию: wireless.kernel.org/en/users/Drivers/carl9170#Firmware
Чтобы точно разобраться с фирмваре, смотрим что хочет модуль драйвера, например:
modinfo carl9170 | grep firm
А потом проверяем что необходимое фирмваре есть:
ls /lib/firmware/
Далее уже привычные манипуляции с rmmod, modprobe и lsmod и ура! Мы подняли правильные драйвера, а значит пришло время набрать заветную команду
iwconfig wlan0 mode Master
Бах! Ошибка! SET failed on device wlan0 ; Invalid argument. Неужели все было проделано зря? Конечно нет. Просто у новой подсистемы свой путь, и как это часто бывает с новым и хорошим, он категорически отрицает старое и хорошее. На форумах этот вопрос обсуждают примерно так:
— Why?
— RTFM!
— Cам ты RTFW! Небо, небо не видело такого кю!
Мануал сообщает нам что отныне все настройки для точки доступа делаются через программу hostapd: wireless.kernel.org/en/users/Documentation/hostapd
Подключаем репозиторий sid в Дебиан (во всех остальных безнадежно старые версии) и ставим новые утилиты работы с радио fw и демон hostapd
apt-getinstall iw hostapd
После чего пишем iw list и видим заветные Supported interface modes: AP, а заодно и список частот.
Танцы с бубном. Hostapd
Перед началом настройки конфига нужно знать три важные вещи.
1. Внутри этого демона сидит маленький и вредный поганец, который непредсказуемым образом меняет состояние интерфейса в процессе запуска/перезапуска. Иногда wlan0 исчезает, иногда у него исчезает IP, иногда помогает ifdown ifup, иногда не помогает. Ralink в таких условиях совсем плох, Атерос чуть стабильнее. Поэтому перед любом запуске hostapd проверяем, что радиоинтерфейс поднят, и IP адрес на нем жив. Если не удается поднять интерфейс значит применяем насилие — ребутим Линукс! (Да да это не шутка!)
2. Все настройки сначала проверяем без шифрования! И не забываем проверять dhcpd, который тоже любит умирать при перезагрузке интерфейсов. Вот почему Linux + USB = ненависть! Лучше настройку hostapd проводить без dhcp, с фиксированным IP адресе на клиенте, и лишь в конце перейти к настройке dhcpd.
3. Для проверки всегда сначала запускаем hostapd -d /etc/hostapd/hostapd.conf c диагностикой в консоль.
Теперь конфиг hostapd с пояснением. ( Update: поправлены комментарии, # не работает в конце строки)
После запуска прежде всего набираем ifconfig и видим что появился специальный интерфейс
mon.wlan0 Link encap:UNSPEC HWaddr 30-46-9A-00-6D-04-00-00-00-00-00-00-00-00-00-00
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:42603 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:3887500 (3.7 MiB) TX bytes:0 (0.0 B)
Теперь в консоли (если запускали hostapd -d) смотрим что происходит в процессе аутентификации. Если настроен WPA и соединиение не проходит дальше фазы 2/4 значит ошибочно набран пароль. Там еще можно увидеть множество непонятных сообщений.
Лирическое отступление
Так получилось, что ковырясь с hostapd я потерял всякую надежду запустить свой Dlink DWA-140 на чипсете Ralink 3070. Мне совершенно точно удалось запустить его в работу без шифрования, но при включении шифрования или я допускал ошибку, или действительно этот модуль плохо взаимодействует с ядерными модулями шифрования ( на форумах я видел описание проблемы и одна из версий решения указывала на модули шифрования ecb и arc4).
Финальный аккорд с включением шифрования я уже реализовал на Netgear WNA1000 на чипсете Atheros 9170, который действительно лучше работает и корректно подгружает все модули шифрования.
Теперь я думаю что можно таки было запустить Ralink с шифрованием и призываю поставить жирную точку в том вопросе счастливых обладателей DWA-140. Пишите о своих успехах или проблемах в комментариях, попробуем разобраться вместе.
Вместо послесловия
Теперь у нас в кладовке или на шкафу тихо жужжит маленький сервер с USB Wi-Fi адаптером, можно насладиться проделанной работой. Но не тут то было! В современной многоэтажке нашпигованной точками доступа со всех сторон идут помехи. Чтобы выбрать канал я советую изучить эфир программой InSSIDer
Вот так выглядел выбор канала у меня вечерком у окошка:
Источник
Помогите выбрать wifi-роутер
1. который умеет работать с корбиной (и по vpn, и по l2tp). 2. под linux, и чтобы туда можно было зайти по ssh. 3. чтобы к нему можно было подцепить внешний терабайтный винт по usb, и раздавать содержимое этого винта хотя бы по ftp, а лучше ещё и по nfs. 4. чтобы там можно было поднять какой-нибудь торрент-клиент. 5. с минимальной ценой из тех, которые умеют всё вышеперечисленное.
Купить желательно до нового года, то есть вариант с доставкой не очень желателен, лучше будет если туда можно самому съездить из забрать.
ЗЫ default city
Re: Помогите выбрать wifi-роутер
До нового года купить ничего не реально сейчас, тем более без доставки. Сам монитор хотел купить, а обломался, теперь буду ждать конца праздников. Ну можешь конечно попробовать на горбушку заехать, но там наценки 100%.
По требованиям подходит asus wl-500gp
Re: Помогите выбрать wifi-роутер
> По требованиям подходит asus wl-500gp
Только смотри не перепутай с WL500GP v2, который жалкий огрызок v1.
P.S. У самого wl500gp v1.
Re: Помогите выбрать wifi-роутер
ASUS «WL-500gP V2» 54Мбит/сек. + маршрутизатор 4 порта LAN + 1 порт WAN 100Мбит/сек. + 2 порта USB2.0
Re: Помогите выбрать wifi-роутер
а что отгрызено там? 🙂
Re: Помогите выбрать wifi-роутер
v1 сейчас купить даже если бы не было праздников почти нереально.
Re: Помогите выбрать wifi-роутер
Это не огрызок — это фактически абсолютно другое устройство внутри.
Re: Помогите выбрать wifi-роутер
Это то, что надо, или замаскированный v2? По телефону говорят что это именно v1, но там какой-то мутноватый тип отвечал, я ему не вполне верю.
Re: Помогите выбрать wifi-роутер
http://wl500g.info/ там есть на русском что брать а что нет и вообще много всего про них. У версии 2 эта V2 помоему на коробке офигенными буквами прописана — этоже говнобренд 🙂 они такое любят, типа v2 — generation next 🙂 а на самом деле — удешевленная модель.
Re: Помогите выбрать wifi-роутер
>они такое любят, типа v2 — generation next 🙂 а на самом деле — удешевленная модель.
аааа цензурных слов нет, обложили со всех сторон извращенцы не традиционной сексуальной ориентации
Re: Помогите выбрать wifi-роутер
Вообще-то по-русски эта фиговина называется маршрутизатором. Насчёт различий между ASUS WL-500gPremium и WL-500gPremium V2 — если это V2, то можно увидеть на коробке (фотография в каталоге Ф-Центра). Сейчас там первой версии нет, но когда она была, то в прейскуранте эти модели были отдельными строчками. Если в Москве, то первая версия сейчас есть в «Форуме». Тоже отдельные строчки в прейскуранте для обеих моделей. Так что в Oldi наверно первая версия, раз V2 является частью названия. У меня первая версия (её больше хвалили в форуме на «хоботе» и в http://www.wl500g.info — отдельный сайт по маршрутизаторам ASUS и подобным). Оказалось, что для варианта соединения с интернетом PPTP, как у меня, настроить не так уж просто — в интернете есть описание, но для меня было как-то непонятно.
Re: Помогите выбрать wifi-роутер
Там вроде всей разницы, что у v2 wifi-карта не mini-pci, а впаяна. Говно-broadcom да, но много ли людей, менявших wifi в v1? Когда и так все работает.
Источник