ブート
- NAND Flash内にOSイメージ領域が2組存在。後述のbootnumにより切り替えられる
- U-Boot環境変数領域の
bootmenu_delayがデフォルトで0に設定されている為、ブート時にU-Bootでbootmenuが出ること無くLinux Kernelのブートに進んでしまう - OpenWrtベースであり、ブート中にfailsafeに入るかどうか尋ねるログが出るものの、実際に F キーと Enter を押しても
- failsafe -というログが出るのみで通常と変わらないブートが進行してしまい、failsafeのコマンドラインには入れない
その他
"Ubootenv" や "Factory" など一部パーティションをread-onlyにする mtd_locked.ko は、debugflagが無効 (=0) である場合insmodされてしまう
- debugflagは mtd_locked.ko によってread-onlyにされるうちの1つである "Factory" 内の値である為、debugflagが無効である場合書き換えが不可となる
- I-O DATA WN-DX1167RやWN-AX1167GR2などの同じくMSTC製造機と同様、mtd_locked.ko をrmmodしてもread-onlyのまま
- I-O DATAのMSTC製造機の場合、 /etc/init.d/ 配下の特定のサービスファイルを削除することで回避できたが、本機種ではブート中に実行されるプログラムが直接insmodを行うスクリプトを呼び出しており、回避が困難
debugflagはI-O DATAのMSTC製造機においてはU-Bootによるブート時にZyXEL独自(?)のローダを止められるようにするフラグにもなっていたが、本機種においてはそのローダを搭載していない為関与しないようである
debugflag, bootnum
root@WRC-X1800GS:~# cat /proc/mtd dev: size erasesize name mtd0: 07f80000 00020000 "All" mtd1: 00100000 00020000 "Bootloader" mtd2: 00100000 00020000 "Ubootenv" mtd3: 001c0000 00020000 "Factory" mtd4: 03240000 00020000 "firmware_now" mtd5: 00380000 00020000 "kernel" mtd6: 02e80000 00020000 "rootfs" mtd7: 00100000 00020000 "Config" mtd8: 03240000 00020000 "firmware" mtd9: 00100000 00020000 "Config_2" mtd10: 00100000 00020000 "persist" mtd11: 00100000 00020000 "mesh" mtd12: 01340000 00020000 "Backup" mtd13: 03240000 00020000 "RAS1" mtd14: 03240000 00020000 "RAS2"
bootnum
0x4 (persist)root@WRC-X1800GS:~# mstc_persist read bootnum 1 root@WRC-X1800GS:~# hexdump -n 128 -C -v /dev/mtdblock10 00000000 1b 05 ce 17 01 00 00 00 00 00 00 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 29 aa 9d 83 ff ff ff ff |........).......| 00000020 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000030 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000040 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000080 root@WRC-X1800GS:~# mstc_persist write bootnum 2 Unlocking persist ... root@WRC-X1800GS:~# hexdump -n 128 -C -v /dev/mtdblock10 00000000 1b 05 ce 17 02 00 00 00 00 00 00 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 29 aa 9d 83 ff ff ff ff |........).......| 00000020 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000030 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000040 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000050 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000060 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000070 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 00000080debugflag
WN-DX1200GR同様、
0x10000後ろにズレた位置に存在する0x1FE75 (Factory)root@WRC-X1800GS:~# sys debugflag DebugFlag: 0 root@WRC-X1800GS:~# hexdump -n $((0x100)) -v -s $((0x1FE00)) -C /dev/mtdblock3 0001fe00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe10 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe20 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe30 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe50 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe60 30 39 33 39 4c 38 37 32 31 30 31 33 31 35 38 97 |0939L8721013158.| 0001fe70 a4 56 eb 38 02 00 ea ea 00 00 00 ff ff ff ff ff |.V.8............| <--- 0001fe80 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe90 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fea0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001feb0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fec0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fed0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fee0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fef0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001ff00 root@WRC-X1800GS:~# sys debugflag 1 PASS root@WRC-X1800GS:~# hexdump -n $((0x100)) -v -s $((0x1FE00)) -C /dev/mtdblock3 0001fe00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe10 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe20 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe30 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe40 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe50 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe60 30 39 33 39 4c 38 37 32 31 30 31 33 31 35 38 97 |0939L8721013158.| 0001fe70 a4 56 eb 38 02 01 ea ea 00 00 00 ff ff ff ff ff |.V.8............| <--- 0001fe80 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fe90 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fea0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001feb0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fec0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fed0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fee0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001fef0 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................| 0001ff00