GrandstreamのIP電話機器のファームウェアアップデート
GXP1400のファームウェアをアップデートをした。
2016年でファームの更新は終わっている。
なかなか、苦労しました。
ダウンロードページ
検索すると、ダウンロード出来るページがあるように見えます・・・。
ページが二種類見つかる。
https://www.grandstream.com/support/firmware-2

https://www.grandstream.com/support/firmware

共に、クリックすると、ダウンロードが出来ない。Release Notesは見えます。
https://firmware.grandstream.com/Release_GXP140x_1.0.8.9.zip

現在入っているファームウエアのバージョンは、1.0.7.4くらいだったと思う。 Release Notes を見たら、結構な修正が加えられているので、何とかして最新にしたいと思う。最新と言っても、2016年のリリースである。

このくらいの量の修正などがある。
一般的な更新方法

出荷時から、サーバーパスが変更されたようで、「firmware.grandstream.com」に書き換えるような説明がされている記事が多い。でも、これでは更新が出来ない。

End-Of-Life Products だから、ファイルが消されたのであろう。
ファームウェアを探す
メーカーが提供していないなら、どこからか探すしか無い。

ここで探します。ウェブページだけでは無く、圧縮ファイルなども残してくれています。

2017年~2021年でアーカイブされているのが分かる。
zipファイルをダウンロードして、展開すると、gxp1400fw.binが含まれているのが分かる。

ファームウェアをどうやって適用したら良いか
いまどきのルーターみたいに、人の手で手動で、ブラウザでアップロードして更新できればいいのだが、そうは行かない。
1.機器が
2.TFTP/HTTP/HTTPSを参照して
3.更新ファイルがあれば勝手に更新をする
という流れの仕組みになっている。
TFTPは、ファームウェアの更新に慣れている人なら、なじみがある方法だと思う。私もOpenWrtなどでよく使っている。今回はhttpを使う方法で行った。なぜこの方法にしたのか、覚えていない。
httpサーバーを立ち上げる
記事を書いてて思ったけど、自分が管理しているWebサーバーがあれば、それを使えば手っ取り早い。FTPか、Wordpressでも良い。アップロードすれば良い。
対象機器と作業用PCが同じネットワークを用意する。作業用PCにhttpサーバーを簡単に立ち上げる方法はないかと、調べた。HFSというHTTP File Serverというものである。https://www.rejetto.com/hfs/ installと言うところに行くと、githubへのリンクがある。

Windows版以外に、macとLinux版もある。
ダウンロードして、適当なフォルダに展開する。使い終わったら削除するので、本当にどこでも良い。自分が分かる場所に。

ファイル構成はシンプルなので、hfs.exeを実行する。

「実行しない」ボタンしかないが、「詳細情報」をクリックする。

「実行」ボタンがでるから、押す。
そうすると、コマンドプロンプトがでて、ブラウザが開く。http://localhost/~/admin/ の管理ページで設定をする。

この画面で、Homeをどうするかとなっているから、Disk sourceにwwwなど、firmwareのファイルを置いてある場所を指定する。そうすると、http://192.168.1.150/gxp1400fw.bin でアクセス可能になる。
アクセス出来ないときは、パソコンのファイアーウォールなどが効いているのかもしれない。他のパソコンやスマホなどから、試してみる
IP電話機器での設定

色の変わっているところを書き換える。「保存して適用」を押してから、再起動をする。そうすると、勝手にアップグレードをしてくれる。実機が近くにあれば何か表示されているのかもしれないが、リモートで作業をしたので、更新されているかが分からない。httpサーバーのログを見ると接続しに来てダウンロードしたのかは分かる。
アップグレード作業中でも、ブラウザの設定のいくつかは開けるが開けないところもあったりする。10分~20分は放置しておけば、完了すると思う。
IP電話機器の設定画面は、一度ブラウザごと、閉じた方が良いと思う。右上にバージョン表記があるが、書き換わらない状況があった。シフトを押しながらリロードをしたら、最新になっていた。
終了
古い機械なので、もう更新ファイルの提供が無いだろう。更新動作がされないように、設定します。
