OBDNマガジン - OpenBlocks Developers Network Magazine
OBDNプライマルアドバイザ・後藤敏也 Toshiya Goto を責任編集者としてつづる、OpenBlocksやマイクロサーバ、Linux、オープンソースソフトウェアの最新技術やニュース定点観測ブログです。
関連情報に興味を持つ技術者や管理者に、Linux業界第一人者としての視点から見たIT最新情報をお届けします。
OpenBlocks Developers Network はこちら
http://openblocks.plathome.co.jp/support/
2012-10-07
[.tested] Planex GW-USEco300 無線LANアダプタ [AX3][A6]
Planex GW-USEco300は、802.11b/g/nに対応したUSB無線LANアダプタです。
Openblocks AX3およびA6での動作検証を行いました。
OBDN技術ブログによる動作検証は、該当するデバイスの動作を保証およびサポートを行うものではありません。
内容に関するご指摘などありましたら、ブログ記事の担当までご連絡下さい。
<検証環境>
OpenBlocks AX3/4 Debian 6.0 kernel: 3.0.6
OpenBlocks A6 Debian 6.0 kernel: 2.6.31.8
1. 対応ドライバと事前準備
AX3とA6でそれぞれ対応が異なります。
(1) AX3の場合
本デバイスは、RTL8192CUを使用しており、AX3のカーネルパッケージ3.0.6では、rtl8192cuドライバにおいてサポートされています。
本ドライバはリリースされているカーネルでは組み込み済みであり、また、上記デバイスのVendorIDおよびProductIDも登録されているため、カーネ
ルの再構築は必要ありません。
ただし、カーネルに組み込まれたrtl8192cuドライバは、別途メーカから配布されたファームウェアを読み込む仕様になっています。
このファームウェアは、debian squeezeでは
http://packages.debian.org/squeeze-backports/firmware-realtek
にあるように、firmware-realtek (0.35~bpo60+1)に含まれています。
backports/non-freeのパッケージを一時的にインストールするために、/etc/apt/sources.listに以下の行を追加します。
deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free
インストールパッケージリストをアップデートし、インストールします。
# aptitude update
# aptitude -t squeeze-backports install firmware-realtek
/lib/firmware/rtlwifi/rtl8192cufw.binがインストールされているのを確認してください。
上記作業の後、デバイスをUSBに差し込むことにより認識します。
dmesgでは以下の様に表示されます。
usb 1-1: new high speed USB device number 2 using ehci_marvell
usb 1-1: New USB device found, idVendor=2019, idProduct=ab2b
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: GW-USEco300
usb 1-1: Manufacturer: Planex Communications Inc.
usb 1-1: SerialNumber: 00e04c000001
rtl8192cu: MAC address: 00:22:cf:ab:a3:d3
rtl8192cu: Board Type 0
rtl8192cu: rx_max_size 15360, rx_urb_num 8, in_ep 1
ieee80211 phy0: Selected rate control algorithm 'rtl_rc'
usbcore: registered new interface driver rtl8192cu
デバイスは、wlan0となります。
(2) A6の場合
RTL8192CUは、A6のカーネルパッケージ2.6.31では対応していません。
そのため、Realtek社のWebページより、ドライバのソースコードパッケージを入手し、ビルドして検証を行いました。
Software: Drivers & Utilities / RTL8192CU
RTL8192CUの、Linux Kernel 2.6.18~2.6.38 and Kernel 3.0.8 の項目にあるリンクからドライバパッケージをダウンロードします。
ダウンロードしたファイルは以下の手順で解凍してください。
# unzip RTL819xC_USB_linux_v3.4.4_4749.20120806.zip
このパッケージは、ターゲットが対応する機器ならば、作成されたディレクトリへ移動し、
install.shによりインストールが行えるのですが、Openblocksは対応機器にありませんので、
以下の手順によりドライバパッケージのコンパイルおよびインストールを行います。
# cd RTL8188C_8192C_USB_linux_v3.4.4_4749.20120806/
# cd driver
# tar xvzf rtl8188C_8192C_usb_linux_v3.4.4_4749.20120730.tar.gz
# cd rtl8188C_8192C_usb_linux_v3.4.4_4749.20120730
Makefileを編集します。
同じバージョンのドライバパッケージを使用する場合は、以下のdiff出力をpatch適用して下さい。
アップデートにより内容が変更されている場合は、参考にして書き換えてください。
# diff -u Makefile.orig Makefile
--- Makefile.orig 2012-10-10 13:02:18.721606504 +0900
+++ Makefile 2012-10-10 13:02:31.901614134 +0900
@@ -36,7 +36,8 @@
CONFIG_RTL8192CU_REDEFINE_1X1 =n
CONFIG_WAKE_ON_WLAN = n
-CONFIG_PLATFORM_I386_PC = y
+CONFIG_PLATFORM_I386_PC = n
+CONFIG_PLATFORM_OBS_ARM = y
CONFIG_PLATFORM_TI_AM3517 = n
CONFIG_PLATFORM_ANDROID_X86 = n
CONFIG_PLATFORM_ARM_S3C2K4 = n
@@ -254,6 +255,17 @@
CROSS_COMPILE ?=
KVER := $(shell uname -r)
KSRC := /lib/modules/$(KVER)/build
+MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
+INSTALL_PREFIX :=
+endif
+
+ifeq ($(CONFIG_PLATFORM_OBS_ARM), y)
+EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
+SUBARCH := $(shell uname -m | sed -e s/i.86/i386/)
+ARCH ?= arm
+CROSS_COMPILE ?=
+KVER := $(shell uname -r)
+KSRC := /lib/modules/$(KVER)/build
MODDESTDIR := /lib/modules/$(KVER)/kernel/drivers/net/wireless/
INSTALL_PREFIX :=
endif
変更後、make および installを行います。
# make install
ドライバは、
/lib/modules/2.6.31/kernel/drivers/net/wireless/
の下にコピーされ、depmod -aされます。
不要になり、削除する場合は、8192cu.koを削除し、depmod -aして下さい。
デバイスをUSBポートに差し込めば認識します。
dmesgは以下の通りです。
usb 1-1: new high speed USB device using ehci_marvell and address 2
usb 1-1: string descriptor 0 read error: -75
usb 1-1: configuration #1 chosen from 1 choice
rtw driver version=v3.4.4_xxxx.20120730
Build at: Oct 5 2012 17:51:53
register rtw_netdev_ops to netdev_ops
CHIP TYPE: RTL8188C_8192C
usb_endpoint_descriptor(0):
bLength=7
bDescriptorType=5
bEndpointAddress=81
wMaxPacketSize=200
bInterval=0
RT_usb_endpoint_is_bulk_in = 1
usb_endpoint_descriptor(1):
bLength=7
bDescriptorType=5
bEndpointAddress=2
wMaxPacketSize=200
bInterval=0
RT_usb_endpoint_is_bulk_out = 2
usb_endpoint_descriptor(2):
bLength=7
bDescriptorType=5
bEndpointAddress=3
wMaxPacketSize=200
bInterval=0
RT_usb_endpoint_is_bulk_out = 3
usb_endpoint_descriptor(3):
bLength=7
bDescriptorType=5
bEndpointAddress=84
wMaxPacketSize=40
bInterval=1
RT_usb_endpoint_is_int_in = 4, Interval = 1
nr_endpoint=4, in_num=2, out_num=2
USB_SPEED_HIGH
Chip Version ID: VERSION_NORMAL_TSMC_CHIP_92C.
RF_Type is 2!!
EEPROM type is E-FUSE
====> ReadAdapterInfo8192C
Boot from EFUSE, Autoload OK !
EEPROMVID = 0x2019
EEPROMPID = 0xab2b
EEPROMCustomerID : 0x00
EEPROMSubCustomerID: 0x00
RT_CustomerID: 0x00
_ReadMACAddress MAC Address from EFUSE = 00:22:cf:ab:a3:d3
EEPROMRegulatory = 0x0
_ReadBoardType(0)
BT Coexistance = disable
RT_ChannelPlan: 0x02
_ReadPSSetting...bHWPwrPindetect(0)-bHWPowerdown(0) ,bSupportRemoteWakeup(0)
### PS params=> power_mgnt(1),usbss_enable(0) ###
### AntDivCfg(0)
readAdapterInfo_8192CU(): REPLACEMENT = 1
<==== ReadAdapterInfo8192C in 320 ms
rtw_macaddr_cfg MAC Address = 00:22:cf:ab:a3:d3
MAC Address from pnetdev->dev_addr= 00:22:cf:ab:a3:d3
bDriverStopped:1, bSurpriseRemoved:0, bup:0, hw_init_completed:0
usbcore: registered new interface driver rtl8192cu
デバイスは、
/dev/wlan0
となります。
2. wpasupplicantパッケージの導入およびインタフェースの設定
以下の記事を参照して下さい。
[.tested] Logitec LAN-W150N/U2WH(BK) 無線LANアダプタ [AX3]
上記のドライバにより、AX3、A6においてクライアントモードでの動作を確認しました。
3. hostapdによるAPモードでの使用方法
GW-USFang300と同様に、eth0とwlan0をブリッジ接続してAPモードでの設定を行いました。
上記ドライバパッケージを展開したディレクトリの下の、
wpa_supplicant_hostapdディレクトリ下にある、
wpa_supplicant_hostapd-0.8_rtw_20120510.zip
というrealtek専用のhostapdパッケージファイルを展開して、使用します。
パッケージファイルを展開し、hostapdディレクトリにてmakeを行うと、hostapdが作成されます。
hostapd.confは、wpa_supplicant_hostapdの下に、
rtl_hostapd_2G.conf
がありますので、環境に合わせて設定してください。
注意点として、このhostapdプログラムは、上記パッケージに含まれるreaktek版のドライバに依存しており、AX3のカーネル3.0.6にドライバを使用した場合は動作しません。
AX3で使用する場合は、AX3のカーネルのドライバモジュールを削除し、代わりに上記A6で導入したドライバと入れ替える必要があります。
上記のhostapdを使用して、A6とiPhone4S/Nexus7間でのWifi接続を確認しました。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