コンシューマ用WiFiルータをアクセスポイントモードで使用してきて今まで何台も使ってきたけど、サポート期間も短くなってしまったし、自分でミニPCにOpenWRTを入れてUSB WiFi アダプタを挿してアクセスポイントにしてみた。設定はAIに聞けばだいだい教えてくれるんでかなり楽になった。
OpenWRTのインストールの前にPCについて。 普段はルータ用途なのでLANが2ポートあるPCを選ぶのが定番なんだけど、その場合はそれぞれWANとLANになってルータとして機能してしまうので注意。アクセスポイント用途なら有線LANポートは1ポートでいい。1ポートだとWANは設定されないのでちょっと楽。
インストールは公式を参照。 [OpenWrt Wiki] OpenWrt on x86 hardware (PC / VM / server)
おすすめは、SystemRescueが起動できるUSBスティックを作ってそっちを起動して既存のネットワークに参加してOpenWRTをダウンロードしてddでPC内蔵ディスクに書き込むやり方。 SystemRescue - System Rescue Homepage
インストールしたらLANケーブルを外して起動して、別のノートPCなどをLANケーブルで直接つないで ssh root@192.168.1.1 でログインして、ネットワークの設定をとりあえずやってしまう。ノートPCのWiFiは既存のネットワークに繋げておくと設定が参照できたりコピペもできるので便利。ネットワークインターフェースはbr-lanに入れてbridgeに設定。
cat > /etc/config/network << 'EOF'
config interface 'loopback'
option device 'lo'
option proto 'static'
option ipaddr '127.0.0.1'
option netmask '255.255.255.0'
config device
option name 'br-lan'
option type 'bridge'
list ports 'eth0'
# list ports 'eth1' # 必要に応じて
config interface 'lan'
option device 'br-lan'
option proto 'static'
option ipaddr '192.168.1.2' # ← 上位ルーターと同じサブネットで空きIP
option netmask '255.255.255.0'
option gateway '192.168.1.1' # ← 上位ルーターのIP
option dns '192.168.1.1'
EOF
DHCPも切る。
uci set dhcp.lan.ignore='1' uci commit dhcp
Firewall も切る。
/etc/init.d/firewall stop /etc/init.d/firewall disable
再起動してLANケーブルを繋ぎ変えて既存のネットワークに繋がっていればOK。アクセスポイントのベースは完成。
パーティションとファイルシステムの拡張をやる。 [OpenWrt Wiki] Expanding root partition and filesystem
使うUSB WiFi アダプタのファームを入れる。 今回は、WI-U2-300Dを使った。内蔵チップは RT5572 なので、
apk add kmod-rt2800-usb
アクセスポイントとして動かすのにhostapdが必要なので入れる。これ入れ忘れてハマった。
apk add hostapd
念の為、再起動。 ここまでできたらWEB GUI で設定できるので、細かいWiFiの設定をして有効にしてみる。
AIのおかげでOpenWRTの設定が楽になった。何でも聞いてログ貼り付けたらだいたい教えてくれる。ただ、設定してる途中でここバグだからコードを書き直したらいいって言われて沼にハマったけど。
気になることがあったら追記する予定。