openwrt(三) 固件的燒錄
阿新 • • 發佈:2018-10-28
bios ipv ftp 徹底 span 提示 燒錄 ios 路由
導航:
方法1: tftp;
方法2: 在線升級
方法3: BIOS燒錄
方法1:TFTP
這應該是最萬能的一種方法了。TFTP是一種依靠網口傳送數據的一種通信協議,沒錯,只是傳輸數據,並不是燒錄,所以實現燒錄這個功能的還是uboot的功能。
準備:機子有uboot。
步驟:
- 連線。將電腦的網口連上路由器的隨便一個口。然後用ssh也好,用串口也好,(我一般用串口),進入到路由器的後臺linux系統。
- 電腦ip設置。
- 在路由器後臺,執行reboot,在路由器重啟時,根據提示進入boot模式。
- 用幫助命令查看 查詢當前環境變量的命令。我的是printenv。找到我們要的server_ip.
- 在電腦上,將IPV4設置為靜態地址,就填剛剛的服務器地址。保存,退出。
- 將固件放在TFTP指定的路徑下,(可百度TFTP的使用方法),然後執行uboot命令。
- 傳輸: tftp 0x80060000 lede.bin //0x80060000是flash的固件保存地址,這個根據UNI自己的uboot決定,每個人都不同,可以執行2.2命令查看。lede.bin是我要燒錄的文件。
- 擦除:erase 0x9f050000 +$filesize //0x9f050000 是固件的啟動地址 $filesize 是變量,會自動帶入固件的大小。不要漏掉了+號。
- 拷貝:cp.b 0x80060000 0x9f050000 $filesize
- 設置啟動地址:set bootcmd 0x9f050000;save;
- 這裏可真的是一個坑。我也不知道怎麽描述,我的情況是,
- 當我燒錄openwrt15版本的時候,啟動地址是0x9f050000
- 當我燒錄lede17版本的時候,啟動地址要設置為0x9f800000,才能啟動。
- 啟動:boot。
方法2:在線升級
這是最方便的方法了。但是僅僅支持同一版本的系統才行在線更新。比如我15版本只能更新15,而不能刷lede版本。
步驟:進入路由器網頁管理界面,找到系統升級,選擇固件升級即可。
方法3:BIOS燒錄(最終版)
為什麽會寫這麽一個版本呢?因為我有一次在用TFTP燒錄,erase的時候,記錯地址 ,把uboot給擦沒了。這樣子uboot用不了,系統又無法啟動,徹徹底底成為磚了。
這個時候我只能把flash芯片卸下來,然後把uboot重新燒錄進去。BIOS燒錄要用到燒錄器,就是一個專門燒寫falsh的小設備。然後配合燒錄軟件,就可以完成燒錄。這是最底層的燒錄。也是uboot的燒錄。然後再把flash重新焊接上去,成功救活。
上面是我自己使用過的燒錄方法。好修昂還有其他方法,我就不研究了。工作中慢慢總會碰到很多燒寫固件的方法,再總結。
以上。
openwrt(三) 固件的燒錄