2010年10月7日木曜日

RaLink RT2870 チップのドライバ

RaLink RT2870用のLinux向けののUSB無線LANドライバは以下のページから入手可能です。

RaLink Corp.
http://www.ralinktech.com/support.php?s=2

そこから、RT2870向けUSBドライバ(RT2870USB(RT2870/RT2770))をダウンロード。

以下は、Debianを使った場合の設定です。恐らく、他のディストリビューションも(ファイルの場所等の違いはあっても)基本は一緒のはず。

ダウンロードしてきたファイルを展開。
~/に展開したと仮定すると、次のディレクトリが作られる。

~/2010_0709_RT2870_Linux_STA_v2.4.0.1

使用する無線LANカードに従って以下の部分を書き換える。

vi ~/2010_0709_RT2870_Linux_STA_v2.4.0.1/common/rtusb_dev_id.c

例:Buffalo WLI-UC-AG300N の場合

  {USB_DEVICE(0x0411,0x00e8)},/* Buffalo WLI-UC-AG300N */
  /* ↑この行は修正せずに以下の行を追加 */
  {USB_DEVICE(0x0411,0x012e)},/* Buffalo WLI-UC-AG300N */

例:Planex GW-USMicro300 の場合

  {USB_DEVICE(0x0411,0xED06)},/* Planex Communications, Inc. */
  /* ↑この行は修正せずに以下の行を追加 */
  {USB_DEVICE(0x0411,0xAB29)},/* Planex GW-USMicro300 */

あと、wpa_supplicantを使う場合には
 ~/2010_0709_RT2870_Linux_STA_v2.4.0.1/os/linux/config.mk
の以下の2行の”n"を"y"にする。

  HAS_WPA_SPPLICANT=y
  HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y


あとは、makeしてmake installすればOK
install後に

modprove rt2870sta

としてkernelにrt2870staモジュールを組み込めば、USB無線LANを指すと認識します。

ちなみに、kernel標準もしくはlinuxwireless.orgの無線LANドライバ(rt2800usb)が既にloadされている場合には、使用しないようにしておいた方が無難。

/etc/modprove.d/blacklist に以下を追記

blacklist rt2800usb

最後に、起動時にmoduleが読み込まれるように/etc/modulesに以下を追記

rt2870sta

2010年8月19日木曜日

Eeepc 1000HEの無線LAN for Debian Linux

rt2860sta.koで動作する。

debianであれば、/etc/apt/sources.listに
deb http://eeepc.debian.net/debian lenny main contrib non-free
を追加して
$ sudo apt-get update
$ sudo apt-get install rt2860-module-2.6.26-2-686
とかすれば認識する。kernelのバージョンは自分の環境に合わせてください。

IEEE802.11sのOSS開発情報

open80211s

http://www.open80211s.org/trac

wpa_supplicant.confの記述例

# 以下の行は変更しないでください。動作しなくなります。
ctrl_interface=/var/run/wpa_supplicant

# rootのみがWPA設定を読めることを確実にします
ctrl_interface_group=0

# wpa_supplicantにスキャンとアクセスポイントの選択を行わせます
ap_scan=1

# 単純な例。PSKをASCIIパスフレーズで指定し、WPA-PSKはすべての有効な暗号方式を許可します。
network={
ssid="simple"
psk="very secret passphrase"
# 優先度を上げれば上げるほどより早くに照合されます
priority=5
}

# 上と同じですが、特定のSSIDの検出を要求します。
# (ブロードキャストSSIDを拒否するアクセスポイント向け)
network={
ssid="second ssid"
scan_ssid=1
psk="very secret passphrase"
priority=2
}

# WPA-PSKのみが使用されます。どんな暗号の組み合わせでも認めます。
network={
ssid="example"
proto=WPA
key_mgmt=WPA-PSK
pairwise=CCMP TKIP
group=CCMP TKIP WEP104 WEP40
psk=06b4be19da289f475aa46a33cb793029d4ab3db7a23ee92382eb0106c72ac7bb
priority=2
}

# 平文接続 (WPA、IEEE 802.1X無し)
network={
ssid="plaintext-test"
key_mgmt=NONE
}

# 共有WEPキー接続 (WPA、IEEE 802.1X無し)
network={
ssid="static-wep-test"
key_mgmt=NONE
# Keys in quotes are ASCII keys
wep_key0="abcde"
# Keys specified without quotes are hex keys
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
}

