最短翌日発送!高速大容量のモバイルWi-Fiルーターの詳細はこちら
DIY・電子工作

Raspberry PiでSIMフリーのUSBモデムUX302NCを使用する方法

Raspberry Pi 4Bに接続したUX302NC DIY・電子工作

※この記事には広告(アフィリエイトリンク)が含まれますのであらかじめご了承ください。

株式会社ネクス製のNCXX UX302NCはSIMフリーのUSBモデム、USB型データ通信端末です。

同じようなスペックのL-03Fを既に持っていますが、こちらはSIMロックがかかっているためそのままではdocomo系のSIMカードしか使用できません。LTEの1.7GHz帯、Band3に対応しているのでSIMロック解除すれば楽天モバイル、Rakuten UN-LIMITのSIMで使えそうですが、そのために3,300円もの手数料を支払うのは躊躇われます。

その手数料とちょうど同じくらいの値段で入手可能な中古のUX302NCを見つけたので、ブログのネタに購入してみたわけですが。

これがなかなか癖のある機種でして、L-03Fと同じように設定してみても上手くいきませんでした。

Raspberry PiでUSBモデムのL-03Fを使用してLTEで通信する方法
車内でWi-Fiを利用するために当初はモバイルWi-FiルーターのFS030Wを車載してみましたが、電源がなかなかエンジンと連動してくれず。自動起動に失敗することが多いので、他の方法をいろいろと模索していたのですが。 ホームルーターのWiM...

先人の知恵を借りようとググってみても、UX302NCは入手経路が限られているせいかあまり情報が見つかりません。その限られた情報を組み合わせて試行錯誤していくうちに、何とかラズパイで使えるようになりましたが。

そういうわけで、今後UX302NCを手に入れてラズパイやLinuxで使おうとする奇特な方のためにも、備忘録を兼ねて設定方法をまとめておきます。

スポンサーリンク
スポンサーリンク

ラズパイでUSB型データ通信端末のUX302NCを使用する方法

やることの方向性自体はL-03Fの場合と同じです。UX302NCをラズパイに接続して、USBモデムとして認識させ、wvdialでモバイルネットワークに接続させます。

ただL-03Fとまったく同じやり方では上手くいきませんでした。

UX302NCをUSBモデムとして認識させる

ラズパイのUSBポートにUX302NCを接続すると、CDドライブやストレージとして認識されてしまい、そのままではUSBモデムとして使用できません。

ここでL-03Fではejectコマンドを使いましたが、UX302NCの場合はイジェクトされるもののUSBモデムとしては認識されず上手くいきませんでした。

そこでejectの代わりにusb-modeswitchを使用します。まずはusb-modeswitchをインストールしましょう。

$ sudo apt install usb-modeswitch

ここでUX302NCのidVendorとidProductを確認しておいてください。デフォルトだと以下のように11f6:1035になっているはずです。

$ lsusb
Bus 001 Device 006: ID 11f6:1035 Prolific
・
・
・

IDを控えたらudevのルールファイルを作成します。

udevを利用してUX302NCの接続を検知するとusb-modeswitchを実行して、USBモデムとして扱うように切り替えさせます。ついでにカーネルモジュールとして読み込ませたり、デバイス名を固定する処理も記述しておきましょう。

ルールファイルの作成方法については、SORACOMが公開しているセットアップスクリプトを参考にさせていただきました。

https://dev.soracom.io/jp/start/device_setting/

1から自力で作る場合は、まず以下のようなルールファイルを作成します。前半の2桁の数字と後半の文字列は任意で変更してOKです。

$ sudo nano /etc/udev/rules.d/99-ux302nc.rules
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="11f6", ATTRS{idProduct}=="1035", RUN+="/usr/sbin/usb_modeswitch -v 11f6 -p 1035 -M '55534243123456780000000080000606f50402527000000000000000000000'" #UX302NCをイジェクト
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="11f6", ATTRS{idProduct}=="1034", RUN+="/bin/bash -c 'modprobe option && echo 11f6 1034 > /sys/bus/usb-serial/drivers/option1/new_id'" #カーネルモジュールとして組み込む
KERNEL=="ttyUSB*", ATTRS{../idVendor}=="11f6", ATTRS{../idProduct}=="1034", ATTRS{bNumEndpoints}=="03", ATTRS{bInterfaceNumber}=="01", SYMLINK+="ux302nc", ENV{SYSTEMD_WANTS}="ux302nc.service" #デバイスファイル名の固定と依存関係の設定

SYMLINK+=””には任意のデバイス名を、ENV{SYSTEMD_WANTS}=””には任意のサービス名を記述してください。後でそれぞれ使用します。

ルールファイルを作成したらラズパイを再起動して、以下のコマンドを実行してみましょう。ttyUSB0~ttyUSB3が作成されているはずです。

$ ls -l /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0  3月 25 23:55 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1  3月 25 23:55 /dev/ttyUSB1
crw-rw---- 1 root dialout 188, 2  3月 25 23:55 /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 3  3月 25 23:55 /dev/ttyUSB3

あるいは以下のコマンドを実行すると、ルールファイルに記述したデバイス名が表示されるはずです。

$ systemctl --type=device --all
・
・
・
dev-ux302nc.device              loaded active plugged NCXX_UX302NC
・
・
・

wvdialをインストールする

wvdialをまだ導入していなければインストールしてAPN情報を設定しておきましょう。

$ sudo apt install wvdial
$ sudo nano /etc/wvdial.conf
[Dialer Defaults]
Phone = *99***1#
APN = rakuten.jp
Username = rakuten
Password = rakuten
New PPPD = yes
Stupid Mode = yes
Init1 = ATZ
Init2 = AT+CGDCONT=1,"IP","rakuten.jp"
Init3 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Dial Attempts = 3
Modem Type = Analog Modem
Modem = /dev/ux302nc
Dial Command = ATD
Baud = 460800

systemdで自動起動の設定をする

あとはwvdialを自動実行させるためにsystemdのサービスファイルを作成します。udevと依存関係を持たせるためにルールファイルに記述したファイル名で作成するように気を付けてください。

$ sudo nano /etc/systemd/system/ux302nc.service
[Unit]
Description = UX302NC Service
Requires = dev-ux302nc.device
After = dev-ux302nc.device

[Service]
Type = simple
Restart = always
ExecStart = /usr/bin/wvdial

これで仕上げに再起動すれば、UX302NCを接続すると自動的にモバイルネットワークに接続するようになりました。

イジェクト方法が肝でしたが、基本的にやってることはL-03Fと同じです。ただL-03FよりもLTEを掴むまでにかかる時間が長いような気がします。ちゃんと比較してみたわけではありませんが。

UX302NCはLTEの対応バンドがL-03Fと似通っていますが、docomoのクアッドバンドLTE以外にauのプラチナバンドにも対応しています。何よりもデフォルトでSIMフリーなので、わざわざ時間とお金をかけてSIMロック解除なくても、楽天モバイルなどdocomo以外のSIMカードでも使用することが可能です。

なおdocomoが取り扱っているUX302NC-RもSIMロックはかかっていませんが、こちらはauのプラチナバンドは削られているっぽいので注意してください。まあこれは必ずしもデメリットではなく、確実に楽天モバイルのLTE Band3を掴めるというメリットにもなり得ますが。

さらに、このままだとラズパイしかインターネットに繋げられませんが、ホットスポット化すればホームルーターのように運用することもできます。

Raspberry Piで車載用のモバイルWi-Fiルーターを自作してみた
車載用のモバイルWi-Fiルーターをラズパイで自作したので、その作り方をまとめておきました。 今まで複数のモバイルWi-Fiルーターやホームルーターを車載してきましたが、どれもこれも今一つで。最終的にドラレコとして運用しているラズパイにUS...

楽天モバイルを固定回線的に使いたいのであればラズパイでホームルーターを自作してみるのもアリ…かもしれません。

まとめ

SIMフリーのLTE対応USB型データ通信端末、UX302NCもちゃんと設定してやればラズパイで問題なく使えます。

初めからSIMフリーなので楽天モバイルなどのSIMでも使えますし、docomo系以外のSIMカードで使いたいならL-03FよりもUX302NCのほうがおすすめです。

もっとも、予算が足りるなら初めからWi-Fiを搭載しているUSBドングルやホームルーターを購入したほうが良いでしょうけれども。。

コメント

タイトルとURLをコピーしました