2009年8月1日土曜日

WLI-UC-G を Mac mini (PowerPC) で使う


※補足説明を追記しました

※HaloScanサービス停止で閲覧できなくなったコメントを追記しました。


 激安USB無線LAN子機である BUFFALO WLI-UC-G を、MacOS X でも使用可能と勘違いして購入してしまった。最近は、802.11n という規格の普及が進んでいるようだが、ネット環境が ADSL である我が家では 802.11g で十分で、つい価格につられてしまった。

 しかし、主要部品であるチップセットの型式が分かり、その MacOS X 用ドライバがあればなんとかなるはずだ。ネットを探しまわって情報をかき集めたが、どれも断片的な情報で要領を得ない。格闘する事半日。なんとか使用可能となるように設定できた。例によって、これから同じ道をたどる事になるかもしれない人の為にメモを残す。

 まず、WLI-UC-G のチップセットは、たいていのサイトに書かれているように Ralink 社製だが、型式がはっきりしなかった。Linux での導入実績情報によると、TR2500(RT73) という型式のようだ。

 ドライバは、Ralink 社のサイトからいただく。ここの、"USB (RT257x/RT2671)" とかかれている方を落とす。
 "RTUSB D71w-1.2.4.0_D2500-1.1.3.0 UI-1.6.8.0_2008_12_04.dmg"
というファイルネームとなる。DiskImageMounter で開いて 10.5 用のインストーラを起動する。と、ここまでで一段落つくが、ここからの道は長い。

 ここから先は、Unix の shell の扱い方に慣れていないと厳しい。不慣れな人は、少し予習しておくと良いかもしれない。

 設定ファイルを書き直す。順を追って処理する。

 ・Finder から、ユーティリティのターミナル.app を起動する
 ・cd /System/Library/Extensions と入力する
 ・sudo chmod 777 RT73USBWirelessDriver.kext と入力する
   このとき、パスワードを求めらたら、
   アプリケーションのインストール時に打ち込むパスワードと同じものを入力する
 ・cd RT73USBWirelessDriver.kext と入力する
 ・sudo chmod 777 Contents と入力する
 ・cd Contents と入力する
 ・sudo chmod 777 Info.plist と入力する

 ここまできたら、テキストファイルを編集する必要がある。同じターミナル(シェル)上で動作するテキストエディタ vim があるのでこれを使う。

 ・vim Info.plist と入力する
  テキストエディタが起動し、Info.plist が編集できるようになる
  基本的には Windows のメモ帳と同じ感覚で操作できるはずだ
  ページのなかで、<key>Buffalo</key> と書かれている部分を探す
  その下に、 <dict> から </dict> まで囲まれている部分があるので確認する
  そこが今回の目的の製品の設定情報となる
  ここの
    <key>idProduct</key>
    <integer>216</integer>
  と、かかれている2行を探し出し、2行目の 216 を 311 に書き換える
    <key>idProduct</key>
    <integer>311</integer>
  ※この、311 は製品のバージョンによって変更されるかもしれない
   確認の仕方は後述する

  編集し終わったらセーブして終了する
  セーブの仕方は、
    ・エスケープキーを1回押す
    ・「:(コロン)」を1回押す
      画面左下に「:」が出現する
    ・wq と入力して、最後にエンターキーを押す
 これで、設定は終了。変更してきたファイルパーミッションを戻そう。

 ・sudo chmod 755 Info.plist と入力する
 ・cd .. と入力する
 ・sudo chmod 755 Contents と入力する
 ・cd .. と入力する
 ・sudo chmod 755 RT73USBWirelessDriver.kext と入力する

 次に設定変更をシステムに通知する。キャッシュのリフレッシュという作業らしい。

 ・sudo /usr/sbin/kextcache -k /System/Library/Extensions

 画面に特に変化は起きないが、これで終了。マシンを再起動する。
 再起動したら、WLI-UC-G を USB ポートに挿す。USBWirelessUtility というツールが自動起動する。無線LAN親機のセキュリティ設定にあわせてセッティングすれば、無事、ネットワーク接続が可能になるはずである。

 WLI-UC-G の idProduct (製品番号)の調べ方は以下の通り。
 ・Finder の「この Mac について」を選び、ダイアログの「詳しい情報」ボタンを押す
 ・システムプロファイラが起動するので、USB の項目を確認する
   BUFFALO WLI-UC-G とかかれたデバイスが確認できる
   ここの製品 ID が、idProduct にあたる。
   ただし、16進数表記になっているので、Info.plist に記入する際には、
   10進数に変換しておく必要がある。

 以上、ざっとではあるが手順を説明した。誰かの助けになりますように。

----------------------------

