最近部屋の模様替えを本気になってやっています。なんちゅーかケーブル類がやたら多いのが気にくわない!というわけでデスクトップPC2台(Windows機1+Linux機1)を1台のデュアルブートに集約、さらに無線LAN対応(WPA2PSK-AES)にすることにしました。

設定手順は以下の通り。

network-managerは大嫌いなので、削除します.
$ sudo apt-get remove network-manager

へんなドライバに邪魔されるようなので、阻止します.
$ sudo vi /etc/modprobe.d/blacklist.conf
blacklist rt2800usb (←追記)

Ralinkからドライバ RT2870_LinuxSTA_V2.3.0.0.tar.tar.bz2 をホームディレクトリあたりにダウンロードして展開します.
$ bunzip2 RT2870_LinuxSTA_V2.3.0.0.tar.tar.bz2
$ tar xvf RT2870_LinuxSTA_V2.3.0.0.tar.tar
$ cd RT2870_LinuxSTA_V2.3.0.0

os/linux/config.mkの以下の箇所を編集します.
$ vi os/linux/config.mk
# Support Wpa_Supplicant
HAS_WPA_SUPPLICANT=y

common/rtusb_dev_id.cの63行目あたりに下記の行を追記します.
$ vi common/rtusb_dev_id.c
{USB_DEVICE(0x2019,0xAB24)}, /* Planex Communications, Inc. */
(デバイスIDはlsusbコマンドで取得できます)

ドライバをコンパイルしてインストールします.
$ make
$ sudo make install

ubuntuちゃんが感じちゃうところにインストールされないようなので、場所を移動させます.
カーネルのバージョンは環境に合わせて適宜読みかえてください.
$ sudo -i
# mv /lib/modules/2.6.32-22-generic/kernel/drivers/staging/rt2870/rt2870sta.ko
/lib/modules/2.6.32-22-generic/kernel/drivers/staging/rt2870/rt2870sta.ko.bak
# cp /lib/modules/2.6.32-22-generic/kernel/drivers/net/wireless/rt2870sta.ko
/lib/modules/2.6.32-22-generic/kernel/drivers/staging/rt2870/.

OS起動時にドライバが読み込まれるようにします.
# vi /etc/modules
rt2870sta (←追記)

設定ファイルに埋め込む(難読化した)WPAパスフレーズを確認しておきます.
(psk=の行です)
# wpa_passphrase your_ssid your_passphrase

無線LANの設定ファイルを自分の環境に合わせて修正します.
# vi /etc/Wireless/RT2870STA/RT2870STA.dat
SSID=your_ssid
AuthMode=WPA2PSK
EncrypType=AES
WPAPSK=パスフレーズ

ネットワークの設定ファイルに無線LANの設定を追記します.
設定値は自分の環境に合わせてください.
# vi /etc/network/interfaces
auto ra0
iface ra0 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.254

再起動します.
# reboot

ここまでの手順で一応動作するようになりますが、カーネルのアップデートがある毎に動かないドライバに置き換えられ、再度コンパイル&コピーすることになります。それが嫌な方は DKMS(Dynamic Kernel Module Support)を使用し、カーネルのアップデート時にモジュールも自動的にコンパイルされるよう、以下の手順も行います. カーネル再構築の具体的手順については省略しますので、ご了承ください.

dkmsの設定の下準備をします.
$ sudo -i
# ln -s /home/your_account/RT2870_LinuxSTA_V2.3.0.0 /usr/src/rt2870sta-2.3.0.0
# cd /usr/src/rt2870sta-2.3.0.0

dkmsの設定ファイルを作成します.
# vi dkms.conf
PACKAGE_NAME=”rt2870″
PACKAGE_VERSION=”2.3.0.0″
BUILT_MODULE_NAME=”rt2870sta”
BUILT_MODULE_LOCATION=”os/linux”
DEST_MODULE_LOCATION=”/kernel”
MAKE=”make KVER=${kernelver}”
CLEAN=”make clean”
AUTOINSTALL=”YES”

dkmsのツリーに登録します. 確認のため、buildとインストールも行っておきます.
dkms add -m rt2870sta -v 2.3.0.0
dkms build -m rt2870sta -v 2.3.0.0
dkms install -m rt2870sta -v 2.3.0.0 –force

モジュールが/lib/modules/2.6.32-22-generic/updates/dkms配下に出来ていればOKです.
カーネルを再構築します.その際driverのstagingのところにあるrt2870をexcludeします.

おつかれさまでした. 多少作業が冗長になっているところがありますが、ご容赦ください.私は5時間かかってやっと動かせましたが、来月には型落ちになるようですね、この機種.(;;)

それにしてもWindowsなら10分くらいで終わることをここまでかかってしまうLinux、やっぱり楽しいですな。