WiFi (wlan0) 設定¶
CanMV K230 の WiFi を有効化し、アクセスポイントに接続する手順です。
前提条件¶
- ボードが起動済みで、シリアルコンソールにアクセスできること
- 接続先の WiFi が 2.4GHz 帯であること(K230 は 5GHz 非対応)
2.4GHz のみ対応
K230 の WiFi チップ (bcmdhd) は 2.4GHz (ch1-13) のみ 対応しています。 5GHz の SSID には接続できません。
1. 現状の確認¶
初期状態では wlan0 は存在するが DOWN 状態で、ifconfig(引数なし)には表示されません。
確認コマンド¶
expect -c '
log_user 1
set timeout 10
set serial [open /dev/ttyACM0 r+]
fconfigure $serial -mode 115200,n,8,1 -translation binary -buffering none
spawn -open $serial
send "\r"
expect "]#"
send "ifconfig -a\r"
expect "]#"
send "ip link show wlan0\r"
expect "]#"
send "lsmod\r"
expect "]#"
send "ps | grep wpa_supplicant\r"
expect "]#"
send "cat /etc/network/interfaces\r"
expect "]#"
send "cat /etc/wpa_supplicant.conf\r"
expect "]#"
'
初期状態¶
| 項目 | 状態 |
|---|---|
wlan0 |
存在するが DOWN (qdisc noop) |
bcmdhd ドライバ |
ロード済み |
wpa_supplicant |
未起動 |
/etc/network/interfaces |
lo と eth0 のみ |
/etc/wpa_supplicant.conf |
key_mgmt=NONE、SSID 未設定 |
2. 設定ファイルの編集¶
/etc/wpa_supplicant.conf¶
wpa_passphrase を使い、パスワードをハッシュ化して設定します。
# ヘッダー作成
cat > /etc/wpa_supplicant.conf << 'EOF'
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
EOF
# ハッシュ化 PSK を生成して追記(平文行は除外)
wpa_passphrase "YourSSID" "YourPassword" | grep -v '#psk=' >> /etc/wpa_supplicant.conf
# 確認
cat /etc/wpa_supplicant.conf
設定後の内容:
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
ssid="YourSSID"
psk=abcdef1234567890... ← 256bit ハッシュ化 PSK
}
wpa_passphrase について
wpa_passphrase は SSID + パスワード の組み合わせから PSK を生成します。
SSID を変更した場合は、必ず PSK を再生成してください。
/etc/network/interfaces¶
wlan0 の自動起動設定を追加します。
K230 のシリアルコンソールで以下を実行:
cat > /etc/network/interfaces << 'EOF'
# interface file auto-generated by buildroot
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf
post-down killall -q wpa_supplicant
EOF
3. WiFi 起動¶
/etc/network/interfaces の設定により、以下が自動実行されます:
wpa_supplicantが起動し WiFi AP に接続- DHCP で IP アドレスを取得
接続確認¶
# WPA の接続状態(COMPLETED になること)
wpa_cli -i wlan0 status
# IP アドレスが表示されること
ifconfig wlan0
# インターネット接続確認
ping -c 3 8.8.8.8
4. トラブルシューティング¶
AP が見つからない(SCANNING のまま)¶
CanMV K230 搭載の WLAN は 2.4GHz のみ対応です。5GHz の SSID を設定していないか確認してください。
Buffalo ルーターの場合
| SSID パターン | 周波数帯 | K230 対応 |
|---|---|---|
Buffalo-A-xxxx |
5GHz | 非対応 |
Buffalo-G-xxxx |
2.4GHz | 対応 |
4-way ハンドシェイク失敗(DEAUTH reason 15)¶
WLC_E_DEAUTH_IND reason 15 が表示される場合、PSK が正しくありません。
よくある原因:
- パスワードの入力ミス
- SSID を変更したが PSK を再生成していない(
wpa_passphraseの出力は SSID に依存するため)
修正:
cat > /etc/wpa_supplicant.conf << 'EOF'
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
EOF
# 正しい SSID で PSK を再生成
wpa_passphrase "YourSSID" "YourPassword" | grep -v '#psk=' >> /etc/wpa_supplicant.conf
# WiFi 再起動
ifdown wlan0
ifup wlan0
# 確認
wpa_cli -i wlan0 status
ifconfig wlan0
ping -c 3 8.8.8.8
再起動後に自動接続されない¶
/etc/network/interfaces に auto wlan0 があることを確認してください。
起動スクリプト /etc/init.d/S40network が ifup -a を実行するため、
auto wlan0 が記述されていれば自動起動します。