大破雑記帳

個人用メモな雑記ブログ いろんなことをざっくりと。

WN-DEAX1800GR メモ

  • デュアルイメージのブート切り替えは "working" パーティション0x4 の値によって決定される
    0x00: bank1, 0x01: bank2)
    その際、同一パーティション内に格納されているイメージのデータ長 (0x10 - 0x13) とCRC32値 (0x14 - 0x17) はU-Bootにおいてはチェックされておらず、書き換えなくてもブートする
    / # cat /proc/mtd
    dev:    size   erasesize  name
    mtd0: 08000000 00020000 "mtk-nand"
    mtd1: 00080000 00020000 "Bootloader"
    mtd2: 00080000 00020000 "Config"
    mtd3: 00080000 00020000 "Factory"
    mtd4: 02e00000 00020000 "firmware"
    mtd5: 00620000 00020000 "kernel"
    mtd6: 027e0000 00020000 "apps"
    mtd7: 02e00000 00020000 "firmware2"
    mtd8: 00620000 00020000 "kernel2"
    mtd9: 027e0000 00020000 "apps2"
    mtd10: 00600000 00020000 "storage"
    mtd11: 00100000 00020000 "idmkey"
    mtd12: 00080000 00020000 "working"
    / # hexdump -C /dev/mtdblock12
    00000000  ff ff ff ff 01 ff ff ff  ff ff ff ff ff ff ff ff  |................|
    00000010  b2 00 ee 00 2e e0 90 7a  ff ff ff ff ff ff ff ff  |.......z........|
    00000020  ff ff ff ff ff ff ff ff  ff ff ff ff ff ff ff ff  |................|
    *
    00080000
  • U-Bootの環境変数領域(上記では "Config")内にはデフォルトでMACアドレス等の個体固有データが格納されているが、何故かU-BootがCRCエラーでそのデータを無視する。デフォルトで格納されているデータのCRC32値算出データ長と実機上のU-Bootの取り扱いデータ長が異なっている可能性があり、その状態でU-Boot上から saveenv を実行した場合にMACアドレス等多数の機種固有データが消失する恐れがある
    2021/07/20 追記: 予想通り、U-Bootから saveenv を実行したところ、MACアドレスSSID、WPA2パスワードなど多くの個体固有データが吹き飛ばされた
    環境変数領域の有効データ長がデフォルトの環境変数データにおいては 0x1000 、搭載するU-Bootにおいては 0x20000 に設定されており、crc32値を算出するデータ長が異なることから算出された値が不一致となり、U-Bootからデフォルトデータを認識できていない それ故にU-Bootは無効データとして扱うので、 saveenv 実行時に遠慮なくデフォルトデータを全て上書きして吹き飛ばす
    ログ:
    => nand read 0x81000000 0x80000 0x20000
    
    NAND read: device 0 offset 0x80000, size 0x20000
    131072 bytes read: OK
    => md.l 0x81000000 100
    81000000: 222620be 6b6e6162 3d64695f 61620030    . &"bank_id=0.ba
    81000010: 61726475 313d6574 30323531 6f620030    udrate=115200.bo
    81000020: 7261746f 633d7367 6f736e6f 743d656c    otargs=console=t
    81000030: 30537974 3531312c 00303032 746f6f62    tyS0,115200.boot
    81000040: 3d646d63 616b746d 626f7475 00746f6f    cmd=mtkautoboot.
    81000050: 746f6f62 616c6564 00303d79 746f6f62    bootdelay=0.boot
    81000060: 756e656d 533d305f 74726174 73207075    menu_0=Startup s
    81000070: 65747379 4428206d 75616665 3d29746c    ystem (Default)=
    81000080: 626b746d 6472616f 746f6f62 6f6f6200    mtkboardboot.boo
    81000090: 6e656d74 3d315f75 72677055 20656461    tmenu_1=Upgrade
    810000a0: 6d726966 65726177 6b746d3d 72677075    firmware=mtkupgr
    810000b0: 20656461 62007766 6d746f6f 5f756e65    ade fw.bootmenu_
    810000c0: 70553d32 64617267 6f622065 6f6c746f    2=Upgrade bootlo
    810000d0: 72656461 6b746d3d 72677075 20656461    ader=mtkupgrade
    810000e0: 62006c62 6d746f6f 5f756e65 70553d33    bl.bootmenu_3=Up
    810000f0: 64617267 6f622065 6f6c746f 72656461    grade bootloader
    81000100: 64612820 636e6176 6d206465 2965646f     (advanced mode)
    81000110: 6b746d3d 72677075 20656461 64616c62    =mtkupgrade blad
    81000120: 6f620076 656d746f 345f756e 616f4c3d    v.bootmenu_4=Loa
    81000130: 6d692064 3d656761 6c6b746d 0064616f    d image=mtkload.
    81000140: 6c637963 00323d65 61687465 653d7463    cycle=2.ethact=e
    81000150: 31406874 30303165 00303030 63746466    th@1e100000.fdtc
    81000160: 72746e6f 64616c6f 383d7264 63656666    ontroladdr=8ffec
    81000170: 00306136 656c6966 72646461 3030383d    6a0.fileaddr=800
    81000180: 30303031 69660030 6973656c 613d657a    10000.filesize=a
    81000190: 62303061 70690032 72646461 3239313d    a00b2.ipaddr=192
    810001a0: 3836312e 312e302e 64746d00 6e766564    .168.0.1.mtddevn
    810001b0: 3d656d61 6f622d75 6d00746f 65646474    ame=u-boot.mtdde
    810001c0: 6d756e76 6d00303d 64696474 616e3d73    vnum=0.mtdids=na
    810001d0: 3d30646e 616e6172 6d00646e 61706474    nd0=ranand.mtdpa
    810001e0: 3d737472 7064746d 73747261 6e61723d    rts=mtdparts=ran
    810001f0: 3a646e61 6b323135 622d7528 29746f6f    and:512k(u-boot)
    81000200: 3231352c 2d75286b 746f6f62 766e652d    ,512k(u-boot-env
    81000210: 31352c29 66286b32 6f746361 2c297972    ),512k(factory),
    81000220: 286d3334 6d726966 65726177 33342c29    43m(firmware),43
    81000230: 6966286d 61776d72 29326572 286d382c    m(firmware2),8m(
    81000240: 64766544 29617461 6d32332c 65735528    Devdata),32m(Use
    81000250: 61645f72 00296174 6d74656e 3d6b7361    r_data).netmask=
    81000260: 2e353532 2e353532 2e353532 61700030    255.255.255.0.pa
    81000270: 74697472 3d6e6f69 646e616e 00302c30    rtition=nand0,0.
    81000280: 76726573 70697265 3239313d 3836312e    serverip=192.168
    81000290: 312e302e 73003030 65746174 73004e3d    .0.100.state=N.s
    810002a0: 72656474 61753d72 696c7472 40306574    tderr=uartlite0@
    810002b0: 30306531 30306330 64747300 753d6e69    1e000c00.stdin=u
    810002c0: 6c747261 30657469 30653140 30633030    artlite0@1e000c0
    810002d0: 74730030 74756f64 7261753d 74696c74    0.stdout=uartlit
    810002e0: 31403065 30303065 00303063 61687465    e0@1e000c00.etha
    810002f0: 3d726464 343a3035 39423a31 3axxxx3a    ddr=50:41:B9:xx:
    81000300: 463axxxx 61770034 6464616e 30353d72    xx:F4.wanaddr=50
    81000310: 3a31343a xx3a3942 xxxx3axx 0036463a    :41:B9:xx:xx:F6.
    81000320: xx3d6e73 xxxxxxxx xxxxxxxx 00xxxxxx    sn=xxxxxxxxxxxx.
    81000330: 63616d72 3a30353d 423a3134 xxxx3a39    rmac=50:41:B9:xx
    81000340: 3axxxx3a 72003446 3263616d 3a30303d    :xx:F4.rmac2=00:
    81000350: 323a3131 33333a32 3a34343a 72003434    11:22:33:44:44.r
    81000360: 4a3d6e63 64720050 00353d6e 326e6372    cn=JP.rdn=5.rcn2
    81000370: 00504a3d 326e6472 0032313d 336e6372    =JP.rdn2=12.rcn3
    81000380: 004e433d 336e6472 3332313d 73737200    =CN.rdn3=123.rss
    81000390: 493d6469 5441444f xxxx2d41 3466xxxx    id=IODATA-xxxxf4
    810003a0: 0047322d 69737372 493d3264 5441444f    -2G.rssid2=IODAT
    810003b0: xxxx2d41 3466xxxx 0047352d 79656b72    A-xxxxf4-5G.rkey
    810003c0: xxxxxx3d xxxxxxxx xxxxxxxx 7200xxxx    =xxxxxxxxxxxxx.r
    810003d0: 3279656b xxxxxx3d xxxxxxxx xxxxxxxx    key2=xxxxxxxxxxx
    810003e0: 680030xx 3d726576 00323056 00000000    xx.hver=V02.....
    810003f0: 00000000 00000000 00000000 00000000    ................
    => printenv
    baudrate=115200
    bootcmd=mtkautoboot
    bootdelay=0
    bootmenu_0=Startup system (Default)=mtkboardboot
    bootmenu_1=Upgrade firmware=mtkupgrade fw
    bootmenu_2=Upgrade bootloader=mtkupgrade bl
    bootmenu_3=Upgrade bootloader (advanced mode)=mtkupgrade bladv
    bootmenu_4=Load image=mtkload
    fdtcontroladdr=8fff1780
    ipaddr=192.168.1.1
    nand_erasesize=20000
    nand_oobsize=40
    nand_writesize=800
    netmask=255.255.255.0
    serverip=192.168.1.2
    stderr=uartlite0@1e000c00
    stdin=uartlite0@1e000c00
    stdout=uartlite0@1e000c00
    
    Environment size: 495/131068 bytes
    => saveenv
    Saving Environment to NMBM... Erasing on NMBM...
    Writing on NMBM... OK
    OK
    => nand read 0x81000000 0x80000 0x20000
    
    NAND read: device 0 offset 0x80000, size 0x20000
    131072 bytes read: OK
    => md.l 0x81000000 100
    81000000: 12b3cfd9 64756162 65746172 3531313d    ....baudrate=115
    81000010: 00303032 746f6f62 3d646d63 616b746d    200.bootcmd=mtka
    81000020: 626f7475 00746f6f 746f6f62 616c6564    utoboot.bootdela
    81000030: 00303d79 746f6f62 756e656d 533d305f    y=0.bootmenu_0=S
    81000040: 74726174 73207075 65747379 4428206d    tartup system (D
    81000050: 75616665 3d29746c 626b746d 6472616f    efault)=mtkboard
    81000060: 746f6f62 6f6f6200 6e656d74 3d315f75    boot.bootmenu_1=
    81000070: 72677055 20656461 6d726966 65726177    Upgrade firmware
    81000080: 6b746d3d 72677075 20656461 62007766    =mtkupgrade fw.b
    81000090: 6d746f6f 5f756e65 70553d32 64617267    ootmenu_2=Upgrad
    810000a0: 6f622065 6f6c746f 72656461 6b746d3d    e bootloader=mtk
    810000b0: 72677075 20656461 62006c62 6d746f6f    upgrade bl.bootm
    810000c0: 5f756e65 70553d33 64617267 6f622065    enu_3=Upgrade bo
    810000d0: 6f6c746f 72656461 64612820 636e6176    otloader (advanc
    810000e0: 6d206465 2965646f 6b746d3d 72677075    ed mode)=mtkupgr
    810000f0: 20656461 64616c62 6f620076 656d746f    ade bladv.bootme
    81000100: 345f756e 616f4c3d 6d692064 3d656761    nu_4=Load image=
    81000110: 6c6b746d 0064616f 63746466 72746e6f    mtkload.fdtcontr
    81000120: 64616c6f 383d7264 31666666 00303837    oladdr=8fff1780.
    81000130: 64617069 313d7264 312e3239 312e3836    ipaddr=192.168.1
    81000140: 6e00312e 5f646e61 73617265 7a697365    .1.nand_erasesiz
    81000150: 30323d65 00303030 646e616e 626f6f5f    e=20000.nand_oob
    81000160: 657a6973 0030343d 646e616e 6972775f    size=40.nand_wri
    81000170: 69736574 383d657a 6e003030 616d7465    tesize=800.netma
    81000180: 323d6b73 322e3535 322e3535 302e3535    sk=255.255.255.0
    81000190: 72657300 69726576 39313d70 36312e32    .serverip=192.16
    810001a0: 2e312e38 74730032 72726564 7261753d    8.1.2.stderr=uar
    810001b0: 74696c74 31403065 30303065 00303063    tlite0@1e000c00.
    810001c0: 69647473 61753d6e 696c7472 40306574    stdin=uartlite0@
    810001d0: 30306531 30306330 64747300 3d74756f    1e000c00.stdout=
    810001e0: 74726175 6574696c 65314030 63303030    uartlite0@1e000c
    810001f0: 00003030 00000000 00000000 00000000    00..............
    81000200: 00000000 00000000 00000000 00000000    ................
    81000210: 00000000 00000000 00000000 00000000    ................
    81000220: 00000000 00000000 00000000 00000000    ................
    81000230: 00000000 00000000 00000000 00000000    ................
    81000240: 00000000 00000000 00000000 00000000    ................
    81000250: 00000000 00000000 00000000 00000000    ................
    81000260: 00000000 00000000 00000000 00000000    ................
    81000270: 00000000 00000000 00000000 00000000    ................
    81000280: 00000000 00000000 00000000 00000000    ................
    81000290: 00000000 00000000 00000000 00000000    ................
    810002a0: 00000000 00000000 00000000 00000000    ................
    810002b0: 00000000 00000000 00000000 00000000    ................
    810002c0: 00000000 00000000 00000000 00000000    ................
    810002d0: 00000000 00000000 00000000 00000000    ................
    810002e0: 00000000 00000000 00000000 00000000    ................
    810002f0: 00000000 00000000 00000000 00000000    ................
    81000300: 00000000 00000000 00000000 00000000    ................
    81000310: 00000000 00000000 00000000 00000000    ................
    81000320: 00000000 00000000 00000000 00000000    ................
    81000330: 00000000 00000000 00000000 00000000    ................
    81000340: 00000000 00000000 00000000 00000000    ................
    81000350: 00000000 00000000 00000000 00000000    ................
    81000360: 00000000 00000000 00000000 00000000    ................
    81000370: 00000000 00000000 00000000 00000000    ................
    81000380: 00000000 00000000 00000000 00000000    ................
    81000390: 00000000 00000000 00000000 00000000    ................
    810003a0: 00000000 00000000 00000000 00000000    ................
    810003b0: 00000000 00000000 00000000 00000000    ................
    810003c0: 00000000 00000000 00000000 00000000    ................
    810003d0: 00000000 00000000 00000000 00000000    ................
    810003e0: 00000000 00000000 00000000 00000000    ................
    810003f0: 00000000 00000000 00000000 00000000    ................