【補足追記】
 自分の環境で、上記手順でいったん接続が完了したが、再起動後にデバイス設定が不正である、という意味の警告メッセージが出て使用不能となった。調べると、もう一カ所設定ファイルを修正する必要があったので追記する。

 ・以下のファイルが編集できるように準備する
   "/System/Library/Extensions/RT73USBWirelessDriver.kext/Contents/Resources/RT73-Universal-Info.plist"
   手順としては、上で説明したのと同じ手順で sudo chmod をしていき、RT73-Universal-Info.plist を vim で編集すればよい。

 ・編集箇所
   これも上記と同じように Buffalo 製品情報の記述箇所を探し、
   idProduct を 311 に書き換えるだけ

 ・キャッシュのリフレッシュとマシンの再起動を行う

 以上で、再起同時に OS が警告を出さなくなったので、問題ないと思われる。

【vim追記】
 vim の編集結果を破棄して終了(要するにキャンセル終了)したい場合は、wq とタイプするところを q のみとすれば良い。
 w は write (書き込み)を意味し、q は quit (中断、終了)を意味する。

 Info.plist を編集し損なった場合に備えるために、バックアップファイルを作っておくのも良いかもしれない。ファイルのコピーは cp コマンドを使う。例えば、

  cp Info.plist Info.plist.orig

 とする。拡張子が書き変わるが全く問題ない。編集に失敗したらオリジナルからコピーしなおせば良い。

  cp Info.plist.orig Info.plist


【ユーティリティのターミナル.app 追記】
 起動するのは Unix shell の bash である。cd コマンドで長ったらしい呪文のようなフォルダ(ディレクトリ)名を入力するのは大変だが、bash にはコマンド補完機能というものがあり、大変便利なので活用して欲しい。

例えば、

 cd /S

まで打ち込んで TAB キーを押すと、

 cd /System

と、勝手に補完してくれる。上の例の場合、もし他にも S で始まるフォルダやファイルがある場合には、補完は行われない。なぜなら、どれを選んで良いか shell には分からないからだ。
 そういう場合には、もう一度 TAB キーを押すと、候補の一覧が表示される。先頭からの文字列が十分に特定可能になるまでは、手動で文字を打ち込む必要がある。が、たいていの場合 TAB 一発で解決できることが多い。

【その他コマンド追記】
 sudo とは、一時的に root 権限(マシンの管理者権限)で指定されたコマンドを実行するコマンド。
 chmod は、ファイルやフォルダのパーミッション(アクセス権限)を書き換えるコマンド。
パラメータやその意味については Linux の解説サイトなどで確認できる。

【USB Wireless Utility】
 WLI-UC-G が USB ポートに挿さっていると、自動的に USB Wireless Utility が起動する。これは、WLI-UC-G の無線LAN機能を制御するプログラムで、サーバのようにバックグラウンド動作をするものではないようだ。しかも、自動接続はしないので手動で接続する必要がある。(ただし起動時の1回だけ)※自動接続するようだ。筆者の環境で親機とのネゴに時間がかかっていた模様。

 プロファイルタブで、接続設定(プロファイル)を作っておかないと毎回接続設定を記入する事になる。プロファイルを用意しておけば、それを選択して有効化をクリックするだけで良い。

【筆者環境】
 これを書いておかなければ参考にならないだろう
 Hard : Mac mini
 CPU : 1.42 GHz PowerPC G4
 MEM : 1GB
 OS : Mac OS X 10.5.7

【無保証】
 お約束なので明記しておく。
 この記事は、個人的な研究を記事にしたものであり、嘘を書いているつもりはないが、同様の作業をした場合に読者の環境によってはシステムに障害をもたらすかもしれない。だが、発生した障害について筆者は一切の責任を負わないので、自己責任において作業していただきたい。

以上。

----------------------------
【HaloScan停止により閲覧できなくなったコメントを追記】

せっかくいただいた大事なコメントなので、ここに追記させていただきます。

2009-10-25T14:24:57-05:00
ogawa さん

参考にさせて頂きました。
完全に手順通りで、うちの環境でも成功しました。ありがとうございます。
環境はOSX10.4.11、iBookG4です。
USBのidProductはうちも0x0127でした。

ちなみにリンクからドライバを得られなかったため、URLを貼っておきます。
http://driverscollection.com/?H=RT257x&By=Ralink
"USB (RT257x/RT2671) mac"で検索すればTOPに出ますが。


2009-11-10T10:15:14-05:00
haru@kita さん
OSX10.3.9 macmini にて動作しました。
linux でndiswrapper で使おうと思って買ったのですが..Fedora 9-->10のupgrade でgdm ログイン出来なくなってしまい...そんなおりに「ふくしまさん」のブログを知り、楽しそうなのでさきほど試してみました。SSID などが前に使っていたGW-US54Mini2 (接続が危ういです)のデータをそのまま引き継いでくれたのでただ、ネットワークの設定をするのみでとても楽でした。とても貴重な情報をありがとうございました。