おは代々木ダイアリー

いろいろ試したメモを書きます。このブログはアフィリエイトを使用したプロモーションを含みます

SONYの MANOMA NCP-HG100 に SSHでログインできるようにする

-- 20210114追記

多くの方にお読みいただけているようで光栄です。タイトルでは「SSHでログイン」とありますが、記事中にもあるとおり、SSHを導入すると不具合をきたします。本記事で実際に利用できる範囲は「シリアルでログイン」までです。

-- 追記ここまで

はじめに

SONYが出している「AIスマートホームゲートウェイ」 MANOMAをご存知ですか?(私は知りませんでした)

LTEモジュールが付いているルーターなんですけど、 OpenWRTベースで作られているデバイスらしいです。

結構でかい NCP-HG100

今回はそんな OpenWRTルーター(違 をSSHでログインできるようにしていきたいと思います。

注意事項

なお、当然ながら自己責任でお願いいたします。 (ファームウェアの書き換えは発生しないので、技適適用外にはならないとは思うんですが、詳しくないので無線は切って使用するのがよいでしょう)

というかだめでした。この方法でSSHを有効にするとWWANがダメになり、DHCPも死ぬという現象が発生します。

手順(rootでログインする)

シリアル通信が必要になるので、適当な母艦PCとUSBシリアル変換みたいなのがあると良いです。

初心者すぎてそんなものは持っていなかったので、私はArduino UNO使ってます

あとはピンヘッダなどがついておらず、スルーホールになっていますので、片方がバネ付きのオスになってるケーブルがあると便利です。

殻割り

まずはシリアル通信するために本体を開封します。4つのネジとツメで固定されていてやらしー感じなんですが、 外側のカバー(メッシュのようになっているところ)を広げる感じでツメを外します。

配線

出てきた4つのピンにつないでいきます。 GND, TX, RXがわかればいいのでテスターでGNDを見つけて繋いでから、teratermなどでコンソール見つつTX, RXを特定していきます。

ボーレートは 115200です。

繋いだ

するとコンソールの出力がバーっとでてきます。普通に uboot とか見られるのでファーム作れる人はここから色々学ぶんでしょうね

起動オプションの変更

どうもUARTに使用しているGPIOとなにか(Z-Wave系?)が排他になっているようで、 そのまま起動してしまうと起動プロセス中にUARTが止まってしまいます。

起動オプションに ttyMSM0,115200n8 が含まれているとUARTが優先されるようなので(未検証)、 uboot の 環境変数 bootargsconsole=ttyMSM0,115200n8 に変更して起動します。

起動オプション変更

手順としては

  • uboot のコンソールに入る(シリアル通信中、電源入れてからすぐ適当にKey連打する)
  • env set bootargs console=ttyMSM0,115200n8 を実行する
  • run bootcmd で起動する

といった感じです。

ログイン完了

すると起動完了後、 Enter 押下でログインできると思います。

ログイン後

手順(SSHサーバーを導入する)

ここまでくれば opkg でパッケージ入れ放題!と思いきや

 ---------------------------------------------------------------
   For those about to rock... (Chaos Calmer, r48067)
   Product Name: SHH-001       Image Version: 1.4.46.5
 ---------------------------------------------------------------

Chaos Calmer の文字。 OpenWRT 15.05.1には ipq806x (←NCP-HG100にインストールされてる OpenWRTターゲット)がないぞ?!

手動でインストールする

というわけで、仕方がないので、適当にパッケージを拾ってきて入れます。

OpenWRTでは、opensshではなく、より軽量なdropbearが使われることが多いらしく、 ipq806x では dropbear_2017.75-1_ipq806x.ipk というパッケージがありました。

https://archive.openwrt.org/snapshots/trunk/ipq806x/generic/packages/base/

これをUSBメモリなどに保存し、ルーターに差し込み、シリアル通信からログインしたコンソールで

opkg install dropbear_2017.75-1_ipq806x.ipk

を実行してインストールします。

依存パッケージとして libc があるので、それも入れます。 libc_1.1.16-1_ipq806x.ipk (ここからきな臭くなってきます。)

最後に、

/etc/init.d/dropbear enable

で dropbear を起動時に有効にします。

ちなみに、起動できるかどうかを手動で確認したい場合は

/usr/sbin/dropbear

を実行してみるのが一番です。依存モジュールが足りないとかだとここで Not found といって怒られます。

動作確認

/etc/init.d/dropbear start

でdropbearを起動したら、おもむろにSSHします。 ssh root@192.168.132.1 (お

ハイレタ

さいごに

ここまで書いておいてあれですが、この方法だと再起動後、様々な機能に不調をきたすようなのでより安定してdropbearが使えるようになる方法を探しています。

みなさんもよかったらぜひ、一緒にMANOMAをいじりませんか。

-- 20210114追記

dropbear を使えるようにビルドする方法を記事にしました。SSHご利用の際はこちらもご覧ください。

ohayoyogi.hatenablog.com

-- 追記ここまで