⌨ Labor omnia vincit ☮

openSUSE :: Atheros TL-WN822N

Posted in Linux Kernel, SuSE [ru] by anaumov on 01.09.2013

TL-WN822N-atherosЦикл тестирования следующей версии нашего любимого дистрибутива в самом разгаре. Сейчас я работаю с четвертой milestone и хотел бы коротко рассказать о внешнем USB wifi-адаптере TL-WN822N от компании TP-LINK. Он соборан на основе седьмого и девятого поколения чипов Atheros Communications.

В июле 2008 г. компания Atheros решила сменить политику, наняла двух ключевых разработчиков Linux: Луиса Родригеса (исп. Luis Rodriguez) и Йоуни Малинена (фин. Jouni Malinen), выпустивших открытые драйверы для работы устройств 802.11n в Linux. Atheros также опубликовала часть исходного кода их бинарного HAL под лицензией ISC в целях помощи сообществу в добавлении поддержки чипов Atheros 802.11a/802.11b/802.11g. Компания стала принимать активное участие в разработке драйвера ath9k для Linux, с поддержкой всех нынешних 802.11n чипсетов.

Итак, драйвера ath9k и ath9k_htc открыты и включены в ядро. Тем не менее, ожидаемого результата после включения этого устройства мы не получим… но обо всем по порядку.

> cat /etc/SuSE-release
openSUSE 13.1 Milestone 4 (i586)
VERSION = 13.1
CODENAME = Bottle

> lsusb | grep Atheros
Bus 001 Device 002: ID 0cf3:7015 Atheros Communications, Inc. TP-Link TL-WN821N
v3 802.11n [Atheros AR7010+AR9287]

> lsmod | grep ath
ath9k_htc    60161  0
ath9k_common 13619  1 ath9k_htc
ath9k_hw     399060 2 ath9k_htc,ath9k_common
ath          19187  3 ath9k_htc,ath9k_common,ath9k_hw
mac80211     561264 2 ath9k_htc,b43
cfg80211     457477 4 ath9k_htc,ath,b43,mac80211

> dmesg
[ 3896.012025] usb 1-3: new high speed USB device number 2 using ehci_hcd
[ 3896.130936] usb 1-3: New USB device found, idVendor=0cf3, idProduct=7015
[ 3896.130941] usb 1-3: New USB device strings: Mfr=16, Product=32, SerialNumber=48
[ 3896.130944] usb 1-3: Product: USB WLAN
[ 3896.130947] usb 1-3: Manufacturer: ATHEROS
[ 3896.130949] usb 1-3: SerialNumber: 12345
[ 3896.515340] cfg80211: Calling CRDA to update world regulatory domain
[ 3896.602625] cfg80211: World regulatory domain updated:
[ 3896.602628] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[ 3896.602631] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 3896.602634] cfg80211: (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 3896.602636] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
[ 3896.602639] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 3896.602642] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
[ 3896.675872] usb 1-3: ath9k_htc: Firmware - htc_7010.fw not found
[ 3896.675884] ath9k_htc: probe of 1-3:1.0 failed with error -22
[ 3896.676219] usbcore: registered new interface driver ath9k_htc

У пользователей Ubuntu такой проблемы не возникнет. Не возникнет потому, что их пакет с ядром содержит все, что только можно (нужно и не нужно). У нас же это сделано более интеллигентней: firmware, которую не может найти ath9k_htc, находится в отдельном пакете, т.е. мы её устанавливаем только в том случае, если она действительно нужна. Ммм… например сейчас🙂

> sudo zypper in kernel-firmware

> rpm -ql kernel-firmware | grep htc_7010.fw
/lib/firmware/htc_7010.fw

> rpm -q kernel-desktop kernel-firmware
kernel-desktop-3.10.1-3.5.g0cd5432.i686
kernel-firmware-20130714git-1.2.noarch

После этого снова подключаем наше устройство. Ядро теперь реагирует иначе:

[  169.524112] usb 1-3: new high-speed USB device number 3 using ehci-pci
[  169.643869] usb 1-3: New USB device found, idVendor=0cf3, idProduct=7015
[  169.643888] usb 1-3: New USB device strings: Mfr=16, Product=32, SerialNumber=48
[  169.643901] usb 1-3: Product: USB WLAN
[  169.643912] usb 1-3: Manufacturer: ATHEROS
[  169.643923] usb 1-3: SerialNumber: 12345
[  169.784881] usb 1-3: ath9k_htc: Firmware htc_7010.fw requested
[  169.786161] usbcore: registered new interface driver ath9k_htc
[  169.889350] usb 1-3: ath9k_htc: Transferred FW: htc_7010.fw, size: 72992
[  169.951363] ath9k_htc 1-3:1.0: ath9k_htc: HTC initialized with 45 credits
[  170.076094] ath9k_htc 1-3:1.0: ath9k_htc: FW Version: 1.3
[  170.076104] ath: EEPROM regdomain: 0x809c
[  170.076109] ath: EEPROM indicates we should expect a country code
[  170.076114] ath: doing EEPROM country->regdmn map search
[  170.076119] ath: country maps to regdmn code: 0x52
[  170.076124] ath: Country alpha2 being used: CN
[  170.076128] ath: Regpair used: 0x52
[  170.141399] ieee80211 phy1: Atheros AR9287 Rev:2
[  170.141524] cfg80211: Calling CRDA for country: CN
[  170.150819] cfg80211: Regulatory domain changed to country: CN
[  170.150827] cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
[  170.150834] cfg80211:   (2402000 KHz - 2482000 KHz @ 40000 KHz), (N/A, 2000 mBm)
[  170.150839] cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (N/A, 3000 mBm)
[  170.150843] cfg80211:   (57240000 KHz - 59400000 KHz @ 2160000 KHz), (N/A, 2800 mBm)
[  170.150848] cfg80211:   (59400000 KHz - 63720000 KHz @ 2160000 KHz), (N/A, 4400 mBm)
[  170.150853] cfg80211:   (63720000 KHz - 65880000 KHz @ 2160000 KHz), (N/A, 2800 mBm)

После этого вы можете увидеть новый интерфейс через iwconfig или hwinfo –wlan.
Если вы используете KDE, NM-апплет сразу же добавит новый интерфейс и покажет список доступных сетей. Если же вы не используете NetworkManager, то для подключения сначала придется сделать dhcpd-запрос к рутеру. Об этом я рассказывал в статье о поддержке broadcom wifi-чипах.

Удачи, и не забвайте принимать участие в тестировании openSUSE😉

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: