12
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

LTE USB ドングル(アダプタ) SORACOM Onyx を Raspberry Pi OS(trixie) / NetworkManager で動かす

Posted at

SORACOM アドベントカレンダー 2025、アンカーの松下(Max)です。

最終日当日の午後から書き始めるという生活も、7年目に突入しました。そろそろアンカーを誰かに譲りたいと思っていますが、今年も賜ったので 15:30 頃から書き始めています。

今回は LTE USB ドングル SORACOM OnyxRaspberry Pi OSNetworkManager で動かす手順を紹介します。

ぶっちゃけ、それ自体は一瞬で解説が終わるのですが、その背景には「AWS re:Invent 2025 での登壇(YouTubeで公開中)」がありまして、そのお話の方が長いのですが、まあ、読み物としてご覧いただければ!

手順

Debian 12 (bookworm) 以降をベースにした Raspberry Pi OS では NetworkManager が使えます。コマンドは nmcli です。これで設定できます。

sudo nmcli connection add type gsm ifname "cdc-wdm0" \
  con-name "soracom-onyx" apn soracom.io user sora password sora \
  connection.autoconnect yes ipv4.route-metric 500

これで、全トラフィックが LTE インターフェイス経由で通信されるようになります。また、再起動時や USB 接続時にも自動接続されます。

パラメータの解説

SORACOM Onyx を構成する Quectel EG25-G が cdc-wdm0 で見えるので、それを type gsm として ifname に指定します。

$ dmesg | grep cdc-wdm
[ 1439.969231] qmi_wwan 1-2:1.4: cdc-wdm0: USB WDM device

conn-namenmcli connection up 等のコマンドで指定する名前です。わかりやすければ何でもいいでしょう。

apnuserpassSORACOM が提示している情報を指定します。

connection.autoconnect は、再起動や USB 接続時の自動接続フラグです。 true で 自動接続するようになります。デフォルトは true のようなので指定は不要かもしれません。
false の場合は nmcli conn up (後述) することで使えるようになります。

ipv4.route-metric は、トラフィック制御です(metric 自体は IP ネットワークで学べます)。
Wi-Fi や有線 LAN が有効な状態で SORACOM Onyx をつなげると、デフォルトゲートウェイが複数になります。そしてだいたい Wi-Fi や有線 LAN の metric の方が小さいので、SORACOM Onyx のインターフェイスを通ることはありません。

ルーティングテーブル
$ ip route show | grep default
default via 192.168.0.1 dev wlan0 proto dhcp src 192.168.0.6 metric 600
default via 10.200.34.113 dev wwan0 proto static metric 700

これを SORACOM Onyx 側から通信させたいなら metric 値を Wi-Fi より小さくする必要がありますが、それをインターフェース有効化時に同時に設定するのが ipv4.route-metric (該当ドキュメント) です。ip route show を見ながら、だいたい 500 くらいを指定しておけばいいかも(雑でゴメン)。

その他、運用向けコマンド

インターフェイスの有効化・無効化
$ sudo nmcli connection up soracom-onyx
$ sudo nmcli connection down soracom-onyx
インターフェイスの状態と IP アドレス表示
$ nmcli -g general.state,ip4.address connection show soracom-onyx
activated
10.200.34.114/30
ping (SORACOM の pong サーバーを対象に)
$ ping pong.soracom.io
PING pong.soracom.io (100.127.100.127) 56(84) bytes of data.
64 bytes from 100.127.100.127: icmp_seq=1 ttl=64 time=32.1 ms
64 bytes from 100.127.100.127: icmp_seq=2 ttl=64 time=50.3 ms
^C
--- pong.soracom.io ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 32.062/41.186/50.310/9.124 ms
設定の削除
$ sudo nmcli connection delete soracom-onyx

(読み物)マニュアルにはなんて書いてあるのか?

実は SORACOM Onyx のページに Raspberry Pi OS の設定 があります。ここでは PPP を利用する方法が目立つのですが、実は...

Debian 12 (bookworm) 以降、およびそれをベースにした Raspberry Pi OS では、NetworkManager を使用することを推奨します。

