煮ても焼いても食えない楽天モバイルとそのルータRakuten WiFi Pocket(以下RWP)だったが、その後もひそかにいじっていた。その結果、「Linux遊び」ができることは分かったが、それで何かおもしろい・役に立つことに使えるかというと、やっぱり使えないことが分かったw
とりあえず、どうすれば遊べるかを書く。
PCからRWPに繋いでLinuxを使う。
まだ出たばかりで、気付いている方は少ないかも知れないが、RWPにはtelnetで接続できる。ZTEのLTEルータ・モデムで検索すると、特別な手順が必要だったり標準でないポート番号に繋ぐように書いてあるが、RWPでは変えられていないので※、「普通に」繋がる。
※中を見ると、ポート番号を変えるつもりのようだが、バグか何かで変わっていないようだ。間違えてポート番号を指定せずにやったら繋がったので、拍子抜けしたw
なお、外(WAN)からtelnetできると大変危険だが、試したら繋がらないようなので、最低限のパケットフィルタは設定されているようだ。
RWPの管理者のアカウントでログインすると、以下のように普通にLinuxが使える。
$ telnet 192.168.0.1
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.
login: XXXXX
Password:
BusyBox v1.21.0-uc0 (2020-12-04 22:11:15 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.
~ # uname -a
Linux DEMO 3.4.110 #2 Fri Dec 4 22:06:09 CST 2020 armv7l GNU/Linux
~ # cat /proc/cpuinfo
Processor : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 620.54
Features : swp half fastmult edsp tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
Hardware : ZX297520V3
Revision : 0000
Serial : 0000000000000000
~ # df
Filesystem 1K-blocks Used Available Use% Mounted on
ubi0:rootfs 60912 16276 44636 27% /
mdev 27472 0 27472 0% /dev
tmpfs 27472 0 27472 0% /dev/shm
ubi1_0 3080 76 3004 2% /securefs
ubi0:rootfs 60912 16276 44636 27% /mnt/tmp
ノード名が"DEMO"だったりリビジョンもシリアルも0だったりして、なかなか香ばしいw 表示が正しいとすれば、カーネルを構築したのが12/4なので、まさに「作って出し」って感じか・・・
その割にはちゃんとIPv6が使えるので、なかなかカオスな感じではある。元(ZTEの物?)ができているだけのことなのか。
なお、ファーム更新でtelnetが止められて遊べなくなると困るので、自動更新を停めた。
micro SDを介してPCとファイルの受け渡し
RWPの「中身」をじっくり見るために、micro SD(以下SD)にバックアップすることができる(SDのマウントポイントは"/etc_rw/config/mmc2")。また、それをPCから取得することもできる。管理画面でSDを"HTTP Share"にすればSDの内容が見られるので、それをダウンロードすればいい。
バックアップするにはtarコマンドが便利だが、標準では使えないので、下記のようにフルのbusyboxを入れればOKだ。
標準で使えるddでもいいが、ファイルシステムがUBIFSで手軽に開けないので、僕はtarを使った。
上のような手順で、RWPでsshdなどが動いていなくてもPCとファイルがやり取りできる。
あと、curlは使えるようなので、PCにサーバがあるかクラウド経由ならやり取りできる。
フルのbusyboxでコマンドを増やす。
そのままだとbusyboxの機能(コマンド)が少なくて不便なうえに余り遊べないが、ARMv7l用のフル版をダウンロードして入れれば動く(もちろん、全部のコマンドが使えるかは不明)。RWPに入っているのと同じバージョンのもの(1.21.1)がちゃんと動いた。最新の1.31を試したらtarで落ちてしまったが、別の問題(ルートファイルシステムがフルになると落ちる感じ)だったのかも知れない。
SSHサーバ(dropbear)は試していないが、きっと動くのではないか。
設定・状態関連
RWPの中にはいくつか設定ファイルがあり、大抵テキストなので普通に読める。また、運用中の設定や状態は/bin/nvというコマンドで取得・変更・一覧できる。以下に例を示す。
nv get rssi # RSSIの表示
nv show # 一覧表示
参考までに、rssi以外で良く使いそうな値を以下に示す(ほとんどiV501と同じである)。
- signalbar: 電波強度(バーの数)
- network_type: WANのタイプ(LTEなど)
- network_provider: キャリア名
- mcc, mnc: 接続先のMCCとMNC
- network_num_oper: 接続先キャリアの番号?
- cell_id: 繋がっているセルのID?
- sta_count: Wi-Fiの子機の数
- monthly_tx_bytes, monthly_rx_bytes: 月の送受信データ量
- battery_charging: バッテリが充電中か
- battery_pers: バッテリの残量(%でなく0-4)
テキストファイル以外にsqliteのDBもあり、接続先関係の設定や接続先を固定するように見える設定があるが、どのように使われている・使うのか分からない。
接続先の固定(できず)
設定ファイルの一部を変更してauに繋がらないようにできないか試したが、できなかった。具体的には、楽天とau(KDDI)のPLMNの設定らしき部分があったので、auの値をダミーにして再起動したが、効かなかった。バグ(書いてある値の10の位と1の位がコメントと逆だった・・・)でその設定は無効なのか、設定方法が違うのかは分からない。
また、管理画面のネットワーク設定で接続先をマニュアル設定にすればLTEの接続先を選択できるのだが※、Rakuten(44011)にしても、電波状態によって勝手にKDDI(44053)に変わってしまった。
※この設定を変更するには、一旦WAN(LTE)を切断する必要がある。
ちなみに、上記nvコマンドで取れる動作状態ではmcc, mnc, network_num_oper, cell_idなどが現在のLTEの接続先を調べるのに有用そうだ。
IPアドレスの変更
RWPのIPアドレスは192.168.0.1に固定されていて不便だと思って居たが、実は変更できる。上と同様に、一旦WAN(LTE)を切断すれば変更できるようになる。なお、WAN(LTE)を切断している状態で起動するとtelnetで接続できないので、接続後にLTEを切ること。
※キャプチャではDHCPサーバの設定が元のままなので注意。
結局のところ・・・
まあ、1円で確かに「Linuxが動く小さい物」は手に入ったが、以前諦めたWi-Fi内蔵SDカード(PQI Air Card II)と同様、I/Oがない(外部のセンサや動くものなどに繋げられない)ので、僕には全くおもしろく使えない。温度計や照度センサやGPSや接点出力が入っていればいろいろ使えそうだが もちろんなく、せいぜい、電池の温度(本体が熱くなければ、周囲の温度に比例した温度になる)を取ったりセルの番号で大まかな位置を取る程度か。
これのCPUがものすごく高速だったら、何か(少し前だったら、仮想通貨のマイニング?)計算させるとかできるが、全くそんなこたぁないw ちなみに、BogoMipsはCore i7-2600 (3.4GHz)の1/10くらいだ。
ただ、USBはあるので、そこにカメラや温度計などを繋いで使えればいいが、果たしてどうだろうか(Androidスマフォと同様に繋がるのかも知れないし、ホストに繋げる専用ポートなのかも知れない)。面倒なので試していない。
もしUSBストレージやPTPが認識できれば、デジカメの画像をRWPのSDに一時保存するようにするのは容易そうだ。が、「やればできる」程度で実用性があるかどうか・・・ せめてauに繋がらないようにできれば、画像をクラウドにアップロードするようにできるだろうが、auに繋がるのではすぐに通信データ量オーバーになって不便だ。
あとは、本体に付いている小さい画面とボタンで文字などを表示・入力できるようにしたり、ゲームを動かすこともできるかも知れないが、僕は興味ないのでやらない(やってどこかに「Rakuten WiFi Pocketでテトリスを動かしてみた」とか投稿すると受けるとは思うがw)。
でも、そのうち何か思い付くかも知れない。とは言え、本当にやりたいことがあるならRaspberry Piでも買ったほうがずっと早いwww
最後に一応書きますが、以上のようなことは全く奨励しません。下手したら動かなくなります。「こういうこともできるかも知れないなぁ」という、初夢や幻想だと思って下さい。
PS. 今遊んでいる・試行錯誤されている方から、「お前、余計なこと書くなよ(塞がれるだろうが)!!」とか言って怒られるだろうか?