Wi-Fi свистки

Обмен опытом по установке Линукс на разные аппаратные конфигурации

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Wi-Fi свистки

Непрочитанное сообщение Olej » 20 мар 2013, 17:31

Тема перешла вот отсюда: Установка и настройка USB-модемов.
tundra37 писал(а):Немного не в тему. А с WiFi-свистками нет инфы про "потроха" их настройки в Линукс?
Бывает так, что очень надо...
Поделитесь опытом?

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Wi-Fi свистки

Непрочитанное сообщение Olej » 20 мар 2013, 17:38

В одном из форумов наткнулся на такую фразу:
forkostya писал(а):У меня не было проблем с D-Link DWA 110, других не пробовал
Хотя...

В характеристиках DWA 110 пишут - http://www.dlink.ru/ru/products/7/750_b.html :
Поддержка программного обеспечения
Windows 98SE, ME, 2000, XP, Vista
Изображение
Там же написано:
Устаревшая модель - снята с производства
Буду следить там за разговором в теме ... как они его подключали...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Wi-Fi свистки

Непрочитанное сообщение Olej » 20 мар 2013, 18:51

Как показал мой поверхностный поиск, поддержка Wi-Fi адаптеров в Linux делается народом 2-мя способами:

1. Когда устройство (чипсет) не поддерживается модулями Linux.
Тогда хитро используют Windows драйвера (*.inf) из комплекта этого устройства. Для этого привлекают программный проект ndiswrapper (там на странице всё описано).
Таким способом, похоже, можно заставить работать любую модель.
Это, конечно, способ "через задницу", но он работает.
Этим делом народ мучился начиная с 2006 года (раньше я не встречал), когда ничего не поддерживалось ... а жить как-то надо.
По этому способу есть достаточно хорошие публикации (и с картинками ;-) ) - перечисляю только то, что мне понравилось:

Wi-Fi. Linux. Краткий курс
2006 г.
Владимир Попов, posix.ru
WIFI адаптеры в Linux
Последнее изменение: 25.12.2010
Иванов Аркадий
Как установить Wi-Fi адаптер в Linux используя драйвера под Windows
03 Ноя 2011
Этого более чем достаточно, чтобы подключить любой Wi-Fi свисток.

2. Для тех моделей устройств, чей чипсет поддерживается модулями Linux - прямой способ установки.
Но для этого нужно первейшим делом установить какой чипсет использует тот или иной Wi-Fi адаптер.
Так, к примеру:
- чипсет Ralink 2870 используют модели D-Link DWA-140 rev B1, TP-Link TL-WN727N, Asus USB-N13
- чипсет Ralink 3072 использует D-Link DWA-140 rev B2, ... но он распознаётся модулем под Ralink 2870
- чипсет Ralink 5372 использует D-Link DWA-140 rev B3
- чипсет Atheros 9170 используют D-link DWA-130 и DWA-160, TP-Link TL-WN821N v2, Netgear WNA1000
Жуть :-o
Отсюда уже видно, что похожие модели одних и тех же производителей используют разные чипсеты.
И даже просто надписанные маленькими буквами ревизии модели устройства - изменяют чипсет (D-Link DWA-140).
С этим нужно разбираться до покупки устройства!

На этот счёт "нативной" установки тоже есть исчерпывающие описания:

Включаем в Linux DWA-110 — USB Wi-Fi адаптер от Dlink
Опубликовано 09.10.2011 автором Гоша Багов
Создаем точку доступа Wi-Fi под Linux из USB модема
27 марта 2011 в 19:49
Этого тоже более чем достаточно, чтобы оживить Wi-Fi свисток на поддерживаемом чипсете.

P.S. А вообще, занятие это, похоже ... хорошо иллюстрируется картинкой из последней публикации:
Изображение

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Wi-Fi свистки

Непрочитанное сообщение Olej » 26 мар 2013, 12:07

Разговаривая с представителями компаний-дистрибьюторов и сервисными службами, прихожу к предположению (и в считанные дни проверю), что из сегодняшней номенклатуры WiFi USB-адаптеров должны без проблем работать, как минимум (из низшей бюджетной группы стоимости - "зачем платить дороже?"(с) ;-) ):

Изображение
TENDA W311Mi - $11

