1. 程式人生 > >WR720N硬改16M flash

WR720N硬改16M flash

flash分割槽結構

  • 通過命令列dmesg |grep spi |grep Kbytes可檢視flash型號及容量

    [    0.760591] m25p80 spi0.0: w25q128 (16384 Kbytes)
    
  • 通過dmesg命令檢視系統啟動log,找到有如下提示

    # 16M flash op系統分割槽結構 
    [    0.775662] 0x000000000000-0x000000020000 : "u-boot"
    [    0.782384] 0x000000020000-0x000000153404 : "kernel"
    [    0.787855] 0x000000153404-0x000000ff0000 : "rootfs"
    [    0.803829] 0x000000390000-0x000000ff0000 : "rootfs_data"
    [    0.811128] 0x000000ff0000-0x000001000000 : "art"
    [    0.816478] 0x000000020000-0x000000ff0000 : "firmware"
    
    # 8M flash op系統分割槽結構 
    [    0.710000] 0x000000000000-0x000000020000 : "u-boot"
    [    0.720000] 0x000000020000-0x00000012e620 : "kernel"
    [    0.730000] 0x00000012e620-0x0000003f0000 : "rootfs"
    [    0.760000] 0x000000350000-0x0000003f0000 : "rootfs_data"
    [    0.770000] 0x0000003f0000-0x000000400000 : "art"
    [    0.770000] 0x000000020000-0x0000003f0000 : "firmware"
    
  • 通過cat /proc/mtd也可以檢視(mtd是一個openwrt管理flash的工具,erasesize 為單位擦除的最小單位)

    # 16M flash op 
    dev:    size   erasesize  name
    mtd0: 00020000 00010000 "u-boot" #bootloader載入程式,可以用bread代替
    mtd1: 00133404 00010000 "kernel" #韌體核心
    mtd2: 00e9cbfc 00010000 "rootfs" #韌體分割槽檔案系統子集
    mtd3: 00c60000 00010000 "rootfs_data" #韌體分割槽檔案系統子集 可寫分割槽子集
    mtd4: 00010000 00010000 "art" #無線校準引數 發揮無線最佳工作效果
    mtd5: 00fd0000 00010000 "firmware" #韌體分割槽
    
  • 分割槽結構示意圖

    在這裡插入圖片描述

    rootfs區域掛載/系統根目錄;rootfs_data區域掛載/overlay目錄,作為系統啟動後系統檔案修改時的記錄區,以便恢復系統;中間的區域掛載系統的其他部分即/rom目錄

  • 使用dd命令備份flash

    通過命令列ls /dev/mtd*可以檢視到掛載的mtd裝置,與命令列cat /proc/mtd中的mtd對應,其中的mtd*ro就是供flash讀取的

    dd if=/dev/mtd0ro of=/tmp/uboot.bin
    dd if=/dev/mtd5ro of=/tmp/firmware.bin
    
  • 還原flash(貌似還原art不行)

    mtd -r write rootfs_data.bin rootfs_data
    
  • 總結

    更換flash晶片時,需要先備份原系統的art區無線校驗資料,先使用程式設計器將uboot.bin(bread.bin)刷入flash晶片,最後使用uboot.bin升級系統韌體以及刷入備份的art檔案

    最初,路由器將其無線校驗資料儲存於eeprom中,因此網上eeprom的叫法也即是無線校驗區,art、factory只是其中的一種,因為晶片型號不一樣,因此叫法不一樣,該區還儲存了路由器的mac地址等資料,刷機後最好使用uboot將mac地址還原為原地址,否則有可能造成無線的不正常工作

  • 參考文件

    官網flahs分割槽Doc參考

    Openwrt學習筆記(二)——Flash Layout and file system

    Openwrt flash分割槽、檔案系統

    為什麼要備份無線校準檔案?

flash晶片

  • SPI FLASH與NOR FLASH

    • SPI FLASH是NOR FLASH的一種
    • NOR FLASH根據資料傳輸的位數可以分為並行(Parallel)NOR Flash和序列(SPI)NOR Flash
    • SPI Nor Flash比parallel便宜,介面簡單點,但速度慢
    • 路由器的Flash即是spi nor flash,WQ25系列在路由器上用的較多
  • 參考文件

    全面理解SSD和NAND Flash

    NOR flash和NAND flash區別

串列埠控制檯

WR720N的電路板上有兩個焊點,TP_IN和TP_OUT,將USB-TTL的RX焊接到TP_IN,TX焊接到TP_OUT,即可通過串列埠終端檢視系統的啟動過程,刷磚備用

刷機過程

  1. 使用TP原裝的web刷入op系統,openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-factory.bin

  2. 利用dd if=/dev/mtd4ro of=/tmp/art.bin備份出art無線校驗資料,然後使用scp工具匯出

  3. 使用程式設計器將bread寫入新的flash,bread下載地址為breed-ar9331-wr710n_wr720n-r1163.bin

  4. 焊接換上新的flash,長按恢復物理鍵,上電啟動bread,如果led閃爍則啟動正常

  5. 通過bread的web刷入新的op系統以及art備份

Openwrt針對每種路由器提供兩個韌體檔案,factory.bin用於路由器原廠韌體初次改刷為Openwrt使用,sysupgrade.bin用於從舊版本Openwrt升級到新版使用

參考連結

TP-LINK WR720N v3 刷OpenWrt 完美翻牆

AR/QCA/MTK Breed,功能強大的多執行緒 Bootloader

TP-LINK WR720N 折騰記

TPLink WR720N刷OpenWrt - 修磚

TP-link WR720N拆解