Slackwareで無線LAN AP(アクセスポイント)

2010年の夏は、今までになく暑い夏でした。
そのお陰で、ルーター兼サーバーに使っているLinux BoxのHDDが壊れてしまいました。
立ち上がらなくなったPCのフタを開けてHDDに触ると、目玉焼きができる程の熱さ…。
これでは、壊れるよなぁ~、、、
と、暑い中HDD交換、そしてLinuxのインストール。
ついでに、無線LANのアクセスポイントを新しい構成で動作させたので備忘録を兼ねてです。

構成

うちのシステム構成は以下の通り、ADSLからブリッジを越えてLinux Boxへ入り、そこからLANと無線LANに振り分けられます。
PCは、ころがっていたDELL製PentiumII 600MHzのものを使っています。

ネットワークの構成

無線LAN用ネットワークカードは富士通製WLL4070-D50というMiniPCIのカードをPCIに変換するボードを使って
PCIスロットに差し込んでいます。
このカードとmadwifi-0.9.4+hostapd-0.6.10で動作しています。
ちなみに、lspciで見ると、、、

00:10.0 Ethernet controller: Atheros Communications, Inc.: Unknown device 001b (rev 01)

と、Unknownなのですが・・・
Linuxは、2.4.31(Slack ware-10.2フルインストール)です*1

ちなみに、今回は、接続の認証にはMACアドレスを使っており、WPAなど通信内容のセキュリティーも考慮していませんので、あしからず。

madwifiのインストール

madwifi-0.9.4をダウンロードして、/usr/src以下に解凍します。
解凍後、madwifi-0.9.4へ移動し、以下のコマンドでコンパイル~インストールします。

make KERNELPATH=/usr/src/linux-2.4.31
make install

特に、コンパイルエラーやリンクエラーは出ませんでした。

/sbin/modprobe ath_pci autocreate=ap

で、ちゃんとモジュールが起動するか確かめておきます。

hostapdのインストール

次に、hostapdをインストールします。
hostapd-0.6.10をダウンロードして、/usr/src以下に解凍します。

cd hostapd-0.6.10/hostapd

で、ディレクトリを移動し、まず最初に、.configファイルを作ります。

cp defconfig .config

デフォルトでは、madwifiを使うように定義されていないので.configを修正します。

# Driver interface for Host AP driver
# CONFIG_DRIVER_HOSTAP=y  ←コメントにする

# Driver interface for wired authenticator
# CONFIG_DRIVER_WIRED=y  ←コメントにする

# Driver interface for madwifi driver
CONFIG_DRIVER_MADWIFI=y     ←コメントをはずす
CFLAGS += -I../../madwifi-0.9.4 ←コメントをはずす

これで、makeでコンパイルできるのですが、何やら、EAP関係のモジュールが無い!とリンクエラーになりました。
手っ取り早く作業を終わらせたかったので、.config中のCONFIG_EAP~を全てコメントアウトして、
再度makeしたらリンクもOKになったので良しとしました*2
調べていないので分かりませんが、多分、SSL関係のパッケージを入れれば大丈夫だと思うのですが・・・
ちなみに、今回はMACアドレスを使って接続許可を行うので放置しておきます。
最後に、

make install

で、インストールします。

hostapdの設定ファイル

hostapdの起動や動作に必要なファイルを以下の通り作ります。

1.コンフィグ・ファイル*3 /etc/hostapd.conf

interface=ath0
driver=madwifi
logger_syslog=-1
logger_syslog_level=2
logger_stdout=-1
logger_stdout_level=2
dump_file=/tmp/hostapd.dump

ssid=YOUR SSID NAME
country_code=JP
hw_mode=b
channel=11     ←空いているチャネル番号を指定
beacon_int=100
dtim_period=2
max_num_sta=16
rts_threshold=2347
fragm_threshold=2346
basic_rates=10 20
macaddr_acl=1
accept_mac_file=/etc/hostapd.accept


2.接続する機器のMACアドレス指定ファイル /etc/hostapd.accept

00:17:xx:xx:xx:xx ←接続する機器のMACアドレスを列挙する。
00:90:xx:xx:xx:xx
00:26:xx:xx:xx:xx
   ・
   ・

これで、

modprobe ath_pci autocreate=ap
ifconfig ath0 192.168.1.10 up
hostapd /etc/hostapd.conf -B

と打ち込めば、アクセスポイントとして立ち上がる筈です。
・・・が、ルーティングの設定は未だなので、接続できるだけです。
iptableの設定を、各自の用途に合わせて行ってください。

自動起動用の設定

パワーオンやリブート時に、自動的に立ち上げるには、
/etc/rc.d/rc.modulesのIP masquerading modules:の上あたりに、

/sbin/modprobe ath_pci autocreate=ap

を加え、無線LAN用のiptablesの設定を加えます。
そして、/etc/rc.d/rc.localに以下を書き足します。

/sbin/ifconfig ath0 192.168.1.10 up  ←自分の環境のIPアドレスにしてください。
/usr/local/bin/hostapd /etc/hostapd.conf -B

これで、自動的に立ち上がるようになるはずです。

上記の流れで、無線LANカードを入れたNote PCや、任天堂、Sonyなどのゲーム機が繋がるようになりました。
クラッシュする前は、違うドライバーとhostapdで構築しましたが、今回の方が楽に動作させる事ができました。

*1 前回は、2.6.xを使っていたが、相性が悪かったのか怪しいエラーメッセージがログされていたのでやめました。
*2 無線LANで接続する機器が、ほとんどゲーム機のため、あまり深入りしていません
*3 不要な設定をしている行があるかもしれません。
最終更新のRSS
Last-modified: 2010-10-13 (水) 12:07:42 4905日前
HTML convert time: 0.008 sec.