Изображение
D-Link DWA-125 - $11
D-Link DWA-140 - $16

Изображение
TP-Link TL-WN727N - $12

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Wi-Fi свистки

Непрочитанное сообщение Olej » 26 мар 2013, 12:16

Olej писал(а):(и в считанные дни проверю)
А логика проверки (кто будет это делать) элементарно простая:

Код: Выделить всё

bash-4.2$ lsusb
...
Bus 003 Device 065: ID 2001:3c1e D-Link Corp.
...
И видим своё новое USB устройство (так как в примере выглядит D-Link DWA-125).

Ищем модуль по VID:PID устройства, которые получили из lspci:

Код: Выделить всё

$ modprobe -c | grep usb: | grep -i 2001 |  grep -i 3c1e
Если получаем имя модуля - с бубном его устанавливаем...
А вот если и здесь никакой строки не получаем - то значит окончательно не повезло. ;-)
И начинаем разбираться...

Жаль, что эти проверки чаще всего приходится делать когда деньги уже уплачены. :-(

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Wi-Fi свистки

Непрочитанное сообщение Olej » 27 мар 2013, 13:51

1-е из попавших мне сегодня в руки реальных устройств "на попробовать" - D-Link DWA-125:
Изображение

Код: Выделить всё

bash-4.2$ lsusb | grep D-Link
Bus 001 Device 080: ID 2001:3c1e D-Link Corp.

Код: Выделить всё

bash-4.2$ modprobe -c | grep usb: | grep -i 2001 | grep -i 3c1e
bash-4.2$ 
Не знает система такого устройства (Fedora 17, ядро 3.5.2-1.fc17.i686.PAE).
Но знает подобные предыдущие модели D-Link, которые поддерживаются модулем rt2800usb:

Код: Выделить всё

bash-4.2$ modprobe -c | grep usb: | grep -i 2001 | grep -i p3c1
alias usb:v2001p3C15d*dc*dsc*dp*ic*isc*ip* rt2800usb
alias usb:v2001p3C17d*dc*dsc*dp*ic*isc*ip* rt2800usb
alias usb:v2001p3C19d*dc*dsc*dp*ic*isc*ip* rt2800usb
alias usb:v2001p3C1Bd*dc*dsc*dp*ic*isc*ip* rt2800usb
alias usb:v2001p3C1Cd*dc*dsc*dp*ic*isc*ip* rt2800usb
alias usb:v2001p3C1Dd*dc*dsc*dp*ic*isc*ip* rt2800usb
Журнал при подключении USB фиксирует подключение аппаратного устройства, но не более ... модуля поддержки нет:

Код: Выделить всё

bash-4.2$ dmesg | tail -n30
...
[ 3256.883975] usb 3-2.3: new full-speed USB device number 65 using uhci_hcd
[ 3256.977972] usb 3-2.3: not running at top speed; connect to a high speed hub
[ 3257.015976] usb 3-2.3: New USB device found, idVendor=2001, idProduct=3c1e
[ 3257.015983] usb 3-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3257.015987] usb 3-2.3: Product: 11n Adapter
[ 3257.015991] usb 3-2.3: Manufacturer: Ralink
[ 3257.015994] usb 3-2.3: SerialNumber: 1.0
Убил я на этот девайс 2 или 3 часа времени (это очень много), но добиться от него чего-то вразумительного пока не удалось.
D-Link, как у них всегда, в своём репертуаре: на CD море всяких Windows-ов и рассказок куда и какую кнопку на картинке жать :-( ...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Wi-Fi свистки

Непрочитанное сообщение Olej » 27 мар 2013, 13:57

Olej писал(а):1-е из попавших мне сегодня в руки реальных устройств "на попробовать" - D-Link DWA-125:
Второе из попавших мне сегодня устройств - Tenda W311M
Изображение
Устройство:
- миниатюрное - длина 38 мм.
- стандарты: 802.11n, 802.11g, 802.11b
- скорость 150 Мбит/с
- самое дешёвое среди всех устройств этого класса - ~$10 (одна из фирм г.Севастополь предлагает выслать всем желающим даже за $8).

Код: Выделить всё

[olej@nvidia Tenda]$ lsusb | grep Ralink
Bus 001 Device 004: ID 148f:5370 Ralink Technology, Corp. 
На установочном CD к устройству - целое поддерево относительно Linux (оно мне не понадобилось, но там и какие-то утилиты, и исходные коды, и для разных чипов Ralink...):

Код: Выделить всё

[olej@nvidia Tenda]$ ls
Adobe Reader  Linux      mfc90u.dll   Microsoft.VC90.CRT.manifest  msvcp90.dll  Skin
APP           Macintosh  mfcm90.dll   Microsoft.VC90.MFC.manifest  msvcr90.dll  Tenda.exe
Autorun.inf   mfc90.dll  mfcm90u.dll  msvcm90.dll                  setting.ini  User Guide

[olej@nvidia Tenda]$ tree Linux
Linux
|-- W311M W311Ma
|   |-- 2010_0223_RT3370_LinuxSTA_V2.3.0.0.tar.bz2
|   `-- 2011_0225_RT5370_RT5372_Linux_STA_V2.5.0.1_DPO.tar.bz2
|-- W311P W311P+ W322P W322P+
|   `-- 2010_07_16_RT3062_Linux_STA_v2[1].4.0.0.tar.bz2
|-- W311U W311U+ W322U W322UA W326U
|   `-- DPO_RT3070_LinuxSTA_V2[1].3.0.2_20100412.bz2
`-- W522U
    `-- 2010_0915_RT3572_Linux_STA_v2[1].4.0.2.tar.bz2

4 directories, 5 files
Как только воткнул устройство в USB:

Код: Выделить всё

[olej@nvidia ~]$ dmesg | tail -37
...
[ 7090.635035] usb 1-2: new high-speed USB device number 3 using ehci_hcd
[ 7090.766373] usb 1-2: New USB device found, idVendor=2001, idProduct=3c1e
[ 7090.766377] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 7090.766381] usb 1-2: Product: 11n Adapter
[ 7090.766383] usb 1-2: Manufacturer: Ralink
[ 7090.766386] usb 1-2: SerialNumber: 1.0
[ 7358.323317] usb 1-2: USB disconnect, device number 3
[ 7410.519539] VFS: busy inodes on changed media or resized disk sr0
[ 7605.430798] ISO 9660 Extensions: Microsoft Joliet Level 3
[ 7605.438097] ISOFS: changing to secondary root
[ 7605.439957] SELinux: initialized (dev sr0, type iso9660), uses genfs_contexts
[ 8007.312035] usb 1-3: new high-speed USB device number 4 using ehci_hcd
[ 8007.445542] usb 1-3: New USB device found, idVendor=148f, idProduct=5370
[ 8007.445546] usb 1-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 8007.445550] usb 1-3: Product: 802.11 n WLAN
[ 8007.445553] usb 1-3: Manufacturer: Ralink
[ 8007.445555] usb 1-3: SerialNumber: 1.0
[ 8007.651813] cfg80211: Calling CRDA to update world regulatory domain
[ 8007.682876] cfg80211: World regulatory domain updated:
[ 8007.682879] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 8007.682881] cfg80211:     (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 8007.682883] cfg80211:     (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 8007.682885] cfg80211:     (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 8007.682887] cfg80211:     (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 8007.682888] cfg80211:     (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 8007.815037] usb 1-3: reset high-speed USB device number 4 using ehci_hcd
[ 8007.987043] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[ 8007.988080] Registered led device: rt2800usb-phy0::radio
[ 8007.988124] Registered led device: rt2800usb-phy0::assoc
[ 8007.988160] Registered led device: rt2800usb-phy0::quality
[ 8007.988586] usbcore: registered new interface driver rt2800usb
[ 8008.069274] cfg80211: Calling CRDA for country: UA
[ 8008.074819] cfg80211: Regulatory domain changed to country: UA
[ 8008.074821] cfg80211:     (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 8008.074823] cfg80211:     (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)
[ 8008.303275] ADDRCONF(NETDEV_UP): wlan0: link is not ready

Код: Выделить всё

[olej@nvidia ~]$ lsmod | head -n10
Module                  Size  Used by
arc4                   12473  2
rt2800usb              22176  0
rt2800lib              51184  1 rt2800usb
crc_ccitt              12517  1 rt2800lib
rt2x00usb              19193  1 rt2800usb
rt2x00lib              51646  3 rt2800usb,rt2800lib,rt2x00usb
mac80211              264069  3 rt2800lib,rt2x00usb,rt2x00lib
cfg80211              164857  2 rt2x00lib,mac80211
tcp_lp                 12583  0
И :

Код: Выделить всё

[olej@nvidia ~]$ ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether f4:6d:04:60:78:6f brd ff:ff:ff:ff:ff:ff
3: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
5: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether c8:3a:35:c1:eb:3f brd ff:ff:ff:ff:ff:ff
Раз есть интерфейс wlan0, то не влезая в тонкости - создал новое соединение в Network Manager к своему существующему роутеру WiFi:

Код: Выделить всё

[olej@nvidia ~]$ iwconfig wlan0
wlan0     IEEE 802.11bgn  ESSID:"ZTE"  
          Mode:Managed  Frequency:2.462 GHz  Access Point: C8:64:C7:8A:50:16   
          Bit Rate=54 Mb/s   Tx-Power=20 dBm   
          Retry  long limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          Link Quality=53/70  Signal level=-57 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:113   Missed beacon:0
Всё поехало с пол-пинка, и на всё установление коннекта (через который сейчас и пишу) ушло не больше 10 минут.

P.S. На кой ляд мне тот D-Link, которые в 1.5-2 раза дороже? ;-)

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Wi-Fi свистки

Непрочитанное сообщение Olej » 27 мар 2013, 14:20

Olej писал(а):
Olej писал(а):1-е из попавших мне сегодня в руки реальных устройств "на попробовать" - D-Link DWA-125:
Второе из попавших мне сегодня устройств - Tenda W311M
Собственно, у них там номенклатура из нескольких устройств ... которые отличаются, похоже, только конструктивным исполнением (и стоимостью в размахе $1-2):

- W311MI
Изображение

- W311Ma - у этого съёмная внешняя антенна с усилением на 7.2dBi больше
Изображение

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Wi-Fi свистки

Непрочитанное сообщение Olej » 27 мар 2013, 15:07

Olej писал(а):Но знает подобные предыдущие модели D-Link, которые поддерживаются модулем rt2800usb:
Обратным образом, определиться с тем, есть ли ваше устройство среди поддерживаемых конкретным модулем (rt2800usb) делаем так:

Код: Выделить всё

bash-4.2$ modinfo rt2800usb
filename:       /lib/modules/3.5.2-1.fc17.i686.PAE/kernel/drivers/net/wireless/rt2x00/rt2800usb.ko
license:        GPL
firmware:       rt2870.bin
description:    Ralink RT2800 USB Wireless LAN driver.
version:        2.3.0
author:         http://rt2x00.serialmonkey.com
srcversion:     1D70BC30F17B57A8881411A
alias:          usb:v0586p341Ad*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083ApF511d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083ApD522d*dc*dsc*dp*ic*isc*ip*
alias:          usb:v083ApC522d*dc*dsc*dp*ic*isc*ip*
...
Список довольно длинный:

Код: Выделить всё

bash-4.2$ modinfo rt2800usb | wc -l
275
Но требуемое сможете отобрать из него пользуясь регулярными выражениями (фильтрами).

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Wi-Fi свистки

Непрочитанное сообщение Olej » 27 мар 2013, 15:22

Olej писал(а): 2. Для тех моделей устройств, чей чипсет поддерживается модулями Linux - прямой способ установки.
Но для этого нужно первейшим делом установить какой чипсет использует тот или иной Wi-Fi адаптер.
Перечень десятков чипсетов и соответствие их модулям ядра Linux можно найти в материалах Debian: WiFi.
Причём, перечни не только для USB адаптеров, но и для PCI и PCMCIA.

А сами исходные коды модулей для этих чипсетов находим здесь: Linux Cross Reference. Причём, с возможностью легко переходить от одной версии ядра к другой ... для выяснения с какой версии введена поддержка вашего устройства.

Теперь контекстным поиском по VID:PID интересующего устройства можно всегда найти: а). поддерживается ли устройство вообще, б). модуль, поддерживающий это устройство, в). с какой версии ядра начиная устройство поддерживается.

Это, конечно, трудоёмкий способ ... но на 100% достигающий результата, когда методы диагностики и инсталляции не помогают.

Ответить

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя