無線LAN:RaLink 0781の認識

※Linux関連記事についてはsnagplaces on @wikiにまとめていますので、そちらをご参照ください。

有線同様、認識しなかった無線LANを認識させてみます。
EeeBoxに搭載している無線LANは、よくあるAtherosやIntelではなくRaLink 0781というもののようです。

デバイスの確認

# lspci -v
03:00.0 Network controller: RaLink Unknown device 0781
Subsystem: RaLink Unknown device 2790
Flags: bus master, fast devsel, latency 0, IRQ 10
Memory at fe7f0000 (32-bit, non-prefetchable) [size=64K]
Capabilities: [40] Power Management version 3
Capabilities: [50] Message Signalled Interrupts: 64bit+ Queue=0/5 Enable-
Capabilities: [70] Express Endpoint IRQ 0

「RaLink Unknown device 0781:2790」というのがわかりました。Unknown deviceというのが気になりますが。
いろいろ調べたところ、これはRaLink社で配布しているRT2860というドライバで動くようです。 

ドライバのダウンロード

RaLinkのサイトから該当するドライバをダウンロードします。

ダウンロード先:
http://www.ralinktech.com/support.php?s=2
該当ファイル:
RT2860PCI/mPCI/PCIe/CB(RT2760/RT2790/RT2860/RT2890) ※ドライバ。Firmwareもありますが、これはVine系用みたい

# wget http://www.ralinktech.com.tw/data/drivers/2008_0918_RT2860_Linux_STA_v1.8.0.0.tar.bz2

ドライバの解凍とインストール

RaLinkのドライバは基本ドライバ以外にRaLink固有の設定ファイル(ユーティリティ)を使用する方法と、wpa_supplicantを 使用する方法の二通りあります。今回はwpa_supplicantを使わず、RaLinkのユーティリティを使う方法で認識させます。

参考サイト:

# tar vjxf 2008_0918_RT2860_Linux_STA_v1.8.0.0.tar.bz2
# cd 2008_0918_RT2860_Linux_STA_v1.8.0.0
# make
# paco -D make install

WPA-PSKネットワークキーの作成

RT2860STA.datに設定するネットワークキーは暗号化済みのものを記述する必要があります。設定編集の前にあらかじめキーを作成し、コピーしておきましょう(下線の部分)。

# wpa_passphrase SSID パスフレーズ
※例:
# wpa_passphrase GW-MF54G2 hogeHOGE
network={
        ssid="GW-MF54G2"
        #psk="hogeHOGE"
        psk=885402644dc720f6c60fdc4dbb37506c2097de4f5cf6d03c29b42c8ef5af5141
}

下線の部分をコピーしておきます。

RT2860STA.dat設定ファイルの編集

RaLinkのドライバはifcfg-xxx0の設定以外にRT2860STA.datという専用のファイルで行います。各項目の説明は、README_STAの180行目あたりに載ってます。

今回は無線通信の方式をWPAPSK、暗号化はTKIPで行います。あらかじめ無線ルータの設定もしておいてください。無線ルータはPlanex GW-MF54G2を使用しました。

# vi -b /etc/Wireless/RT2860STA/RT2860STA.dat ※設定ファイルはかならず-bでバイナリ形式で開くこと
【5行目あたり変更】国コード
CountryCode=JP
【7行目あたり変更】SSID
SSID=GW-MF54G2
【10行目あたり変更】無線周波数帯(チャンネル)
Channel=2
※Autoの設定はないようなので明示する必要があります。
【21行目あたり変更】認証方式
AuthMode=WPAPSK
【22行目あたり変更】暗号化方式
EncrypType=TKIP
【23行目あたり変更】ネットワークキー
WPAPSK=e21557149a241d690962a30cb4eef119f843fb14b2201557ab5b644a5e69c3a8
【41行目あたり変更】無線の形態(自動)
HT_MpduDensity=0
【42行目あたり変更】1チャネルあたりの周波数幅を20MHzに固定
HT_BW=0
【43行目あたり変更】Bandなんたらを自動にしない?
HT_AutoBA=0

必要な項目だけ記述するだけではちゃんと動作しないみたいなので、Defaultのファイルを元に設定を変更していったほうが無難です。ちなみに、この設定ファイル1本でWEP用の設定もできるようになっているそうです。

ifcfg-ra0の編集

ネットワーク用の設定ファイルifcfg-ra0を編集します。ドライバを読む際にath0でもwlan0でもなくra0として認識するので、設定ファイルもそれに合わせてifcfg-ra0という形になります。

有線LANなどの一般的な設定をifcfg-ra0に記述してネットワークに接続させると問題なく繋がるのですが、以下のようなエラーメッセージが出ます。

Error for wireless request "Set Mode" (8B06) :
    SET failed on device ra0 ; Network is down.
Error for wireless request "Set Frequency" (8B04) :
    SET failed on device ra0 ; Network is down.
Error for wireless request "Set Bit Rate" (8B20) :
    SET failed on device ra0 ; Network is down.
Error for wireless request "Set Encode" (8B2A) :
    SET failed on device ra0 ; Network is down.

Linux Certif – Man ifcfg(5)」 によると、ifcfgにはWifi用の指定方法がちゃんとあるようで、この記述に従って設定を行うとある程度エラー抑えることができました(それでも Set FrequencyとSet Encodeは消えなかった)。本来はこの辺のエラーが出るとつながらなくなるものなのでしょうが、IPアドレス関係の設定以外はすべて RT2860STA.datにあるため接続できるのだろうなと思います。気になる方は設定してみてください。

以下の設定項目は、外部公開用のIPアドレス固定指定と、上記の対策をできるだけ行ったものになっています。ESSIDやらはすでにRT2860~で設定済みなので、実際は書かなくてもいいはずの項目です。

# vi /etc/sysconfig/network-scripts/ifcfg-ra0

DEVICE=ra0
BOOTPROTO=none
IPADDR=192.168.24.202
NETMASK=255.255.255.0
BROADCAST=192.168.24.255
GATEWAY=192.168.24.1
USERCTL=no
HWADDR=WifiのMACアドレス
ONBOOT=yes
TYPE=Wireless
IPV6INIT=no
PEERDNS=yes
MII_NOT_SUPPORTED=yes
WIRELESS_ESSID=GW-MF54G2
WIRELESS_ENC_KEY=xxxx-xxxx-xxxx-xxxx-… ※iwconfigのEncryption keyの値
CHANNEL=2
WIRELESS_MODE=Managed
WIRELESS_RATE=Auto
WIRELESS_FREQ=2.417GHz ※iwconfigのFrequencyの値

いろいろ設定はしましたが、Set Encode・Set Freqencyのエラーは消えませんでした。それでも問題なくつながってはいるんですが・・・

もしWifiをメインで使用する場合は有線LANの設定ファイル(ifcfg-eth0)のONBOOTをnoにしてください。

デバイスの関連付け

# vi /etc/modprobe.conf
【追記】
alias ra0 rt2860sta

これで再起動してもWifiで接続できます。

なんかエラー出てる

ログを眺めていると、「kernel: ERROR!!! RTMPCancelTimer failed, Timer hasn’t been initialize!」というエラーが10分ごとに出ています。キーワードで調べるとrt2860staがなにかしている位しかわからず、明確な解決方法が見つかりませんでした。RaLinkのサイトでは比較的ドライバの更新が頻繁なので、更新しているうちに治るかもしれませんが・・・

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中