經(jīng)過前邊三個章節(jié),想必大部分人對路由器可以有一個初步了解,甚至有的童鞋已經(jīng)拿到了自己心儀的板子用來做開發(fā)測試。 從本章開始,我們將進入動手階段,這個階段需要有板子來操作。無板子操作干看也行,但是這就是像一桌子吃飯,別人吃的滿嘴流油,你流口水,這像話么。 進入設備的開發(fā)模式為什么說一定要進入這個呢,其實如果你不開發(fā)嵌入式設備,也可以不進串口,但是hoowa覺得,在軟件調試的時候,還是需要進到這里來,這里的信息比telnet看到的多很多。 一般路由器設備上面都會留有4個針腳,有的焊了排針,有的沒焊。這四個針腳就是他的調試串口。 算了說的太復雜了,就這么講吧, 我們的電腦有顯示器,有鼠標有鍵盤,這叫輸入輸出接口,用于人機對話的。路由器也有,路由器上就是串口,只要把串口連接到你的電腦上,你就可以看到系統(tǒng)里的東西。 教學套件的硬件中已經(jīng)包含了一個USB to TTL的串口板,他是專門用來實現(xiàn)連接路由器串口的。如果你不是教學資料自己的板子,請去淘寶上搜索”USB to TTL”查找自己心儀的轉換器,不過需要大家注意的是,有的路由器跟轉換芯片之間存在不兼容現(xiàn)象,如果遇到此種現(xiàn)象,請更換路由器或更換轉換芯片。 連接設備第一步: 將串口板的小板子驅動先在系統(tǒng)中安裝完成,如果是Linux有的已經(jīng)具備了這個驅動,并且自動識別成為了dev下的一個com口設備。 連接設備第二步: 將串口板連接到計算機上,等待Windows識別這個板子,然后查看您計算機的“設備管理器”,是否多了這么一個東西:
(圖:串口板的系統(tǒng)設備)
請記住(COMX)這個設備,其中X表示這個板子在你系統(tǒng)中當前的串口編號。 連接設備第三步: 將M150開發(fā)板連接到串口板上:
(圖:主板串口定義)
主板跟串口板連接器的連接如下表:
主板 串口小板
RX<————->TX
TX<————->RX
GND<————>GND
上面的表大家明白吧,就是很基本的電子連接,一個收(RX),一個發(fā)(TX),再有一條地線(GND),就可以傳輸了。需要大家注意的是,VCC或V3.3就不要連接了,那個是供電的,如果連接了可能會燒毀串口板哦。 連接設備第四步: 去www.putty.org下載一個putty這個小工具。然后打開連接類型選擇Serial。Serial line里填寫COMX(就是你剛才的那個串口的號)。Speed填寫115200。然后點擊打開。 請注意,由于各種設備的配置不同和Uboot不同,如果你使用的不是M150,連接速率請像你的供貨商詢問。
(圖:putty配置)
putty的使用方式,本文不再講解。如果沒用過putty的,請自己上網(wǎng)學習。 連接設備第五步: 打開路由器的電源。這個時候屏幕中應該可以看到很多信息了。效果差不多如下:
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
然后大量的數(shù)據(jù)涌出,這表明系統(tǒng)已經(jīng)在啟動了,當系統(tǒng)啟動差不多的時候,按下回車是否有反應,如果有反應表示你的串口連接已經(jīng)OK了。hoowa希望在大家沒有完全掌握產品之前,多用串口操作系統(tǒng),這樣即使設備崩潰了,崩潰信息也可以通過串口傳輸?shù)侥愕膫€人電腦上。 連接設備第六步: 串口板看起來簡單,但是由于各類路由開發(fā)板產品質量不完全一樣,因此可能存在的幾個問題跟大家說明下。 - putty打不開COM設備:驅動有問題,或參數(shù)填寫有問題,或你那個板子有問題。
- 開發(fā)板上電以后屏幕啥都不顯示:那三條線連接的有問題。
- 串口板過熱或冒煙:恭喜你板子燒了,讓你得瑟插到VCC過電了吧。
- 屏幕顯示了,但是現(xiàn)實的是亂碼:可能是Speed速率沒設置正確,也可能是線接觸不良。重新連接所有設備,包括重插串口板。
- 所有信息都能正常顯示,但是按回車沒反應并且也無法輸入信息:可能還是線連接有錯誤注意看順序,重新連接所有設備,包括重插串口板。
如果以上方法你連接還不行,要么是你的什么東西壞了,要么是你真的人品太爛了,請砸掉電腦。 認識bootloader 經(jīng)過上面的流程,可能有的朋友已經(jīng)發(fā)現(xiàn)了,這個時候你已經(jīng)進入系統(tǒng)了??梢暂斎胍恍藴实膌inux指令。那么不要那么急,我們再回過頭講下Bootloader(引導系統(tǒng))。 在嵌入式設備中Bootloader的工作要更多,他要做一些基本的外部電子設備的檢測,同時完成CPU所要求的初始化,再啟動Flash上的Linux內核。 Uboot是德國DENX小組開發(fā)、用于嵌入式CPU的Bootloader,它支持10多種不同的操作系統(tǒng)(包括x86架構)。其小巧速度快,已經(jīng)成為了Atheros(高通)和Ralink(聯(lián)發(fā)科)產品的標配引導系統(tǒng),并且在所有嵌入式的引導系統(tǒng)中市場占有率最大。所以我們的開發(fā)板也是Uboot系統(tǒng)。 硬件啟動揭秘很多書籍都詳細講解了Uboot如何引導的,其實我覺得講了也沒多大用,那玩意都是CPU廠家提供SDK里完善的東西,有幾個人需要改那個啊。所以這里我改變下說法。我說說系統(tǒng)到底咋啟動的。
上電—>晶振發(fā)起頻率抖動—>CPU啟動內部代碼—>Uboot啟動—>Uboot根據(jù)參數(shù)設置倍頻—>Uboot進行一些其他的內部寄存器配置—>Uboot啟動操作系統(tǒng)
首先設備上電,上電后晶振開始發(fā)起一個指定頻率的震動,這個時候CPU就根據(jù)晶振的頻率進行了啟動,CPU工作在晶振頻率下啟動自己的內部代碼(CPU內部有一小段代碼和一點點內存,用來做最基礎的事情,并且查找bootloader在哪),然后啟動uboot,最后進入操作系統(tǒng)。 好吧,我承認,這個太復雜了,我換個說法,汽車打火的時候需要啟動機,啟動以后,只要給發(fā)動機油,發(fā)動機就可以工作在高轉速下,帶著人出去跑了。CPU也是這個原理。 第一次刷機本來hoowa想從怎么編譯固件開始,但是又覺得太深了,我們要深入淺出,所以,我們先從刷固件開始。這樣,讓大家先熟悉系統(tǒng),以后再介紹那些更為精彩的世界。 刷機第一步: 首先,請下載網(wǎng)上OpenWRT官方已經(jīng)制作好的基本固件。如M150開發(fā)板的可用標準固件同WR743nd-v2(第二版)的硬件是接近的,因此可以刷為這個路由器所設計的OpenWRT固件。 下載地址:http://downloads.openwrt.org/snapshots/trunk/ar71xx/
文件名為:openwrt-ar71xx-generic-tl-wr720n-v3-squashfs-sysupgrade.bin 非教程開發(fā)板請向經(jīng)銷商咨詢可刷哪個官方OpenWRT固件,如果你的經(jīng)銷商說沒有,那就扔了那個板子換一個有的。 刷機第二步: (ps:如果你不是本教程的M150開發(fā)板,請參考本教程的流程并向經(jīng)銷商詢問Uboot的刷機使用方法,以下步驟均僅針對教程板型) 下載好以后,將你的電腦用網(wǎng)線連接到開發(fā)板中間的那個網(wǎng)口(請注意這個時候,你的串口板子要連接電腦的putty,這樣才能知道刷機的過程中到底有什么信息輸出)。 最好是直接連接網(wǎng)線 ,有的交換機刷機過程中會閃斷失敗。同時, 這時應該斷開電腦的無線網(wǎng)絡 ,以防止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
刷機第三步: 將電腦網(wǎng)卡設置為固定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表示當前處理的位置計數(shù)。當寫入完成后屏幕將顯示:
Erased 125 sectors
write addr: 9f020000
Finish Upgra U-Boot 1.1.4 (Apr 11 2013 – 01:45:00)
….
procd: – init complete -
中間有大量系統(tǒng)啟動信息,暫時不用理會。按下回車后顯示:
BusyBox v1.19.4 (2014-04-28 04:51:54 UTC) built-in shell (ash)
Enter ‘help’ for a list of built-in commands. _______ ________ __
| |.—–.—–.—–.| | | |.—-.| |_
| – || _ | -__| || | | || _|| _|
|_______|| __|_____|__|__||________||__| |____|
|__| W I R E L E S S F R E E D O M
—————————————————–
BARRIER BREAKER (Bleeding Edge, r40576)
—————————————————–
* 1/2 oz Galliano Pour all ingredients into
* 4 oz cold Coffee an irish coffee mug filled
* 1 1/2 oz Dark Rum with crushed ice. Stir.
* 2 tsp. Creme de Cacao
—————————————————–
root@OpenWrt:/#
表示你刷機完成。 如果你在以上刷機流程遇到了問題,請清空瀏覽器,或更換瀏覽器,最不濟更換個電腦吧,然后重復操作以上步驟。 在本章刷機已經(jīng)完成,細心的朋友會發(fā)現(xiàn)這個時候系統(tǒng)已經(jīng)可用了,沒錯,現(xiàn)在你已經(jīng)有了一個自己的純凈版的OpenWRT系統(tǒng),具備了最最最底層OpenWRT的支持,這個時候你可以隨便的去玩。玩壞了不要緊,還可以重新刷對不對。 隨便折騰吧。在下章,我們將一起討論下系統(tǒng)方面的知識,以及基本的系統(tǒng)指令和配置方法。
|