2010年12月21日

fit-PC2iをアクセスポイント化した

Filed under: Computing,Linux — nabecyan @ 11:58 AM

fit-PC2iのRalink RT3070 USB無線LANを使ってアクセスポイント化することに成功したので、メモとして残しておく。

OS:ubuntu 10.04 (Kernel 2.6.32-27)

無線LAN:Ralink RT3070 USB

レシピ
1. 最初に古いモジュールを探して全部無効化する。
sudo lsmod | grep rt2 sudo rmmod rt2800usb
…関連するモジュールはすべてrmmodしちゃう。

2. 古いドライバの在処を調べてどこか別の場所(今回は/root/tmp/old_rt2xxx_driversってディレクトリ下)に移動する。
sudo updatedb sudo locate rt2800usb.ko
sudo locate rt2800lib.ko sudo locate rt2x00usb.ko
sudo locate rt2x00lib.ko sudo locate rt2870sta.ko
で、これらすべてを/root/tmp/old_rt2xxx_drivers/以下に引っ越してからtarで固める。

3. http://wireless.kernel.org/ から最新のcompat-wirelessドライバを取ってくる。
$ wget http://wireless.kernel.org/download/com … 20.tar.bz2

4. compat-wirelessドライバをコンパイルする。
tar xfv compat-wireless-2010-12-20.tar.bz2 cd compat-wireless-2010-12-16
./scripts/driver-select rt2x00 make && make install

5. hostapdをインストールする。(AP化するため)
sudo apt-get install hostapd

6. bridge-utilsをインストールする。(ブリッジ化するため) sudo apt-get install bridge-utils

7. /etc/hostapd/hostapd.confを適宜編集
今回はテストのためにWEP認証にした。勿論WPA/WPA2でも問題ないはず。
vi /etc/hostapd/hostapd.conf
interface=wlan0
bridge=br0
driver=nl80211
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
dump_file=/tmp/hostapd.dump
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
ssid=TEST_AP
country_code=JP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=3
ignore_broadcast_ssid=0
wep_default_key=0
wep_key0=********** <-WEPキー
ieee80211n=1
wpa=0

8. /etc/network/interfacesを編集して、Ethernet〜WiFi間ブリッジの設定をする。 sudo vi /etc/network/interfaces
auto lo
iface lo inet loopback
auto wlan0
iface wlan0 inet manual
wireless-mode master
auto eth0
iface eth0 inet manual
auto br0
iface br0 inet static
address 192.168.11.111
network 192.168.11.0
broadcast 192.168.11.255
netmask 255.255.255.0
gateway 192.168.11.1
pre-up ifup eth0
pre-up ifup wlan0
post-down ifdown eth0
post-down ifdown wlan0
bridge_ports eth0 wlan0
bridge_stp off
bridge_fd 0
bridge_maxwait 0

9. fit-PC2iを再起動して、ちゃんと動くか確認する。
sudo iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
eth1 no wireless extensions.
wlan0 IEEE 802.11bgn Mode:Master Frequency:2.437 GHz Tx-Power=20 dBm
Retry long limit:7 RTS thr=2347 B Fragment thr=2346 B
Power Management:on
br0 no wireless extensions.
mon.wlan0 IEEE 802.11bgn Mode:Monitor Tx-Power=20 dBm
Retry long limit:7 RTS thr=2347 B Fragment thr=2346 B
Power Management:off
sudo ifconfig wlan0

wlan0     Link encap:イーサネット  ハードウェアアドレス 00:0d:f0:63:99:4c
inet6アドレス: fe80::20d:f0ff:fe63:994c/64 範囲:リンク
UP BROADCAST MULTICAST  MTU:1500  メトリック:1
RXパケット:2831 エラー:0 損失:0 オーバラン:0 フレーム:0
TXパケット:245636 エラー:0 損失:0 オーバラン:0 キャリア:0
衝突(Collisions):0 TXキュー長:1000
RXバイト:366703 (366.7 KB)  TXバイト:44669092 (44.6 MB)

みたいな感じで表示されてればOK.

 

2 Comments »

  1. 2011/5/8
    kernelを2.6.32-32にアップデートしたら、hostapdでRT3070を
    認識できなくなった。
    色々試した結果、なんとか再度使えるようになった。

    まずはgitのインストール
    sudo apt-get install git-core

    他に必要なライブラリをインストール sudo apt-get install libnl-dev

    hostapdを再インストール
    sudo apt-get purge hostapd sudo apt-get install hostapd

    gitで最新のをとってくる
    git clone git://w1.fi/srv/git/hostap.git cd hostap/hostapd/

    cp defconfig .config make
    hostapdをapt-getでとってきたパッケージと入れ替え
    $ sudo cp hostapd/hostapd /usr/sbin/

    あとは”http://wireless.kernel.org/en/users/Download/stable/”から
    “compat-wireless-2.6.39-rc6-1.tar.bz2″をとってきてコンパイルしたらOK。

    それと、/etc/default/hostapd に以下を記述する事も忘れずに。

    RUN_DAEMON=”yes”
    DAEMON_CONF=”/etc/hostapd/hostapd.conf”
    DAEMON_OPTS=”-dd”

    コメント by nabecyan — 2011年5月8日 @ 10:07 PM

  2. もうひとつ忘れてた。
    というか、クライアントから繋ごうとしてもDHCPでIPアドレス払い出し
    されないし、なんか変。どうもパケットフォワードされた形跡がない。

    まずはiptablesに
    -A FORWARD -i br0 -j ACCEPT
    -A FORWARD -o br0 -j ACCEPT
    を追加してみたけど、うまくいかない。

    更に調べてみると /etc/sysctl.conf に
    net.ipv4.conf.default.forwarding=1
    を記述するのが必要みたい。(再起動後に反映?)
    とりあえず
    echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
    でフォワード設定して、
    sudo /etc/init.d/networking restart
    sudo /etc/init.d/dhcpd restart sudo /etc/init.d/hostapd restart
    で一通り再起動。
    で、なんとかつながった。

    コメント by nabecyan — 2011年10月30日 @ 8:37 PM

RSS feed for comments on this post. TrackBack URL

Leave a comment

HTML convert time: 0.439 sec. Powered by WordPress