【硬創邦】跟hoowa學做智能路由(四):第一次刷機

題記:沖,而用之或不盈。淵兮,似萬物之宗。挫其銳,解其紛,和其光,同其塵。湛兮似或存。吾不知誰之子,象帝之先。

經過前邊三個章節,想必大部分人對路由器可以有一個初步瞭解,甚至有的童鞋已經拿到瞭自己心儀的板子用來做開發測試。

從本章開始,我們將進入動手階段,這個階段需要有板子來操作。無板子操作幹看也行,但是這就是像一桌子吃飯,別人吃的滿嘴流油,你流口水,這像話麼。

進入設備的開發模式

為什麼說一定要進入這個呢,其實如果你不開發嵌入式設備,也可以不進串口,但是hoowa覺得,在軟件調試的時候,還是需要進到這裡來,這裡的信息比telnet看到的多很多。

一般路由器設備上面都會留有4個針腳,有的焊瞭排針,有的沒焊。這四個針腳就是他的調試串口。 算瞭說的太復雜瞭,就這麼講吧,我們的電腦有顯示器,有鼠標有鍵盤,這叫輸入輸出接口,用於人機對話的。路由器也有,路由器上就是串口,隻要把串口連接到你的電腦上,你就可以看到系統裡的東西。

教學套件的硬件中已經包含瞭一個USB to TTL的串口板,他是專門用來實現連接路由器串口的。如果你不是教學資料自己的板子,請去淘寶上搜索”USB to TTL”查找自己心儀的轉換器,不過需要大傢註意的是,有的路由器跟轉換芯片之間存在不兼容現象,如果遇到此種現象,請更換路由器或更換轉換芯片。



連接設備第一步:

將串口板的小板子驅動先在系統中安裝完成,如果是Linux有的已經具備瞭這個驅動,並且自動識別成為瞭dev下的一個com口設備。

連接設備第二步:

將串口板連接到計算機上,等待Windows識別這個板子,然後查看您計算機的“設備管理器”,是否多瞭這麼一個東西:

4-串口板的系統設備
(圖:串口板的系統設備)

請記住(COMX)這個設備,其中X表示這個板子在你系統中當前的串口編號。

連接設備第三步:

將M150開發板連接到串口板上:

4-主板串口定義
(圖:主板串口定義)

主板跟串口板連接器的連接如下表:

主板 串口小板
RX<————->TX
TX<————->RX
GND<————>GND

上面的表大傢明白吧,就是很基本的電子連接,一個收(RX),一個發(TX),再有一條地線(GND),就可以傳輸瞭。需要大傢註意的是,VCC或V3.3就不要連接瞭,那個是供電的,如果連接瞭可能會燒毀串口板哦。

連接設備第四步:

去www.putty.org下載一個putty這個小工具。然後打開連接類型選擇Serial。Serial line裡填寫COMX(就是你剛才的那個串口的號)。Speed填寫115200。然後點擊打開。

請註意,由於各種設備的配置不同和Uboot不同,如果你使用的不是M150,連接速率請像你的供貨商詢問。

4-putty的配置
(圖:putty配置)

putty的使用方式,本文不再講解。如果沒用過putty的,請自己上網學習。

連接設備第五步:

打開路由器的電源。這個時候屏幕中應該可以看到很多信息瞭。效果差不多如下:

U-Boot 1.1.4 (Apr 11 2013 – 01:45:00)

DRAM: 64 MB
led turning on for 1s…
id read 0x100000ff
flash size 8388608, sector count = 128
Flash: 8 MB
Using default environment

然後大量的數據湧出,這表明系統已經在啟動瞭,當系統啟動差不多的時候,按下回車是否有反應,如果有反應表示你的串口連接已經OK瞭。hoowa希望在大傢沒有完全掌握產品之前,多用串口操作系統,這樣即使設備崩潰瞭,崩潰信息也可以通過串口傳輸到你的個人電腦上。

連接設備第六步:

串口板看起來簡單,但是由於各類路由開發板產品質量不完全一樣,因此可能存在的幾個問題跟大傢說明下。

  • putty打不開COM設備:驅動有問題,或參數填寫有問題,或你那個板子有問題。
  • 開發板上電以後屏幕啥都不顯示:那三條線連接的有問題。
  • 串口板過熱或冒煙:恭喜你板子燒瞭,讓你得瑟插到VCC過電瞭吧。
  • 屏幕顯示瞭,但是現實的是亂碼:可能是Speed速率沒設置正確,也可能是線接觸不良。重新連接所有設備,包括重插串口板。
  • 所有信息都能正常顯示,但是按回車沒反應並且也無法輸入信息:可能還是線連接有錯誤註意看順序,重新連接所有設備,包括重插串口板。

如果以上方法你連接還不行,要麼是你的什麼東西壞瞭,要麼是你真的人品太爛瞭,請砸掉電腦。

認識bootloader

經過上面的流程,可能有的朋友已經發現瞭,這個時候你已經進入系統瞭。可以輸入一些標準的linux指令。那麼不要那麼急,我們再回過頭講下Bootloader(引導系統)。

在嵌入式設備中Bootloader的工作要更多,他要做一些基本的外部電子設備的檢測,同時完成CPU所要求的初始化,再啟動Flash上的Linux內核。

