hgot07 Hotspot Blog

主に無線LANや認証連携などの技術についてまとめるブログです。ネコは見る専。

Chromebook を OpenRoaming に接続する (TOKYO Free Wi-Fi など)

結論から書くと、Passpoint の仕組みでは、できません!

 

以前は Cisco OpenRoaming アプリでなんとか使うことができたのですが、2026年8月時点で再度試してみたところ、使えなくなっていました。うーん、この Google ……

hgot07.hatenablog.com

Passpoint の設定ができるアプリでもあればよいのですが、残念ながら無さそうです。Android 版の geteduroam でできそうだと思ったのですが、設定がうまく入らないようです。

 

仕方がないので、SSID を決め打ちにして、WPA2 Enterprise の設定で接続することにします。

 

Passpointが使えないと何が困るのか

OpenRoaming で使われる Passpoint は、最近の多くの端末でサポートされるようになりましたが、安定しない機器もあるようです。

Passpoint とは何なのか、極限まで端折って書くと、SSID が違っても自動接続できる仕組みです。OpenRoaming に対応した自治体Wi-Fiでは、自治体ごとにSSIDが違いますが、どこかで作成した Passpoint プロファイルを端末に仕込んでおけばどこでも接続できます。

Passpoint が使えない場合に何か困るかというと、要するに、SSID ごとに接続設定が必要になります。ID・パスワードが共通でも、これでは激しく面倒くさいですね。

 

ONCファイルを使おう!

TOKYO Free Wi-Fi などでは、OpenRoaming の設定がうまくできない端末のために、WPA2 Enterprise の設定方法が案内されています。ウェブでID・パスワードなどの設定情報を見ることができるので、頑張って手動設定していくこともできます。

ChromeOS の Wi-Fi 設定を使ってチマチマと設定を入れていく手もあるのですが、行く先々で SSID からすべての設定を入れていくのは面倒です。ここでは、ONCファイルを使って、ちょっとだけ楽をする方法を紹介します。

ONC とは、Open Network Configuration の略です。(残念ながら、このファイル形式が Passpoint に非対応なのです)

ONCファイルを一度書いてしまえば、あとは SSID の部分だけ書き換えて、Chromeブラウザの chrome://network にあるインポート機能で読み込ませるだけで、設定が量産できます :-)

 

テキストエディタを使って、wifi-config.onc みたいな名前で、ONCファイルを書きます。中身は JSON 形式です。

例えば、TOKYO Free Wi-Fi 用のファイルは、以下のようになります。

 

{
    "Type": "UnencryptedConfiguration",
    "NetworkConfigurations": [
        {
            "GUID": "5DBEC188-9339-11F1-A89F-CA787DD52ECC",
            "Name": "cityroam",
            "Remove": false,
            "Type": "WiFi",
            "WiFi": {
                "AutoConnect": true,
                "EAP": {
                    "AnonymousIdentity": "anonymous@tokyo.wi2.cityroam.jp",
                    "Identity": "xxxx@tokyo.wi2.cityroam.jp",
                    "Password": "xxxx",
                    "Outer": "EAP-TTLS",
                    "Inner": "MSCHAPv2",
                    "SaveCredentials": true,
                    "UseSystemCAs": true,
                    "SubjectAlternativeNameMatch": [
                        {
                            "Type": "DNS",
                            "Value": "eap.wi2.ne.jp"
                        }
                    ]
                },
                "HiddenSSID": false,
                "SSID": "cityroam",
                "Security": "WPA-EAP"
            }
        }
    ]
}

太字の部分を、ウェブで確認した設定情報で置き換えます。

GUIDは、適当な値を入れておけばよいです。

Name と SSID の部分は、訪問先の SSID に合わせます。

TOKYO Free Wi-Fi では、認証方式として EAP-TTLS (MSCHAPv2) が使われています。事業者によって違うことがあるので、適宜変更します。

なお、EAP-TLS の場合は、このテンプレートが使えません。

サーバ認証にプライベートCAが使われている場合も、このテンプレートでは対応できません。

 

ONCファイルのインポート

既に書いてしまいましたが……、
Chromeブラウザで chrome://network を開いて、下の方にある ONC ファイルのインポート機能でファイルを読み込ませれば、設定が一発で入ります。

 

偽基地局にご注意

上のテンプレートには、偽基地局に誘導されないための、サーバ認証の機能も書かれています。念のため、サーバ認証が正しく機能するかどうかを最初に確認しておくと安心です