という一文があるんですね!
しかし、この具体的な方法が無かったので、メモ代わりに書いてあります。
てか、私がドキュメントをアップデートすればいいのですが (^^;;;;;;;;;(がんばります)

(読み物2)AWS re:Invent 2025 での登壇で SORACOM Onyx を使ったのです

ここからは、完全に別の読み物です m(__)m

登壇内容は「Designing local GenAI inference with AWS IoT Greengrass」
要するに「エッジデバイスで 生成 AI を動かす」というテーマで登壇してきました。

その時、ライブデモで使ったのがロボットアームなんですが、このコントローラーに Raspberry Pi 5 を使い、ネットワークに SORACOM Onyx + SORACOM Air for セルラーを使ったのです。
output.gif
ホテルに着いた直後、速攻で機材チェックしている様子です。黒いのが SORACOM Onyx、その下の銀色のデバイスが Raspberry Pi 5 です。日本から持ち込んだんですよ。
image.png

なぜネットワーク...?

テレオペレーション(アームの同期動作)なら、USB to USB なのでネットワークは不要です。
ではネットワークを何に使ったのかというと、クラウドを折り返す通信をした場合の遅延を見てもらうためです。
image.png
socat で USB/ttyACM を TCP で飛ばすという 、なんとも無謀な 構成です。ここはまた、別の機会に解説しますね。

セッション会場には、登壇者用の Wi-Fi と有線 LAN が用意されており、これを使うという手もありました。が、ライブデモには魔が潜んでいます。特に現場での確認は、セッション切り替えの15分間しかないため、この時間で接続確認は危険な匂いしかありません。そして、つながらないというのは、このデモの見せどころがなくなってしまうこともあり、絶対条件でした。

そこで、LTE で「つながってる状態」でステージに持ち込み、ネットワークの不安を解消するという戦術で挑んだわけです。結果、大勝利だったわけですが (^^)v

登壇45分前

登壇45分前には、待機場所とは別のところで電源 ON。それをそのままステージに持っていきました。
ちなみに電源は、AC100Vのコンセントで出力できるモバイルバッテリーを使い、ロボットアーム・Raspberry Pi 5 それぞれに電源供給しています。試したところ、このバッテリーで20時間くらい動いたので、60分セッションなんか余裕でいけるから、心が平穏でした!
image.png
下図の右側がバッテリー、左側に銀色の Raspberry Pi 5(見えるかな...?)
image.png
そして、ステージはこんな感じでした。結構ごちゃごちゃしてますね (^q^)
image.png

改めて SORACOM Air for セルラー

SORACOM Air for セルラーは日本を含めた、世界213の国と地域でつながります。もちろん US もつながります。そして SORACOM Onyx は TELEC/JETA(日本) だけでなく FCC/PTCRB(米国)、CE(EU)、UKCA(英国)、KC(韓国) の認証を持っているため、ばっちり利用できます。

以下が、当時のセッション履歴です。日本時間の12/4 午前10時はラスベガス(PT)の12/3 午後5時です。

実はセッション会場でつながるか自体も不安だったので、初日に同じステージでお話しされている方のセッションにお邪魔して、そこで接続テストしてました(スピーカーの方、ごめんなさい!でも、3rd SaaS 空 AWS Glue でデータを取り込むパイプラインのお話は面白かったです!)。
こういった現地調査は欠かせませんね (^^)

いくらかかったの?

SORACOM Onyx は、約 12,000円。そして通信関連は...

image.png

  • 基本料 3.60 USD (planX2 を載せてる plan01s の SIM なんです)
  • データ通信量 0.97 USD
  • SORACOM Napter (オンデマンドリモートアクセス/SSHに使った) 3.00 USD
    • でも、無料枠になってるんだけどね!

ということで、無料枠を考慮せずに全額で 7.57 USD (約1180円/156円換算)でした。
※他のは別の用途です

本筋とは異なるところで困ってた(パソコンが調子悪くなってさ)

なんと、セットアップをし始めた45分前頃から、急にパソコンの調子が悪くなってきました。
最初はスリープからの復帰ができなくなり、電源 OFF/ON しないと立ち上がらない。そして、しばらく作業をするとブルースクリーン(今は黒いからブラックスクリーンか)が発生。しかもまともに起動せず、回復モードに突入。
image.png
からの…?
image.png
これだよ。

登壇45分前くらいは、こんな感じのところからAWS Heroes による Daily re:Capをお送りいただいてたのですが
image.png
この時、ほんとに「やべぇ、まじどうしよう」ってなってました (^^||

ハードウェア的なリセット(Mac の NVRAM や SMC リセットのようなもの)をして、BitLocker 回復キーの長い呪文を入れたりと、いろいろやってたら「スリープしなければ、大丈夫そう」という障害切り分けができたのが30分前。
で、準備のために Restroom 行くんですけど、パソコン起動しっぱなしでお手洗いに行く(ワルイコトしてるわけじゃない、ごめん!)という恥ずかしい思いをしつつ、15分前にはステージで準備して、なんとか乗り切りました。

ってか、ホント直前でトラブるなんて。。。と思ったんですけど、実は変な緊張は解けたってのも正直なところです。ちなみに、日本に帰ってきたらブルースクリーンは出てこなくなったので、もしかするとパソコンなりに気を使ってくれたのかも?と思ってたりもします(そんな気配りはいやだ)。

登壇を終えて。

ライブデモは、SPOF 要素が多いです。
もちろん全部に動画を用意してあるので、最悪それでいいんですが、やっぱりライブで見せたいですよね。

そうなると、ステージでの再現性が重要になります。
こまかい話ですが、コマンドラインも Makefile に書いて make hogehoge として、実行できるようにするなど、ミスを減らしつつ、でもコマンドを見せる(make は何が実行されたか、実コマンドラインが表示される) というのも見せ方になるなーと思っています。

このあたりのノウハウも、そのうちまとめますね。技術書典に当たったらドリブンで書きます (^q^

それでは、よいクリスマス、そして、よい年末を!

EoT

12
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?