Uboot是德國DENX小組開發、用於嵌入式CPU的Bootloader,它支持10多種不同的操作系統(包括x86架構)。其小巧速度快,已經成為瞭Atheros(高通)和Ralink(聯發科)產品的標配引導系統,並且在所有嵌入式的引導系統中市場占有率最大。所以我們的開發板也是Uboot系統。

硬件啟動揭秘

很多書籍都詳細講解瞭Uboot如何引導的,其實我覺得講瞭也沒多大用,那玩意都是CPU廠傢提供SDK裡完善的東西,有幾個人需要改那個啊。所以這裡我改變下說法。我說說系統到底咋啟動的。

上電—>晶振發起頻率抖動—>CPU啟動內部代碼—>Uboot啟動—>Uboot根據參數設置倍頻—>Uboot進行一些其他的內部寄存器配置—>Uboot啟動操作系統

首先設備上電,上電後晶振開始發起一個指定頻率的震動,這個時候CPU就根據晶振的頻率進行瞭啟動,CPU工作在晶振頻率下啟動自己的內部代碼(CPU內部有一小段代碼和一點點內存,用來做最基礎的事情,並且查找bootloader在哪),然後啟動uboot,最後進入操作系統。

好吧,我承認,這個太復雜瞭,我換個說法,汽車打火的時候需要啟動機,啟動以後,隻要給發動機油,發動機就可以工作在高轉速下,帶著人出去跑瞭。CPU也是這個原理。

第一次刷機

本來hoowa想從怎麼編譯固件開始,但是又覺得太深瞭,我們要深入淺出,所以,我們先從刷固件開始。這樣,讓大傢先熟悉系統,以後再介紹那些更為精彩的世界。

刷機第一步:

首先,請下載網上OpenWRT官方已經制作好的基本固件。如M150開發板的可用標準固件同WR743nd-v2(第二版)的硬件是接近的,因此可以刷為這個路由器所設計的OpenWRT固件。

下載地址:http://downloads.openwrt.org/snapshots/trunk/ar71xx/
文件名為:openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-sysupgrade.bin

非教程開發板請向經銷商咨詢可刷哪個官方OpenWRT固件,如果你的經銷商說沒有,那就扔瞭那個板子換一個有的。

刷機第二步:

(ps:如果你不是本教程的M150開發板,請參考本教程的流程並向經銷商詢問Uboot的刷機使用方法,以下步驟均僅針對教程板型)

下載好以後,將你的電腦用網線連接到開發板三個網口裡中間那個。請註意兩點:1.你的串口板子要連接電腦的putty,這樣才能知道刷機的過程中到底有什麼信息輸出;2.最好是直接連接網線並斷開無線網絡,防止部分交換機刷機過程中閃斷失敗或IP地址沖突造成電腦路由表不對。

按住Reset按鈕,同時給路由器上電,通過Putty看到如下信息後松開Reset按鍵:

eth1: 00:03:7f:ff:ff:fe
athrs26_reg_init_lan
ATHRS26: resetting s26
ATHRS26: s26 reset done
eth1 up
eth0, eth1
Enter Backup Mode…
eth1 link down
eth0 link down
eth1 link down
uip init…
http init…
eth1 link down
eth1 link down
……
eth1 link down
eth1 link down
dup 1 speed 1000

刷機第三步:

將電腦網卡設置為固定IP地址192.168.1.X的地址,通過瀏覽器(建議使用通用瀏覽器如IE、Chrome等,不推薦使用加殼瀏覽器)訪問192.168.1.1,你將看到刷機的界面。

用那個選擇文件的按鈕選中固件openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-sysupgrade.bin這個文件,然後提交。

提交後屏幕將顯示:

upgrade firmware now!

Uploaded RunTime Image is 2949124 Bytes
We will update the ==firmware== NOW!

First 0×2 last 0x7e sector size 0×10000 86

其中那個86表示當前處理的位置計數。當寫入完成後屏幕將顯示:

Erased 125 sectors
write addr: 9f020000
Finish Upgra

U-Boot 1.1.4 (Apr 11 2013 – 01:45:00)
….
procd: – init complete –

中間有大量系統啟動信息,暫時不用理會。按下回車後顯示:

1

表示你刷機完成。

如果你在以上刷機流程遇到瞭問題,請清空瀏覽器,或更換瀏覽器,最不濟更換個電腦吧,然後重復操作以上步驟。

在本章刷機已經完成,細心的朋友會發現這個時候系統已經可用瞭,沒錯,現在你已經有瞭一個自己的純凈版的OpenWRT系統,具備瞭最最最底層OpenWRT的支持,這個時候你可以隨便的去玩。玩壞瞭不要緊,還可以重新刷對不對。 隨便折騰吧。在下章,我們將一起討論下系統方面的知識,以及基本的系統指令和配置方法。

最後,大傢現在可以開始提問,在雷鋒網文章評論、公眾號「宅客」:letshome、QQ群:196302618、郵箱:DIYRouter#163.com都可以提交,問題我將會在下章的時候統一解答。需要提醒下,我並不是高手,我回答問題有三個原則:1、我會的我直接回答 2、我不太會的我看著回答 3、我不會的我瞎忽悠 所以我給的答案是否正確需要大傢自行判斷。

qrcode_for_gh_55cd9ad5ea6d_430

Comments are closed.