サーバ認証が正しく動作しているかどうかは、わざと誤ったドメイン名を入れてみることで確認できます。誤ったドメイン名では、認証に失敗して、接続できないはずです。設定の変更は、毎回、既存の設定を消してからインポートする方が、確実なようです。

 

おしまい

 

p.s. ONCファイルの仕様は、こちら ↓ にあります。

chromium.googlesource.com

Wi-Fi HaLow で WPA3 Enterprise を使う (HaLowLink 2編)

監視カメラやスマートメーターなどの用途で、徐々に存在感が出てきた Wi-Fi HaLow ですが、まだ情報に乏しく、導入の敷居があると感じます。

Wi-Fi HaLow は LPWA (Low Power Wide Area) の一種で、2.4 GHz帯などの無線LANと比べて低速ながらも、飛距離が出るというのがウリです。しかしながら、基本的に無指向性で長距離ということは、都市部などでみんなが無秩序に基地局を立て始めたら干渉が酷いことになるのではないかと、心配しています。

2024年のWBAの会議における、とあるトライアルの報告で、広大な敷地にポツンと一つだけ基地局を置いていたことに対して、「砂漠で実験しているのか?」といったツッコミがありました。ごもっともな疑問だと思いました。

Wi-Fi HaLow でリードしている Morse Micro では、多数の基地局を並べた評価も行っているようです。しかし、都市部でどのように干渉が問題になるか (ならないか) は、まだこれからのデータ採取・分析によるでしょう。

前置きが長くなりました。この記事では、公衆無線LANのように 公衆Wi-Fi HaLow を実現できないだろうかという観点で、WPA3 Enterprise のサポート状況を紹介します。

 

なぜ WPA3 Enterprise なのか

もし多数の基地局による干渉が問題になるなら、基地局の数を減らすために、通信事業者が設置する基地局を共用するという道もありそうです。これを実現するためには、利用者ごとの認証が必要になります。PSK (Pre-Shared Key) を複数の利用者で共有することは、セキュリティ上の問題があります。

Wi-Fi HaLow では、WPA3 Personal で MPSK (Multi-Pre-Shared Key) を使うのが一般的なようです。利用者が少なく、事業者が管理する基地局が少ないうちは、これでも十分なのでしょう。しかし、運用上の手間を考えると、WPA3 Enterprise でRADIUS認証を使えないだろうかという話になってきます。

Wi-Fi HaLow で WPA3 Enterprise は使えるのでしょうか?

頭に Wi-Fi と付いているとおり、実は無線部分の周波数が違う程度で、様々な仕組みが従来の Wi-Fi と同じです。多くのデバイスが Morse Micro 製のチップとファームウェアを使っていて、基地局はなんと hostapd ベースだったりします。実際は、少し手を入れた hostapd_s1g というプログラムが使われていたりしますが、Enterprise の部分をわざと殺すようなことをしていないなら、すんなり動きそうな気がします。

 

私は Edgecore EAP112 を使って Wi-Fi HaLow デビューしました。内蔵モジュールが Morse Micro 製とはいっても、ファームウェアの更新が遅く、あまり自由度がなかったです (今後の改善を期待)。

Morse Micro は様々なデバイスを既にリリースしていたのですが、例えば HaLowLink (初代) には技適がなく、国内利用できませんでした。しばらく待つこと、やっと技適対応の HaLowLink 2 が登場しました。

www.morsemicro.com

HaLow、コニチハー!

Morse Micro HaLowLink 2

Morse Micro HaLowLink 2

仕向地として日本が正式サポートされました。パッケージも日本仕様です。

なお、国内では Wi-Fi HaLow のデューティー比が1/10に制限されていて (2026/8時点)、スループットはあまり期待できないことに注意が必要です。

入手先ですが、Mouser から買えます。間違えずに -JP 型番を注文する必要があります。1台あたり2万円台半ばでした。USからの発送でしたが、数日で発送されるのが嬉しいです。

www.mouser.jp

 

ところで、この筐体に何か見おぼえがあると思ったら、GL.iNet の昔のルータと同じメーカーのようですね。

ケース比較

ケース比較

置いた時に安定するように、スタンド (ベース) が付属しています。クイックスタートガイドに従って「ニッカリ」と押し込みましょう :-)

クイックスタートガイド

クイックスタートガイド

 

エクステンダーモードの罠

