概要
usteerは、OpenWrtで2.4GHzと5GHz WiFiを1つのSSIDに統合し、デバイスが自動的に最適な帯域を選択できるようにするバンドステアリング機能です。(ASUS Smart Connectと同じ機能)
事前要件
設定前の必須確認事項:
- Network → Wirelessに移動
- radio0、radio1それぞれでEnableボタンをクリック
- Save & Apply
- 2.4GHzと5GHzが同じ設定である必要がありますLuCI Webインターフェースで設定可能:
- SSID:同じである必要があります
- 暗号化方式:同じである必要があります(例:WPA3-SAEまたはWPA2-PSK)
- パスワード:同じである必要があります
- Network → Wireless
- radio0、radio1それぞれでEditボタン
- ESSID、Encryption、Passwordを同じに設定
- 基本的なWiFi設定が完了している必要があります
- SSID設定完了
- 暗号化およびパスワード設定完了
- 正常にWiFi接続できる状態
WiFiが有効化されている必要がありますLuCI Webインターフェースでの設定(推奨):またはSSHコマンドで設定:
# WiFi状態の確認
uci show wireless | grep disabled
# disabled='1'がある場合は有効化が必要
uci set wireless.radio0.disabled='0'
uci set wireless.radio1.disabled='0'
uci commit wireless
wifi reload
1. パッケージのインストール
opkg update
opkg install usteer luci-app-usteer
2. ワイヤレス設定(802.11r/k/vの有効化)
重要: すでにSSIDとパスワードが同じに設定されている場合、以下のSSID設定部分は省略可能です。
SSHコマンドでの設定:
# SSIDが異なる場合は同じに設定(例:'MyWiFi')
uci set wireless.default_radio0.ssid='MyWiFi'
uci set wireless.default_radio1.ssid='MyWiFi'
# radio0(2.4GHz)- 802.11r/k/v設定
uci set wireless.default_radio0.ieee80211k='1'
uci set wireless.default_radio0.ieee80211v='1'
uci set wireless.default_radio0.ieee80211r='1'
uci set wireless.default_radio0.rrm_neighbor_report='1'
uci set wireless.default_radio0.rrm_beacon_report='1'
# radio1(5GHz)設定
uci set wireless.default_radio1.ieee80211k='1'
uci set wireless.default_radio1.ieee80211v='1'
uci set wireless.default_radio1.ieee80211r='1'
uci set wireless.default_radio1.rrm_neighbor_report='1'
uci set wireless.default_radio1.rrm_beacon_report='1'
# モビリティドメイン設定(802.11r Fast Roaming)
uci set wireless.default_radio0.mobility_domain='4f57'
uci set wireless.default_radio1.mobility_domain='4f57'
uci set wireless.default_radio0.ft_over_ds='0'
uci set wireless.default_radio1.ft_over_ds='0'
# WiFi有効化(すでに有効化されている場合は省略可能)
uci set wireless.radio0.disabled='0'
uci set wireless.radio1.disabled='0'
# 保存と適用
uci commit wireless
wifi reload
注意: WiFi再起動により、一時的に接続が切れる場合があります。
3. usteer設定
# SSIDリストにWiFi名を追加
uci add_list usteer.@usteer[0].ssid_list='MyWiFi'
# バンドステアリング有効化
uci set usteer.@usteer[0].assoc_steering='1'
uci set usteer.@usteer[0].band_steering_threshold='5'
# 保存と起動
uci commit usteer
/etc/init.d/usteer enable
/etc/init.d/usteer start
4. 確認
設定の確認:
# WiFi設定の確認
uci show wireless | grep -E "disabled|ssid|ieee80211"
# usteer動作確認
ubus call usteer local_info
正常な出力例:
{
"hostapd.phy0-ap0": {
"bssid": "xx:xx:xx:xx:xx:xx",
"ssid": "MyWiFi",
"freq": 2412
},
"hostapd.phy1-ap0": {
"bssid": "xx:xx:xx:xx:xx:xx",
"ssid": "MyWiFi",
"freq": 5220
}
}
バンドステアリング動作の確認:
# リアルタイムログの確認
logread -f | grep -E "usteer|AP-STA|auth_alg=ft"
スマートフォンを持って家の中を移動すると、2.4GHz ↔ 5GHzが自動的に切り替わるログを確認できます。
5. トラブルシューティング
WiFiがオンにならない場合:
# WiFi有効化の確認
uci show wireless | grep disabled
# 無効化されている場合
uci set wireless.radio0.disabled='0'
uci set wireless.radio1.disabled='0'
uci commit wireless
wifi reload
usteerが帯域を認識しない場合:
# usteer再起動
/etc/init.d/usteer restart
# 5秒待機後に確認
sleep 5
ubus call usteer local_info
6. 再起動後の設定確認
すべての設定は永続的に保存されますが、再起動後に一度確認することを推奨します:
echo "=== WiFi ===" && uci show wireless | grep -E "disabled|ssid|ieee80211" && \
echo "=== usteer ===" && uci show usteer.@usteer[0].ssid_list && \
echo "=== usteer 動作 ===" && ubus call usteer local_info | head -5
追加の最適化(オプション)
WED(Wireless Ethernet Dispatch)ハードウェアオフロード
MediaTekチップセット(MT7986など)でCPU負荷を軽減:
# /etc/modules.confファイルの編集
echo "options mt7915e wed_enable=Y" >> /etc/modules.conf
reboot
# 再起動後の確認
cat /sys/module/mt7915e/parameters/wed_enable
# Yが表示されれば成功
注意: WEDは一部の環境で不安定な場合があるため、24〜48時間のモニタリングが必要です。問題が発生した場合は、/etc/modules.confから該当行を削除して再起動してください。
参考情報
wpad-basic vs wpad
LuCI Webインターフェースで802.11k/vチェックボックスが表示されないのは、wpad-basicを使用している場合は正常です。機能は正常に動作します。
バンドステアリングの原理
クライアントが信号強度に応じて自動的に切り替わります:
- 2.4GHz:長い範囲、障害物の通過に優れる
- 5GHz:高速、短い範囲
802.11r(Fast Roaming)
帯域切り替え時に途切れることなく高速に切り替わります。ログでauth_alg=ftとして確認できます。
一括設定スクリプト
全体の設定を一度に実行(SSIDを'MyWiFi'に変更してから使用):
#!/bin/sh
# usteer バンドステアリング一括設定スクリプト
SSID="MyWiFi"
# パッケージのインストール
opkg update
opkg install usteer luci-app-usteer
# ワイヤレス設定
uci set wireless.default_radio0.ssid="$SSID"
uci set wireless.default_radio1.ssid="$SSID"
uci set wireless.default_radio0.ieee80211k='1'
uci set wireless.default_radio0.ieee80211v='1'
uci set wireless.default_radio0.ieee80211r='1'
uci set wireless.default_radio0.rrm_neighbor_report='1'
uci set wireless.default_radio0.rrm_beacon_report='1'
uci set wireless.default_radio0.mobility_domain='4f57'
uci set wireless.default_radio0.ft_over_ds='0'
uci set wireless.default_radio1.ieee80211k='1'
uci set wireless.default_radio1.ieee80211v='1'
uci set wireless.default_radio1.ieee80211r='1'
uci set wireless.default_radio1.rrm_neighbor_report='1'
uci set wireless.default_radio1.rrm_beacon_report='1'
uci set wireless.default_radio1.mobility_domain='4f57'
uci set wireless.default_radio1.ft_over_ds='0'
uci set wireless.radio0.disabled='0'
uci set wireless.radio1.disabled='0'
uci commit wireless
# usteer設定
uci add_list usteer.@usteer[0].ssid_list="$SSID"
uci set usteer.@usteer[0].assoc_steering='1'
uci set usteer.@usteer[0].band_steering_threshold='5'
uci commit usteer
# 適用
wifi reload
/etc/init.d/usteer enable
/etc/init.d/usteer start
echo "設定完了!"
echo "確認: ubus call usteer local_info"
OpenWrtバージョン: 24.10.0
テスト機器: ASUS TUF-AX6000(MediaTek MT7986)