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年10月7日木曜日
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のバージョンは自分の環境に合わせてください。
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のバージョンは自分の環境に合わせてください。
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"
}
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へ変換するようにしてるんでしょう。早く直してほしいものです。
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]
@fromDBスキーマ変更
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 %>
$ 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 %>
登録:
投稿 (Atom)