クイックスタートガイドによると、「アクセスポイントモード」と「エクステンダーモード」があります。最初、子機として使うためにエクステンダーモードに切り替えたのですが、ここでハマりました。

「エクステンダーモード」というのは、Wi-Fi HaLow を上流にするブリッジモードのことでした。Wi-Fi HaLow が接続されていない場合はLANポートにIPアドレスすら出てきません。アクセスポイントを WPA3 Personal に設定した後、クライアントとなる機器を Wi-Fi HaLow に接続するためのモードです。設定用のウェブ画面にすらアクセスできなくなります。

子機として使う場合でも、ルーターとして使うなら、エクステンダーモードに切り替える必要はありません

今回、1台目を WPA3 Enterprise の基地局として、2台目を子機としてその上流を Wi-Fi HaLow にしたかったので、両方ともアクセスポイントモードのまま使います。

 

sshアクセスとWPA3 Personalの設定

まずは、WPA3 Personal で接続できるかどうかを確認します。

色々と調べるために、ウェブの設定画面でsshアクセスを有効にします。LAN側に端末を接続して、DHCPでアドレスを取得すれば、sshで接続できます。

$ ssh root@192.168.12.1

OpenWrtベースのファームウェア

OpenWrtベースのファームウェア

やった!ヽ(・∀・)ノ

OpenWrtベースなので、色々と遊べそう。

バージョン 2.11.13 では、そのままではWANポートからのsshアクセスができませんでした。/etc/config/firewall の設定が抜けていますね……

config rule
        option name 'Allow-ssh-wan'
        option src 'wan'
        option proto 'tcp'
        option family 'ipv4'
        option target 'ACCEPT'

WPA3 Personalの設定ですが、ウェブの管理画面から行うのがお奨めです。OpenWrtと同じ画面なので、すぐに理解できると思います。

当初、/etc/config/wireless を直接いじっていたら、EAP112 と相互接続ができなくて、しばらく時間が溶けました🫠 どうやら他にも設定が必要だったようです。

というわけで、ハイ!

iperf3の測定結果

iperf3の測定結果

同じ部屋に置いてあるのに、この程度とは🤔

所々 0.00 bits/sec になっているところが気になりますが、普通の通信はできているようです。

 

WPA3 Enterpriseの設定

一旦 WPA3 Personal の設定ができていれば、/etc/config/wireless を直接いじっても大丈夫なようです。設定は、ざっくりとこんな感じ。

基地局側:

config wifi-iface 'default_radio1'
        option mode 'ap'
        option device 'radio1'
        option network 'lan'
        option ssid 'HaLow-1X'
        option encryption 'wpa3'
        option auth_server '<authのIPアドレス>'
        option auth_secret '<authのsecret>'
        option auth_port '1812'
        option acct_server '<acctのIPアドレス>'
        option acct_secret '<acctのsecret>'
        option acct_port '1813'

子機側:

config wifi-iface 'wifinet1'
        option device 'radio1'
        option mode 'sta'
        option network 'wwan'
        option ssid 'HaLow-1X'
        option encryption 'wpa3'
        option eap_type 'ttls'
        option auth 'PAP'
        option identity '<UserID@realm>'
        option password '<password>'
        option anonymous_identity '<anonymous@realm>'
        option ca_cert '/etc/ssl/certs/ca-certificates.crt'
        option domain_suffix_match '<IdPのドメイン>'

ウェブのインタフェースには、acctの設定がないようです。なんで……

WPA3 Enterpriseのウェブ設定画面

WPA3 Enterpriseのウェブ設定画面

RADIUS認証成功

RADIUS認証成功

やた!ヽ(゚∀゚)ノ

 

おわりに

まだ遠距離で WPA3 Enterprise を試していないので、少し不安を抱えたまま、今回はここまで。WPA3 Enterprise ではちょっと大きなサーバ証明書・中間証明書のやり取りが必要なので、帯域幅の小さい Wi-Fi HaLow で問題が出ないかどうか、気になるところです。

WPA3 Enterprise が使えるとなると、例によって(?)、Passpoint も使えるかどうか、私、気になります!カメラやIoT機器の方も対応してくれないと困るのですが、Morse Micro の動き次第でしょうか。

なお、GitHub に公式リポジトリがあるので、技術的な敷居はあまり高くない気がします。

github.com

 

おしまい

Edgecore EAP111のWireGuard VPN機能を試す

サクサクと行きます。

