OpenBSD/ZaurusでUSB無線LANアダプタを使えるようにしました。
いろいろ試行錯誤しながら設定したので以下が正しいか分かりません。
環境は下記のとおりです。
OpenBSD/Zaurus: 2008/07下旬のスナップショット 随時アップデート(下記参照)
Zaurus: SL-C3000
USB無線LANアダプタ: WLI-U2-KG54-AI
WLI-U2-KG54-AIは側面に「モード切替えスイッチ」というものがあり、初期状態だと「●印: 自動インストールモード」になっています。
初期状態のままZaurusに繋げてdmesgを実行すると次のようになります。
・自動インストールモード
[root@xxx root]# dmesg
省略
uhidev0 at uhub0 port 2 configuration 1 interface 0 "BUFFALO WLI-U2-KG54-AI" rev 2.00/1.14 addr 2
uhidev0: iclass 3/1
ukbd0 at uhidev0: 8 modifier keys, 6 key codes, country code 15
wskbd2 at ukbd0 mux 1
wskbd2: connecting to wsdisplay0
wskbd2: disconnecting from wsdisplay0
wskbd2 detached
ukbd0 detached
uhidev0 detached
[root@xxx root]# usbdevs -v
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, OHCI root hub(0x0000), PXA27x(0x0000), rev 1.00
port 1 powered
port 2 addr 2: full speed, self powered, config 1, WLI-U2-KG54-AI(0x006c), BUFFALO(0x0411), rev 1.14, iSerialNumber MACアドレス
uralを使用しなければいけないのですが、なぜかuhidevを使用するようになってしまいます。
カーネルソースの sys/dev/usb/usbdevs を見ると WLI-U2-KG54-AI の Product ID が 0x0067になっていますが、usbdevs -vの結果では 0x006cになっています。
調べてみると、どうやら「モード切替えスイッチ」を「印なし: 手動インストールモード」にしないとダメなようです。
そこで手動インストールモードに切り替え、dmesgを実行すると正しくuralを使用するようになりました。
後述しますが、セルフパワー型のUSBハブを使っています。
・手動インストールモード
[root@xxx root]# dmesg
省略
uhub1 at uhub0 port 2 "Alcor Micro product 0x6254" rev 2.00/1.00 addr 2
ural0 at uhub1 port 4 "Buffalo WLI-U2-KG54-AI" rev 2.00/0.01 addr 3
ural0: MAC/BBP RT2571 (rev 0x05), RF RT2526, address MACアドレス
[root@xxx root]# usbdevs -v
Controller /dev/usb0:
addr 1: full speed, self powered, config 1, OHCI root hub(0x0000), PXA27x(0x0000), rev 1.00
port 1 powered
port 2 addr 2: full speed, self powered, config 1, product 0x6254(0x6254), Alcor Micro(0x058f), rev 1.00
port 1 powered
port 2 powered
port 3 powered
port 4 addr 3: full speed, power 400 mA, config 1, WLI-U2-KG54-AI(0x0067), Buffalo(0x0411), rev 0.01, iSerialNumber MACアドレス
/etc/hostname.ural0 に次のように記述し、/etc/netstartを実行すると無事ネットワークに繋がりました。
(試行錯誤しましたが、正しいのか分かりません)
無線LANアクセスポイントの認証方式は「WPA2-PSK」に設定しました。
[root@xxx root]# cat /etc/hostname.ural0
dhcp media autoselect mode 11g nwid SSID wpa wpapsk 256-bitのキー(0xから始まる16進数で32byte、つまり0x抜かして0〜9及びa〜fで表される64文字 すごく長い…) wpaakms psk
# dhcp media autoselect mode 11g nwid SSID nwkey persist:キー -powersave -txpower
# dhcp nwid SSID nwkey persist:キー
追記ー2008/10/01
某ゲーム機のためにWEPにしていたけど、やっぱり嫌なのでWPA2-PSKを使用することとし、/etc/hostname.ural0を変更
ホストケーブル変更後はエラーが発生していないようなので、分からないオプションは削除
[root@xxx root]# cat /etc/hostname.ural0
dhcp media autoselect mode 11g nwid SSID nwkey persist:キー -powersave -txpower
# dhcp nwid SSID nwkey persist:キー
・セルフパワー型USBハブを使う理由
WLI-U2-KG54-AIをバスパワー駆動で使うと、dmesgやusbdev -vの結果は正しいのですが、sh /etc/netstart や dhcpclient ural0 を実行するとエラーになり、その後のdmesgの実行結果は次のようになります。
ural0: could not read MAC register: IOERROR
ural0: could not read MAC register: IOERROR
ural0: could not write MAC register: IOERROR
ural0: could not read MAC register: IOERROR
ural0: could not write MAC register: IOERROR
省略
どうやらZaurusではWLI-U2-KG54-AIをバスパワー駆動出来ないみたいです。
モバイルっぽくないので、電池で動くセルフパワー型USBハブを購入してみます。
追記ー2008/07/26
/etc/hostname.ural0のオプションに-powersave -txpowerを追加。
切断されてしまうことが多かったので。
まだ切断されることは多いけど、若干マシになった気もする。(気のせい?)
追記ー2008/09/30
オプション(-powersave -txpower)をつけた後も頻繁にエラーになって通信が途切れてしまっていたのですが、USBホストケーブルを変えたらエラーにならなくなり、とても快適に通信出来るようになりました 。
オプション(-powersave -txpower)はそのままにしてあります。
追記ー2008/10/01
/etc/hostname.ural0変更。上記参照。
カーネルは9月下旬くらいにCVSでOPENBSD_4_4タグを指定して取得。