フォト
2017年5月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
無料ブログはココログ

« 無線LANルータ LAN-W300N/G8 のファームウェアの展開 | トップページ | パソコンがウィルス感染? ... そうではなかった »

2013年9月18日 (水)

無線LANルータ LAN-W300N/G8 のカスタムファームウェアの作成

ロジテック製 無線LANルータ LAN-W300N/G8 用カスタムファームウェアの作成

SDKのMakefileやスクリプトを見て、イメージ作成に必要なコマンドやファイルを用意し、
試行錯誤でなんとかカスタムファームウェアの作成のメドがつきました。
他の製品(中身がRealtek)でも、同様な手順でいけると思います。

カスタムファームウェアの作成手順
作業はCentOS上で行いました。
  1.LAN-W300NG8_v1.03.bin を解凍する(前回の作業)
  2.解凍したファームウェアにファイルの追加や修正(今回はホームページ背景色変更のみ)
  3.ファームウェアの結合 ← 今ココ 
    ・各ブロック毎の結合
    ・3つのブロックを1つに結合してカスタムファームウェア を作る

必要なファイル
LAN-W300NG8_v1.03.bin から作成したファイル 
    ./squashfs-root (rootfs.bin を展開したディレクトリ 前回作成)
    ./web (webpages.bin を展開したディレクトリ 前回作成)      
    ./linux.bin (前回作成、ヘッダー部付きのものとする)

SDK(rtl819x-SDK-v3.2.3.tar.gz)から取得
    ./squashfs-pf-list.txt (squashfs作成用)
    ~/bin/mksquashfs (SDKのソースをコンパイルして作成したコマンド)
    ~/bin/unsquashfs (今回は不要。SDKのソースをコンパイルして作成したコマンド)
    ~/bin/cvimg (SDKのソースをコンパイルして作成コマンド)
    ~/bin/compweb (SDKのソースをコンパイルして作成コマンド)
    ~/bin/mgbin (SDKのソースをコンパイルして作成コマンド)
    ~/bin/webout (今回は不要。SDKのソースを参考にして自作したコマンド) 
   ※ 必要なコマンドは~/binに格納しています。

ファームウェアの結合手順
1)root.binの作成
   # ~/bin/mksquashfs ./squashfs-root squashfs-lzma.o -comp lzma -always-use-fragments -pf ./squashfs-pf-list.txt
   # ~/bin/cvimg root squashfs-lzma.o root.bin 2D0000 0x130000

   ※ 2D0000 はMakefileでも固定値を指定していた
   ※ 0x130000 は ブート時のログで分かった
     Sep 14 20:26:01 rlx-linux user.notice kernel: 0x000000130000-0x000000400000 : "root fs"
   ※ squashfs-pf-list.txt は本当はコンパイルの都度自動生成しているが、多分固定でよいのでSDKからそのまま流用した

2)webpages.bin の作成
   # cd ./web
   # find . > ../weblist.txt
   # ~/bin/compweb gw ../weblist.txt  ../webpages.bin
   # cd ..

  ※ ためしに、./web/style-font.css のBODYタグの背景色を変えてみた。
  ※ weblist.txt は web下のファイル一覧である. web内のディレクトリを起点のファイルパス一覧(例: ./home.asp)

3)イメージの結合
   # ~/bin/mgbin -c -o new_fw`date +%Y%m%d`.bin root.bin webpages.bin linux.bin
   これで、new_fw20130918.bin ができる。
  new_fw20130918.bin はオリジナルより、若干ファイルサイズが小さくなってしまいました。

   new_fw20130918.bin を web管理画面からファームウェアの更新を行います。
   ファームウェアの更新に失敗した場合、シリアル接続でないと復旧はできません。 

   今のところ動作に問題はないです。
   変更点は管理画面の色が変わっただけです。

   01

これで、本格的にファームウェアの改造に着手できそうです。

ファームウェアの改造でこれからやること
  ・APモードで、NTPクライアントによる時刻の自動修正を可能にする
  ・APモードで、ダイナミックDNSサービスが使えるようにする
  ・syscmd.aspの修正(リダイレクトがNG,テキストボックスの文字数の拡張)
  ・現状、SDKのmake image でエラーとなるのでその対応
  ・コマンドの追加
  ・不具合部の改善(dhcpなど)

カスタムファームウェアの公開・配布ってライセンスや法律的にどうなんでしょう?
多分ロジテックに無断で行うのはダメでしょうね。オリジナルを流用しているので。
なんかいい方法ないだろうか?

« 無線LANルータ LAN-W300N/G8 のファームウェアの展開 | トップページ | パソコンがウィルス感染? ... そうではなかった »

LAN-W300N/G8」カテゴリの記事

パソコン周辺機器」カテゴリの記事

コメント

