タグ: WN-G300DGR

WN-G300DGRのMTDパーティション

前に書いた WN-G300DGRメモ に関して、Kernelの前に本来存在するらしき0xB0000のパーティションを追加する修正を行い、実機で動作確認した。

が。

どうも再起動すると設定が保存されない。そこでコンソールを確認すると、

jffs2: Too few erase blocks (2)

のログが。これは、Flashに空きスペースが無く、空き領域を確保できない場合に出る。
と、ここで重大なことに気付く。

そりゃ修正前の “firmware” パーティション(Kernel+RootFS)が0x3B0000(≒3,866KB?)で空き領域200KB程度だったのに、Kernelの前に存在するらしきパーティションで0xB0000(≒720KB?)も持っていかれて “firmware” パーティションが0x300000(≒3,145KB?)では全く足りてないよな…

という。
上記の修正を行った場合、ramips + U-BootにおけるLEDE (OpenWrt) ファームのお馴染み “27 05 19 56” が公式ファームと同じ位置に来るためU-BootにBad Magic Numberを出されないほか、公式ファームへ戻す際にも0xB0000分paddingする必要が無く簡単なものの、このままではLEDE (OpenWrt)で設定が保存できない。
そのため、再起動するたびにリセットされ設定し直す羽目になるので、パーティション修正は諦め変更を破棄して元の構成に差し戻した。

やはりFlash 4MBでは厳しい。正直パーティション構成を正確に調べたかったものの、Flashのサイズや筐体の形(湾曲していて扱いづらい)など厳しい点がどうしても多いため追加で購入するのは見送って、この機種に関してはあとUSB周り調べる程度かな、と思う。

広告

WN-G300DGRメモ

弄る中で気付いたことメモ

  • Kernelの前にパーティション有
    • シリアルコンソール用のシェルが存在?
  • GPIO#7はrebootに使用
  • U-Bootの環境変数op_modeをデフォルトの0から1に変更すると、Kernelが起動後詳細なログをコンソールに吐く
  • console pass: admin ?

パーティション構成
現状での予想。これ以外にも存在する可能性あり

パーティション名 領域 (HEX) サイズ (HEX)
u-boot 0x0 – 0x30000 0x30000
u-boot-env 0x30000 – 0x40000 0x10000
factory 0x40000 – 0x50000 0x10000
console? 0x50000 – 0x100000 0xb0000
firmware (Kernel + RootFS) 0x100000 – 0x400000 0x300000
————- ↓firmware ————– ——————————— ———————-
kernel 0x100000 – 0x2c0000 0x1c0000
rootfs 0x2c0000 – 0x400000 0x140000