# 共有キーIEEE 802.11認証を使った共有WEPキー接続 (WPA、IEEE 802.1X無し)
network={
ssid="static-wep-test2"
key_mgmt=NONE
wep_key0="abcde"
wep_key1=0102030405
wep_key2="1234567890123"
wep_tx_keyidx=0
priority=5
auth_alg=SHARED
}

# WPA-None/TKIPを使ったIBSS/ad-hocネットワーク
network={
ssid="test adhoc"
mode=1
proto=WPA
key_mgmt=WPA-NONE
pairwise=NONE
group=TKIP
psk="secret passphrase"
}

2009年4月20日月曜日

charset=CP932

Mac OSXのMail.appを使用して、○とか〜とか、①とか、特殊な文字を使うとなぜか

text/plain; charset=CP932; format=flowed; delsp=yes

で送られる。


charset=CP932なんて、ほとんどのメーラでサポート出来
てないよ。Thunderbirdなら確実に文字化けします。


charset=Windows31JとかSJISとかならまだしも。


とりあえずの対処法として、メール送信時にはUTF-8で
エンコードするようにすると勝手にCP932にならずに済
みます。



ターミナル上から

   $ defaults write com.apple.mail NSPreferredMailCharset "UTF-8"

と打って、Mailを再起動すると反映されます。


現在の設定は、


 $ defaults read com.apple.mail NSPreferredMailCharset


で確認できます。



きっと、内部で使ってるIconvのバグか何かで、特殊文字をUTF-8からSJISに変換しようとする時に落ちるので、CP932へ変換するようにしてるんでしょう。早く直してほしいものです。

2008年7月16日水曜日

ruby on rails関連の覚書

Act as Authenticatedのインストール
$ ruby script/plugin discover
$ ruby script/plugin install acts_as_authenticated
$ ./script/generate authenticated user account
$ rake db:migrate
メール認証の設定
$ ./script/generate authenticated_mailer
userconfig/environment.rb を修正 (Rails 1.2 以上)

Rails::Initializer.run do |config|
config.active_record.observers = :user_observer
end


メール送信設定
config/environments/development.rbを修正

 ActionMailer::Base.delivery_method = :sendmail

メールのサブジェクト、送信者を設定
app/models/user_notifier.rbの各メソッドの以下の値を設定
@subject
@body[:url]
@from

Activatioin機能

DBスキーマ変更

activation_code, activated_at というフィールドが必要になるので、DBにカラムを追加する
migrate/適当な数字_alter_user.rb を作成

class
AlterUsers <>
def self.up
add_column :users, :activation_code, :string, :limit => 40
add_column :users, :activated_at, :datetime
end
def self.down
remove_column :users, :activation_code
remove_column :users, :activated_at
end
end

migrate を実行
$ rake db:migrate


User モデルの変更
app/models/user.rb
class User <> before_create :make_activation_code
# loginと非暗号のパスワードから認証し、userかnilを返す
def self.authenticate(login, password)
# activated_at が NULL以外
u = find :first, :conditions => ['login = ? and activated_at IS NOT NULL', login] u && u.authenticated?(password) ? u : nil
end
# ユーザーを有効化する
def activate @activated = true update_attributes(:activated_at => Time.now.utc, :activation_code => nil)
end
# 有効化されてたら true 返す
def recently_activated? @activated
end

protected
# 有効化コードを生成する

def make_activation_code
self.activation_code = Digest::SHA1.hexdigest( Time.now.to_s.split(//).sort_by {rand}.join )
end
end

accountコントローラを修正
app/controllers/account_controller.rb

class AccountController <> :
def signup @user = User.new(params[:user]) return unless request.post? @user.save!
# self.current_user = @user
# activate するまえにログインしちゃいや

# redirect_back_or_default(:controller => '/account', :action => 'index')
redirect_to(:action => 'signup_notification') flash[:notice] = "Thanks for signing up!"
rescue
ActiveRecord::RecordInvalid render :action => 'signup'
end

def
signup_notification
end

# 有効化
def activate
@user = User.find_by_activation_code(params[:id])
if
@user and @user.activate self.current_user = @user
# redirect_back_or_default(:controller => '/account', :action => 'index')
flash[:notice] = "Your account has been activated."
end
end
end

メールの本文のテンプレートを変更
app/views/user_notifier/signup_notification.rhtml
アカウントが作成されました。 ユーザー名: <%= @user.login %> パスワード: <%= @user.password %> アカウントを有効化する為に以下のURLにアクセスしてください。 <%= @url %>

app/views/user_notifier/activation.rhtml
<%= @user.login %>さん ユーザー登録が完了しました。 <%= @url %>