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