以前書いたEAP105の記事とほぼ同じことを試しているだけです。設定も同じです。

 

hgot07.hatenablog.com

Edgecore EAP111について

Edgecoreから出ているWi-Fi 6アクセスポイントです。

EAP105のWi-Fi 7みたいな目玉はなく、IP55防塵防水規格をうたっていることと、廉価なことぐらいで、機能・性能的にはあまりパッとしません。しかし、あまりコストをかけずに数をばら撒きたい用途には良さそうです。

あと、実はこれがOpenRoamingのような公衆無線LAN用途では重要で、WireGuard VPNによって有線部分の保護ができます。専用コントローラではなく、Linux箱でも受けられます。(執筆時点でまだスタンドアロン環境でしか使えませんが)

 

見た目は特に味気ないはんぺんですね。

EAP111外観

EAP111外観

EAP111外観 (裏)

EAP111外観 (裏)

技術情報がネットにあまり見つからないので、実際に買ってみるまで、ちょっと不安なところがありました。特に、どのクラスのチップセットが使われているのかが、気になります。

sshでログインしてlogを覗いてみたところ、プロセッサは MediaTek MT7981 のようです。GL.iNet Beryl AX (GL-MT3000)と同じなので、WireGuardで 300Mbps は出そうな予感。段々と高まってきました。

 

設定

EAP105と同じなのでサクッと省略。

 

WireGuardの速度

こちらもサクッと、結果だけです。

iperf3の結果

iperf3の結果

あぁ、予想より少し良い感じです (・∀・)

350Mbpsはあるでしょう。

 

課題

執筆時点でまだecCLOUDからVPNの設定ができないので、大規模実装にすぐ採用できないところがつらいです。Edgecoreさん頑張って!

あと、このモデルは TIP OpenWiFi 版もあります (購入時に選択)。外付けアンテナのモデルもあります。冴えないように見えて、実力者な予感がします。

しばらく様子を見ながら、育ててみたいと思います。

 

おしまい

 

Linuxのwpa_supplicantでOpenRoaming/Passpointに接続する

2年前に、OpenWrt箱をOpenRoamingに接続する方法を書きました。Linuxではwpa_supplicantを使って接続するのですが、そういえば、その設定を記事にしていなかったなと。メモを、未来の自分へ……

 

hgot07.hatenablog.com

アカウントの取得

OpenRoamingのアカウントは、事業者でなければ発行できません。匿名利用者の悪用を防ぐ、ローミングシステムのセキュリティのためです。

上の記事などを参考にして、お好きなプロバイダからアカウントを取得してください。現在、認証方式としてEAP-TTLSやEAP-TLSが主流ですが、この記事ではEAP-TTLSを想定します。

 

Linuxのwpa_supplicant

Linuxは、ディストリビューションによってネットワーク設定が異なるところが、イケてません。メジャーなディストリビューションでも説明をカバーするのが困難なので、ここではwpa_supplicant の設定だけを示します。

執筆時点の wpa_supplicant の最新版は 2.11 です。

LinuxをWPA2 Enterpriseのネットワークに接続する方法については、ネットにいくつか記事があります。設定の基本は、wpa_supplicant.conf に

network = {
  ...
}

のようなブロックを書くことです。

OpenRoaming / Passpointの場合は、この network ブロックの代わりに、cred ブロックを使います。network ブロックは不要なので消去して、以下のように書きます。もちろん <...> の部分は各自のものに置き換えます。

country=JP
interworking=1
hs20=1
auto_interworking=1

cred={
        roaming_consortiums="5A03BA0000"
        ca_cert="/etc/ssl/ca-bundle.pem"
        domain_suffix_match="<ドメイン名>"
        username="<ユーザ名>"
        password="<パスワード>"
        phase2="auth=MSCHAPV2"
        eap=TTLS
}

roaming_consortiums は、Roaming Consortium Organization Identifier をカンマ区切りで並べたものです。例にある 5A03BA0000 は、OpenRoamingのsettlement-free (要するにFree Wi-Fi)の Baseline の値です。

ca_cert は、サーバ認証に使うルートCA証明書を指定するものです。ここでは、システムに付属する証明書ストアを指定しています。openSUSE Leapの例なので、他のディストリビューションではパスが違っているかもしれません。

domain_suffix_match は、サーバ証明書のドメイン名 (CN/SAN)を指定するものです。プロバイダから取得した値を設定します。

