XiaomiRouter自學(xué)之路(01-項(xiàng)目背景)
公司是做無線路由器的,加入公司一年多了恨统,沒能按意愿學(xué)到更多有關(guān)linux驅(qū)動及其相關(guān)的知識刺覆,這在我以前的文章2016總結(jié)和2017愿景中也有提到黔州,我只能在其他時間進(jìn)行自行充電碘橘,所以才有了現(xiàn)在這個自學(xué)的項(xiàng)目XiaomiRouter。
一次偶然的機(jī)會碉钠,租的房子網(wǎng)絡(luò)不穩(wěn)定纲缓,以為路由器壞了,想想一個Tenda路由器也用了這么久應(yīng)該換了喊废,就在房間用不需要太好祝高,選擇了小米路由器3,路由器還沒到就發(fā)現(xiàn)原本的Tenda路由器好好的操禀。
公司開發(fā)的路由器是在開源的openwrt系統(tǒng)基礎(chǔ)上開發(fā)褂策,但自己都沒真正搭建openwrt系統(tǒng)或?qū)ζ渌麖S家的路由器進(jìn)行刷機(jī),于是就打算用剛買回來的小米路由器3進(jìn)行刷機(jī)測試颓屑。
在網(wǎng)絡(luò)上下載了開發(fā)版固件進(jìn)行刷機(jī)安裝ssh等斤寂,發(fā)現(xiàn)挺無聊的,就是更新安裝揪惦,都在應(yīng)用層操作遍搞。我更想去接觸源碼,更改底層的驅(qū)動等器腋。
弄過linux驅(qū)動的應(yīng)該都清楚溪猿,一般我們的CPU根據(jù)特定幾個引腳電平的組合可以使用不同的方式進(jìn)行啟動钩杰,發(fā)現(xiàn)小米路由器3使用的是nand flash進(jìn)行存儲啟動的,這就尷尬了诊县。
個人肯定不會去買nand燒錄器讲弄,一個都要到千百來塊,而且芯片拆下來手動焊接可不容易依痊,關(guān)鍵是小米官方的固件u-boot啟動后既然沒有倒計時避除,想要在u-boot階段進(jìn)行在線更新都沒辦法。所以得找到用spi flash啟動的胸嘁,同是MT7620平臺的路由器才有可能自己開發(fā)瓶摆。
查閱后發(fā)現(xiàn)小米路由器mini就是,于是又買了個小米路由器mini性宏,下面將小米路由器mini和小米路由器3的硬件信息進(jìn)行對比:
可以觀察到兩個平臺其實(shí)都是一樣的群井,就是存儲方式不一樣,小米路由器mini使用的是16M的spi flash進(jìn)行存儲毫胜,小米路由器3使用的是128M的nand flash進(jìn)行存儲书斜,所以應(yīng)該可以使用小米路由器mini來進(jìn)行研究。
在觀察小米路由器mini和小米路由器3的硬件PCB板酵使,發(fā)現(xiàn)小米路由器3上面有個與小米路由器mini一樣的spi flash的接口菩佑,就是沒有焊接芯片。
所以又有了新的想法凝化,現(xiàn)在既然小米路由器3上面有spi flash的接口,那我是不是也可以將此處的spi flash焊接上酬荞,燒上mini的固件搓劫,然后更改啟動方式,使小米路由器3也能從spi flash啟動混巧,然后試著去寫nand flash的驅(qū)動枪向,這樣小米路由器3也有辦法更改u-boot了。
經(jīng)過幾天的資料查找咧党,軟件部分應(yīng)該可以實(shí)現(xiàn)秘蛔,u-boot使用MTK開源SDK里面的u-boot,系統(tǒng)使用開源的openwrt系統(tǒng)傍衡,硬件部分現(xiàn)在還不確定深员,畢竟沒有小米路由器3的原理圖等,擔(dān)心后面沒辦法找到引腳使小米路由器3切換到spi flash啟動蛙埂, 但至少可以用小米路由器mini進(jìn)行自學(xué)之路倦畅。
現(xiàn)在按自己有限的能力進(jìn)行初步的項(xiàng)目方向安排
- 軟硬件平臺搭建
- GitHub環(huán)境搭建(U-boot、Openwrt)
- 小米路由器mini U-boot實(shí)現(xiàn)绣的,spi啟動叠赐、tftp更新欲账、引導(dǎo)Openwrt等
- 小米路由器mini Openwrt基礎(chǔ)功能實(shí)現(xiàn),應(yīng)用層的知識暫時先不考慮
- 小米路由器3 U-boot實(shí)現(xiàn)芭概,spi/nand啟動赛不、tftp更新、引導(dǎo)Openwrt等
- 小米路由器3基礎(chǔ)功能實(shí)現(xiàn)罢洲,應(yīng)用層的知識暫時先不考慮
通過這一過程可以學(xué)習(xí)到很多知識踢故,自己搭建環(huán)境,需要把u-boot和openwrt的nand移植好奏路,期間還會有spi畴椰、net等多方面的知識,雖然還不知道自己是否有能力實(shí)現(xiàn)計劃中的功能鸽粉,可能會走很多彎路斜脂,但我會將自己學(xué)習(xí)的過程進(jìn)行記錄,持續(xù)不斷的往目標(biāo)前進(jìn)触机,就算沒能全部成功也可以學(xué)到很多知識帚戳。
項(xiàng)目背景的分析就到這邊,有感悟時會持續(xù)會更新儡首。
注:以上內(nèi)容都是本人在學(xué)習(xí)過程積累的一些心得片任,難免會有參考到其他文章的一些知識荣德,如有侵權(quán)掏导,請及時通知我,我將及時刪除或標(biāo)注內(nèi)容出處吧黄,如有錯誤之處也請指出氛濒,進(jìn)行探討學(xué)習(xí)产场。文章只是起一個引導(dǎo)作用,詳細(xì)的數(shù)據(jù)解析內(nèi)容還請查看XiaomiRouter相關(guān)教程舞竿,感謝您的查閱京景。