1. 程式人生 > >openwrt(三) 固件的燒錄

openwrt(三) 固件的燒錄

bios ipv ftp 徹底 span 提示 燒錄 ios 路由

導航:

  方法1: tftp;

  方法2: 在線升級

  方法3: BIOS燒錄

方法1:TFTP

  這應該是最萬能的一種方法了。TFTP是一種依靠網口傳送數據的一種通信協議,沒錯,只是傳輸數據,並不是燒錄,所以實現燒錄這個功能的還是uboot的功能。
  準備:機子有uboot。

  步驟:

  1. 連線。將電腦的網口連上路由器的隨便一個口。然後用ssh也好,用串口也好,(我一般用串口),進入到路由器的後臺linux系統。
  2. 電腦ip設置。
    1. 在路由器後臺,執行reboot,在路由器重啟時,根據提示進入boot模式。
    2. 用幫助命令查看  查詢當前環境變量的命令。我的是printenv。找到我們要的server_ip.
    3. 在電腦上,將IPV4設置為靜態地址,就填剛剛的服務器地址。保存,退出。
  3. 將固件放在TFTP指定的路徑下,(可百度TFTP的使用方法),然後執行uboot命令。
    1. 傳輸: tftp 0x80060000 lede.bin  //0x80060000是flash的固件保存地址,這個根據UNI自己的uboot決定,每個人都不同,可以執行2.2命令查看。lede.bin是我要燒錄的文件。
    2. 擦除:erase 0x9f050000 +$filesize //0x9f050000 是固件的啟動地址 $filesize 是變量,會自動帶入固件的大小。不要漏掉了+號。
    3. 拷貝:cp.b 0x80060000 0x9f050000 $filesize
    4. 設置啟動地址:set bootcmd 0x9f050000;save;

      1. 這裏可真的是一個坑。我也不知道怎麽描述,我的情況是,
      2. 當我燒錄openwrt15版本的時候,啟動地址是0x9f050000
      3. 當我燒錄lede17版本的時候,啟動地址要設置為0x9f800000,才能啟動。
    5. 啟動:boot。

方法2:在線升級

  這是最方便的方法了。但是僅僅支持同一版本的系統才行在線更新。比如我15版本只能更新15,而不能刷lede版本。

  步驟:進入路由器網頁管理界面,找到系統升級,選擇固件升級即可。

方法3:BIOS燒錄(最終版)

  為什麽會寫這麽一個版本呢?因為我有一次在用TFTP燒錄,erase的時候,記錯地址 ,把uboot給擦沒了。這樣子uboot用不了,系統又無法啟動,徹徹底底成為磚了。

這個時候我只能把flash芯片卸下來,然後把uboot重新燒錄進去。BIOS燒錄要用到燒錄器,就是一個專門燒寫falsh的小設備。然後配合燒錄軟件,就可以完成燒錄。這是最底層的燒錄。也是uboot的燒錄。然後再把flash重新焊接上去,成功救活。

上面是我自己使用過的燒錄方法。好修昂還有其他方法,我就不研究了。工作中慢慢總會碰到很多燒寫固件的方法,再總結。

以上。

openwrt(三) 固件的燒錄