WPA2 Enterprise (WPA3も同様) では、サーバ認証を省略してはいけません。サーバ認証がないと、偽基地局に誘導されてID/パスワードを奪われたりする恐れがあります

usernamepassword には、プロバイダから取得したユーザ名とパスワードを設定します。ユーザ名にはレルム (@以降)が付いている必要があります。PasspointではないWPA2 Enterpriseでは、username ではなく identity というパラメータ名でした。

wpa_supplicant 2.11以前のcred ブロックには、anonymous_identity のようなパラメータはありません。EAP-TTLS の outer-identity は常に anonymous@レルム の形でRADIUSサーバに渡されます。つまり、任意の outer-identity を設定できない制約があります。新しい版で改良されるようです。

wpa_supplicant.conf の詳しい書き方は、こちらで ↓

 

Passpoint対応の無線LANアダプタ

2026年時点で、Wi-Fi 5 Wave 2以降の新しい無線LANアダプタの多くが、Passpointに対応しています。ただし、Linuxで使えるチップセットは限られているので、頑張って探すしかありません。

Linuxで認識できるアダプタを使うと、wlan3 のようなデバイスが見えるはずです。以下のようにしてOpenRoaming / Passpointに接続します。

# wpa_supplicant -i wlan3 -c wpa_supplicant.conf

少し待つとこのとおり ↓

接続成功例

接続成功例

この段階で、無線LANの接続は完了していますが、まだアドレスが付いていません。DHCPでアドレスを取得する方法としてdhclient が紹介されているサイトが多いのですが、openSUSEではうまく動きませんでした。代わりにdhcpcdを使います。

# dhcpcd wlan3

接続を自動化する方法はディストリビューションごとに違うので、省略します。

 

おしまい

 

TP-Link Archer TX10UB NanoをLinuxで使う

TP-Link Archer TX10UB Nano、これです。

TP-Linkお得意の、出っ張りが少ないWi-Fi USBドングルです。中身は Realtek RTL8851bu でした。

まだまだ 11ac 世代のドングルが多く出回っているのですが、11ax は色々と効率化されているので、これからの実験には新しい方を使いたいというわけで、こちらを選んでみました。

ところで、例によって製品名が長すぎて、覚えるのが大変ですよ、TP-Linkさん orz 

 

結論 (いきなり):
ちょっとどころではない、ハマりどころがありました。

 

Linuxで使えるかな?

例によって wpa_supplicant で子機として、hostapd で基地局として動くかどうかが問題です。

私はメジャーなUbuntuよりも管理が楽と考えるopenSUSE Leapを主に使っているので、これで動くかどうかも心配です。Ubuntuでは動くけど他ではダメというドライバが、結構あるので。

さて、openSUSE Leap 15.6 のPCに挿してみたところ、ストレージデバイスと誤認識されて、動きませんでした。

GitHubにそれっぽいドライバがあったので、試してみました。残念ながら、make でも dkms でも途中でエラーが出てしまいました。ちなみに、これ ↓ です。

新しいカーネルならもしかして……と、期待を込めて openSUSE 16.0 のPCに挿してみたのですが、こちらもストレージデバイスとして認識されます。なんで……

デバイス番号が違っているのかと思って、色々と調べてみたのですが、よく分かりません。GitHub Copilotくんにエラーメッセージを食わせてみました。

lsusb shows "Bus 005 Device 002: ID 0bda:1a2b Realtek Semiconductor Corp. RTL8188GU 802.11n WLAN Adapter (Driver CDROM Mode)" but this isn't a device like that. It's a Wi-Fi 6 dongle. How can I fix it?

(答え)

The (Driver CDROM Mode) message means your USB Wi-Fi dongle is presenting itself as a CD-ROM (mass storage) device instead of a network adapter. This is a common technique manufacturers use to ship Windows drivers on the dongle itself. On Linux, you need to switch the device out of CD-ROM mode and into Wi-Fi mode, then load the correct driver.

おっと、予想外の原因が!

Leap 16.0では dkms install . がエラーなく成功して、usb_modeswitch -KW -v 0bda -p 1a2b したところ、無事にphyが生えてきました。iw phy で確認できます。

 