もう殆どカスタム準備は完了した感じですね。紫背景は如何なものかと
以前から思ってましたが、そちらも変更可能とは… あとは適当に
貼り付けた様なロジテックロゴを何とか出来れば言う事無しなんですが(笑

>・コマンドの追加
>・不具合部の改善(dhcpなど)

この辺り期待大です。

配布方法の件、公式ファームにパッチを当ててカスタムに変える方式は
どうでしょう? よくフリーソフトの日本語化パッチにある様な感じで。
ロジは結構いい加減なトコなんで、余程の事が無ければ突っ込まれない
のではないかと。

weberlさん
その方法もありですね。
ファームウェアの展開 → 差分の追加・更新 → ファームウェアの再構築
の処理を行うスクリプト(プログラム)を作成すればできそうですね。
ただし、Linux上で動作するパッチになってしまいますが。

この処理に必要なコマンド、追加ソフトはフリーソフトなのでGPLのライセンス契約に
従ってソース付きで配布すれば再配布可能なはずです。

> ロジは結構いい加減
ロジの親会社のエレコムは昔やらかしましたからね(結構有名な話ですが)
 1.telnet にて外部から login することができる
 2.隠し cgi にて root 権限で任意のコマンドが実行可能
 3.外部からファームウェアのアップデートができる
糞ADSLルータ売ってユーザーからの指摘を放置、不具合対応は絶対にしないと断言、
じゃあ自分で治すと、ソース公開要求された(GPL違反で)ってやつです

不具合大杉&放置は今も変わらないですが。

リンク
http://futuremix.org/2004/04/elecom
http://slashdot.jp/story/04/04/04/1740234/ELECOM%E3%81%AE%E3%83%AB%E3%83%BC%E3%82%BF%E3%81%A7GPL%E9%81%95%E5%8F%8D%E3%81%A8%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3%E5%95%8F%E9%A1%8C%E3%81%8C%E7%99%BA%E8%A6%9A

エレコム GPL でググると沢山でてきます。
Wikipediaの同社説明にも書かれていて、危機管理失敗の良い(悪い?)見本です。

"エレコムは金輪際リナックスを使わない" の公言は名言です。
(結局は今も使ってるのだけれどね)

その点、同業者のバファローはファームウェアのソースを公開しています。
http://opensource.buffalo.jp/

>たま吉さん さま

こういったパッチ作成等については全く詳しくないのですが、
少々調べてみた所バイナリ差分パッチ作成のフリーソフト
という物も存在する模様ですね。

有名どころでは「WDiff」や「VPatch」等があるそうで。
Win環境でも利用可能ですが、こういったソフトを使用して
パッチのみ配布、というのは技術的・またライセンス的に
可能なのでしょうか…?


>ロジの親会社のエレコムは昔やらかしましたからね
>糞ADSLルータ売ってユーザーからの指摘を放置

エレコム、ひいてはロジの対応は、ユーザ窓口一つとっても
相当悪いですね。「連絡する」←嘘、「来週公開予定」←嘘
なんてのはザラです。

LAN-W300N/G8の新ファームに関しても、昨年にこちらから
コンタクトして以降、当初「今年3月公開」が5月になり8月になり、
結局9月に入って再度せっついてようやく寄越しましたから。
しかも一般公開は未だ… 変更点の確認要請も完全無視。

基本こちらから連絡しないと、予定が延期になった事すら
一切なしのつぶてです。何より「購入前問い合わせ」はwebで
出来ますが「購入後」は電話/FAXオンリーという素晴らしさ。

あ、名前抜かしてもた…

weberl さん

>バイナリ差分パッチ
これは、私も考えたのですが差分が大きくなり、
配布する差分の連続データの中から一部を取り出してオリジナルの一部を復元できちゃう
ほどの情報が含まれてしまう気がします(実際はそうでないのかもしれませんが)。

例:ABCDEFG と gfed@cba の差分(@が追加分)
Aとaは解凍すれば同ファイル。ただし圧縮ツールのバージョン等の違いでaとAの中の
データ列は異なる 。
また各ファイルの順番も異なる。

この場合、解凍すれば差分は@だが、詰め込んだバイナリーデータとしてはほとんど
別もので、差分はほぼgfed@cba に近い?

>ロジ
ずいぶん、苦労なされたようですね。
私も以前、時間設定方法等を電話で質問しましたが、
「折り返し、電話します。」
折り返しでかかってきて、
「開発担当に聞かないと分かりません。」
はぁ? それで回答終わりなの? といった感じでした。

>たま吉さん さま

>配布する差分の連続データの中から一部を取り出してオリジナルの一部を復元できちゃう
>ほどの情報が含まれてしまう気がします

>この場合、解凍すれば差分は@だが、詰め込んだバイナリーデータとしてはほとんど
>別もので、差分はほぼgfed@cba に近い?


なるほど… なにぶん素人なもので詳しい事は解りませんが
事はそう単純では無いんでしょうかね。敢えて差分を作る際
元データを類推されない為に不連続データにしてしまう…
なんて気の利いた機能を持つソフトがあればいいのですが(笑

差分パッチ作成ソフトを比較されている方がおりましたので一応。
2009年時点ですので今は別のソフトが出て来ているかもですが。
http://d.hatena.ne.jp/wwwcfe/20091213/binary_patch

差分パッチ自体は色々使わせて貰って来ましたが、作成ソフトも
こう見ると結構色々あるんですね。

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/571408/58220518

この記事へのトラックバック一覧です: 無線LANルータ LAN-W300N/G8 のカスタムファームウェアの作成:

« 無線LANルータ LAN-W300N/G8 のファームウェアの展開 | トップページ | パソコンがウィルス感染? ... そうではなかった »