環境
- Raspberry P 4B 8GB
目標
- 802.11ac 5GHzで起動する
- 80MHz (433Mbps)の帯域
制限
- ルーティングやブリッジの設定は行っていないので外部ネットワークにアクセスはできません
注意
JPの国コードでは指定できない設定を行うため日本の屋外では使用しないこと。
手順
APソフトウェアのインストール
$ sudo apt-get install hostapd
AP機能の有効化とブート後の自動起動
$ sudo systemctl unmask hostapd
$ sudo systemctl enable hostapd
DNSサーバー兼DHCPサーバーのインストール
$ sudo apt-get install dnsmasq
ファイヤーフォール設定を保存してブート後に設定を適用するようにする
$ sudo DEBIAN_FRONTEND=noninteractive apt install -y netfilter-persistent iptables-persistent
Wi-FiインターフェースのIPアドレス設定
$ sudo vi /etc/dhcpcd.conf
/etc/dhcpcd.conf
+ interface wlan0
+ static ip_address=192.168.1.1/24
+ nohook wpa_supplicant
DHCPサーバーの設定
$ sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
$ sudo vi /etc/dnsmasq.conf
/etc/dnsmasq.conf
+ dhcp-range=192.168.1.2,192.168.1.20,255.255.255.0,24h
+ domain=wlan
+ address=/gw.wlan/192.168.1.1
APの設定
$ sudo vi /etc/hostapd/hostapd.conf
/etc/hostapd/hostapd.conf
# 使用するインターフェース名
interface=wlan0
# ドライバインターフェースタイプ (hostap/wired/none/nl80211/bsd)
# デフォルトはhostap
# nl80211はLinux mac80211ドライバで使われている。
driver=nl80211
## 802.11関連の設定
# WiFiのSSID名(自由に変更する)
ssid=raspi-ap
# 国コード
# この値によってその国の無線規制に合った機能の制限が行われる
# 例えば使用できるチャネルや出力電力が制限される。
country_code=US
# 国コードにや使用できるチャネル、出力電力をアドバタイズする。
# デフォルト: 0
ieee80211d=0
# レーダー検知とDFSサポートを有効化する
# ほとんどの国では屋外での5GHz帯の利用にDFSサポートが必要
# この機能を有効化するにはieee80211dが有効化されている必要がある
# デフォルト: 0
ieee80211h=0
# 動作モード (a = IEEE 802.11a (5 GHz), b = IEEE 802.11b (2.4 GHz),
# g = IEEE 802.11g (2.4 GHz), ad = IEEE 802.11ad (60 GHz))
# IEEE 802.11n (HT)はa/gオプションを使用
# IEEE 802.11ac (VHT)はaオプションを使用
# IEEE 802.11ax (HE)の6 GHzはaオプションを使用
hw_mode=a
# 使用するチャネル番号
# 2.4GHzでは1-13
# 5GHzではW52(36-48), W53(52-64), W56(100-104)
# W53とW56はDFSとTPCのサポートが必要
# ラズパイではW52しかサポートしていないので36か44だけが選択可能
# 帯域80MHzを使う場合は36しか選べない
channel=36
# 認証アルドリズム
# 0: 認証なし, 1: WPA, 2: WEP, 3: WPA&WEP
auth_algs=1
## 11nの設定(11acを使うにあたってこれは省略できない)
ieee80211n=1
require_ht=1
ht_capab=[MAX-AMSDU-3839][HT40+][SHORT-GI-20][SHORT-GI-40][DSSS_CCK-40]
## 11acの設定
# 11acの有効化
ieee80211ac=1
# [MAX-AMSDU-3839]:
# [SHORT-GI-80]: 80GHzショートGI
vht_capab=[MAX-AMSDU-3839][SHORT-GI-80]
# ステーション側が11acをサポートしていなければ接続を拒否する
require_vht=1
# チャネル幅
# 0: 20/40 MHz
# 1: 80 MHz
# 2: 160 MHz
# 3: 80+80 MHz
vht_oper_chwidth=1
# 中心周波数
# 5Ghz+(5*index)
# channel+6を指定すればいいらしい
vht_oper_centr_freq_seg0_idx=42
## WPA/80211i設定
# 1:WPA, 2:WPA2 (11i/RSN)
wpa=2
# wpa-pskのパスフレーズ (自由に変更する)
wpa_passphrase=12345678
# WPA-PSK: WPA-Personal/WPA2-Personal
wpa_key_mgmt=WPA-PSK
# RSN/WPA2用サイファースイート
# CCMP: AES with 128ビットCBC-MAC
# TKIP: TKIP
# CCMP-256: AES with 256ビットCBC-MAC
rsn_pairwise=CCMP
再起動してWi-Fiが立ち上がっていれば成功
sudo reboot
参考サイト