こんなんわかるかー・・・・・(ノ`Д´)ノ彡┻━┻

 

[2026/3/24修正] なお、Tumbleweed (20260318) ではカーネルが 6.19.8 と新しく、追加のドライバは不要で、カーネルに付いてきた rtw89_8851bu が使えました。

 

STA(子機)モードの確認

wpa_supplicant.conf を書いて、wpa_supplicant を起動してみたところ、あっさりと動きました。WPA2 Enterprise に Passpoint の設定まで入れて大丈夫だったので、OpenRoaming でも使えますねこの子。

WPA2 Enterprise + Passpointで接続成功

WPA2 Enterprise + Passpointで接続成功

APモードの確認

サクサクと hostapd.conf を書いて、基地局として動かしてみました。

例によって、Passpoint / OpenRoaming の設定まで入れてみます (笑)

こちらもあっさり動作して、めでたし、めでたし!

 

なお、2.4 GHz帯は問題なく動くのですが、5 GHz帯はW52のチャンネルしか動作しません。国内において、W53とW56ではDFSが必須なのですが、このオプションが動きません。

ちょろっと調べてみた限りにおいて、RealtekのチップでDFSは働かないようです。残念。まぁ、本格運用の基地局を作るなら、ちゃんとPCIeのモジュールを使うべきでしょう。

 

おしまい

GL.iNetのWi-Fi 7対応機GL-BE9300 (Flint 3)でPasspointを使う

Passpointの設定例は別記事にしたので、手っ取り早く設定投入したい人はそちらをどうぞ。

hgot07.hatenablog.com

例によって、Passpointの検証機として買いました。こんなデカいものを買うつもりはなかったのですが、VPN機能と組み合わせてマネージドWi-Fiの基地局として使えるものを開発したいので、やむを得ず(苦笑)

 

トライバンドWi-Fi 7対応機

GL.iNet GL-BE9300 (Flint 3)は、6 GHz帯にも対応している、トライバンドのWi-Fi 7対応機です

同社から出ている小型の GL-BE3600 (Slate 7)もWi-Fi 7対応機ですが、こちらは6 GHz帯のないデュアルバンドです。そう、Wi-Fi 7だからといって6 GHzに対応しているわけではないのです。

とりあえず、ばばーん!

GL.iNet GL-BE9300 (Flint 3)

GL.iNet GL-BE9300 (Flint 3)

Flint 3化粧箱

Flint 3化粧箱

Flint 3 リアビュー

Flint 3 リアビュー

デカい……ですね。

4本のアンテナは本体に固定されており、いちいち取り付けたりする手間もなく、いい感じに立てるだけで設置完了です。

 

 

QS⚡DK

sshでログインしてみると、ファームウェアはQualcomm SDKベースで、プロセッサとして Qualcomm Immersive Home 3210 の IPQ5332 が使われていることが分かります。

Qualcomm SDK

Qualcomm SDK

Qualcomm IPQ5332

Qualcomm IPQ5332

姉妹機(?)の GL-BE3600 (Slate 7) は、携帯できる (できなくもない)小型のルータです。構成はよく似ていて、IPQ5312 が使われているようです。

OpenWrt謹製のファームウェアはまだ出ていないようで、若干の方言のあるQualcomm SDKに、ちょっと不安を感じてしまいます。特にPasspointでは。

 

wpadもhostapdも見当たらない

ちゃんと /usr/sbin/hostapd は存在して、設定も hostapd と同じなので、一安心。ただし、opkg で見ると、wpadやhostapdの見慣れたパッケージが見当たりません。

MediaTekのチップを採用したルータでは、wpad/hostapdと互換性のないfirmwareが入っていることがあり、Beryl AXが出た当時はPasspointが動かなくて泣きました。Qualcomm SDKはOpenWrtより若干古いものの、MediaTekと比べると若干の安心感があります。Qualcommには、早めにOpenWrtにコミットしてねとだけ、声を大にして言いたい

 

Passpointの設定

例によって、WPA2/WPA3 Enterpriseの設定までは既にできているものと仮定します。

あとは、別記事のとおりにPasspointの設定を /etc/config/wireless に追加するだけです。

問題発生!

実は、当初、Passpointがうまく動かなくて困りました。こんな感じ ↓ で、Passpoint対応のネットワークだと識別できても、プロファイルのFriendly Nameが表示されません。

設定失敗例

設定失敗例

調べてみると、hostapdに渡すべきパラメータが /tmp/run/hostapd-wlan0.conf に書き込まれていないことが判明しました。さらに調査を進めると、以前のQualcomm SDKや、OpenWrt 24.10 と違って、interworking関係のパラメータの名前が変更されていました。以前は "iw_" が頭についていたものが、新しい Qualcomm SDK では削られています。例えば、iw_internet というパラメータは、internet として /etc/config/wireless に書かなければなりません。

hostapd の設定をするためのスクリプトを探してみると、/lib/wifi/hostapd.sh がそれでした。あー、なるほど、色々と変更されていますね…… (こまるよ、こういうの)

新しい記法に習って /etc/config/wireless を書き直したところ、やっとこさ、Friendly Nameが表示されました。

Friendly Nameの表示

Friendly Nameの表示

 

「このネットワークに接続できません」の呪い

Friendly Nameがうまく表示されたものの、いざ接続しようとすると、「このネットワークに接続できません」の表示が _(゚。3」∠)_ 

Microsoftさんは、いつになったら、このコミュ障なエラー表示を直してくれるんですかね?トラブルシューティングのきっかけが掴めません##

これも色々と試行錯誤したところ、複数の原因がありました。

一つは、Windows 11が何らかの情報をキャッシュしていて、以前に接続失敗したものを延々と引きずるという問題です。リブートしてみたら2.4 GHz帯はつながりました。

これで一気に解決したかと思いきや、5 GHz帯がつながりません……

結局、hs20_operating_class の値が影響していたようです。(へー、このパラメータ、ちゃんと使われているんだ……)

W52のチャンネルが使われているのに、W56用の値が設定されていました。きちんとバンドに合わせて Operating Class を設定する必要がありました。詳しくは別記事の方に書いてあります。

 

バンドステアリングとか、MLOとか、色々と試さないといけないのですが、手が回っていません。

 

おしまい

 

番外Q&A

これを使うと、OpenRoamingに対応した基地局が個人でも作れるの?

きちんとWBAやベンダに登録した人なら、技術的には可能です。ただし、基本的には、通信事業者でない個人にやってほしくはありません。OpenRoamingの認証連携ネットワークが個人に開放されると、通信を傍受できて、OpenRoaming全体のセキュリティに影響が出るからです。

 

 

 

 

Passpoint setting for GL.iNet Flint 3 and Slate 7

To enable Passpoint on GL.iNet Flint 3 and Slate 7, using the factory default firmware which is based on Qualcomm SDK, do the following:

    1. Upgrade the firmware to the latest version (4.8.4 for GL-BE9300 Flint 3, 4.8.3 for GL-BE3600 Slate 7, as of this writing).
    2. Setup each Wi-Fi interface with "wpa3-mixed+ccmp" (WPA2 Enterprise with optional PMF) or "wpa3+ccmp" (WPA3 Enterprise). Using LuCI is recommended for the configuration.
    3. Login the device using ssh.
    4. Edit /etc/config/wireless and add interworking configuration like the following to each "config wifi-iface" section. 
    5. Restart wireless networks by typing "wifi".

Example options for Passpoint

Parameter values need adjustment depending on your system and environment. <...> is a place holder.

        option hs20 '1'
        option access_network_type '3'
        option internet '1'
        option disable_dgaf '1'
        option asra '0'
        option esr '0'
        option uesa '0'
        option osen '0'
        option venue_group '2'
        option venue_type '8'
        option hessid '<one of the MAC addresses of the wireless device>'
        list roaming_consortium '<Roaming Consortium OI in 5 or 3 octets>'
        list venue_name 'eng:exampleLab'
        list venue_url '1:https://example.com/'
        option network_auth_type '00'
        option ipaddr_type_availability '0c'
        list domain_name 'example.com'
        option hs20_oper_friendly_name 'eng:exampleLabNet'
        option hs20_operating_class '5179'

Note: Recent Qualcomm SDK omits the leading "iw_" in the parameter names, while OpenWrt uses the names like "iw_internet", "iw_venue_name", etc.

Please see Table E-4 in IEEE Std 802.11-2020 for the Operating Class. For example, 0x51 (=81) means 1-13ch in 2.4 GHz band, and 0x79 (=121) means 100-144 ch in 5 GHz band. The 5 GHz codes for Japan are:

  • 0x73 = 115 : W52 (36-48ch)
  • 0x76 = 118: W53 (52-64ch)
  • 0x79 = 121 : W56 (100-144ch)

Please refer to /etc/wifi/hostapd.sh for the parameter details.

 

Voilà! :-)

Connected to OpenRoaming/Passpoint network

Connected to OpenRoaming/Passpoint network