本書以MT7688無線路由器為例,按產(chǎn)品開發(fā)流程,詳細講解了OpenWrt系統(tǒng)開發(fā)知識,通過一套完整的物聯(lián)網(wǎng)網(wǎng)關(guān)實現(xiàn)方案,逐步做出一臺可量產(chǎn)的無線路由器產(chǎn)品。
本書共3章,主要內(nèi)容包括:OpenWrt開發(fā)前的準備、OpenWrt開發(fā)基礎(chǔ)、OpenWrt開發(fā)實戰(zhàn)。本書語言通俗易懂,即使從來沒接觸過OpenWrt和路由器開發(fā)的讀者也能順利上手。
本書對于想要從事物聯(lián)網(wǎng)網(wǎng)關(guān)開發(fā)工作的在校學生、程序開發(fā)愛好者或轉(zhuǎn)行從業(yè)者而言,是一本很好的入門教材;對于正在從事路由器開發(fā)的工程師,也有一定的參考和指導作用。
本書的硬件平臺選定的是MT7688,它是目前IoT(物聯(lián)網(wǎng))開發(fā)的首選平臺。MT7688系統(tǒng)單芯片可應(yīng)用于家庭自動化的橋接中心,它集成了1T1R 80211n WiFi radio、580 MHz MIPS 24KEcTM CPU、1-port fast Ethernet PHY、USB 20 host、PCIe、SD-XC、I2S/PCM,并支持多種低速輸出、輸入接口。MT7688支持兩種運作模式:IoT gateway模式與IoT device模式。在IoT gateway模式下,MT7688可通過PCIe接口連接至80211ac芯片組,并作為雙頻80211ac同步閘道。高速的USB 20接口可讓MT7688連接至額外的3G/LTE Modem硬件,或連接到H264 ISP,用作無線IP相機。IoT gateway模式也支持觸摸板、Bluetooth Low Energy(BLE)、Zigbee/Z-Wave和Sub-1 GHz RF等智能家庭應(yīng)用所需的硬件。
本書的軟件開發(fā)平臺是目前比較流行的OpenWrt。OpenWrt是嵌入式設(shè)備上運行的Linux系統(tǒng)。OpenWrt的文件系統(tǒng)是可寫的,開發(fā)者無需在每一次修改后重新編譯整個系統(tǒng),而且可以自由安裝同一款平臺編譯的*ipk軟件,令它更像一個小型的Linux電腦系統(tǒng),這樣也加快了開發(fā)速度。
如果對Linux系統(tǒng)有一定的認識,并想學習或接觸嵌入式 Linux系統(tǒng),那么OpenWrt是很適合的。OpenWrt支持各種處理器架構(gòu),對ARM、X86、PowerPC或MIPS都有很好的支持作用。OpenWrt擁有多達3000多種的軟件包,如工具鏈(toolchain)、BootLoader(Uboot)、內(nèi)核(Linux kernel)及根文件系統(tǒng)(rootfs)等。用戶只需一個簡單的make命令,即可方便快速地定制一個具有特定功能的嵌入式系統(tǒng)固件(Firmware)。
一般嵌入式Linux的開發(fā),無論是ARM、PowerPC或MIPS的處理器,都必須經(jīng)過以下6個步驟。
(1) 創(chuàng)建Linux 交叉編譯工具鏈(toolchain)。
(2) 移植BootLoader(主要是Uboot)。
(3) 移植Linux kernel。
(4) 創(chuàng)建rootfs(根文件系統(tǒng))。
(5) 編寫設(shè)備驅(qū)動程序。
(6) 編寫應(yīng)用軟件。
OpenWrt可以快速構(gòu)建一個包括上述6個步驟的完整的SDK開發(fā)環(huán)境。隨著Linux技術(shù)的成熟,大量不同的處理器內(nèi)核和應(yīng)用軟件相繼出現(xiàn)。熟悉這些嵌入式Linux的基本開發(fā)流程后,不應(yīng)再局限于MIPS處理器和無線路由器的開發(fā),可以嘗試在其他處理器或者非無線路由器的系統(tǒng)移植嵌入式Linux,定制適合自己的應(yīng)用軟件,并完成一個完整的嵌入式產(chǎn)品。
1.本書的內(nèi)容
本書的內(nèi)容幾乎涵蓋了shell、Makefile、裸機編程、Linux驅(qū)動開發(fā)中的所有知識點,雖然有些知識點講得并不是很深入,但作者會拋磚引玉,告訴讀者如何獲取相關(guān)資料。書中的各章節(jié)內(nèi)容都是根據(jù)實際項目開發(fā)步驟,按照從易到難的順序編排的,建議讀者按順序?qū)W習。第1、2章是與OpenWrt平臺相關(guān)的基礎(chǔ)知識,讀者首先需掌握開發(fā)環(huán)境的配置,然后掌握系統(tǒng)的編譯方法。只有配置好開發(fā)環(huán)境,學會使用相應(yīng)的指令編譯代碼并使之編譯通過,才能進行后面章節(jié)的學習。在講解完所有的知識點后,本書配套了一個商用的物聯(lián)網(wǎng)網(wǎng)關(guān)平臺,作為讀者實戰(zhàn)開發(fā)的調(diào)試設(shè)備,目的是以項目實戰(zhàn)來提高讀者的學習興趣,讓讀者學會如何運用前面所學的知識點開發(fā)產(chǎn)品。
2.本書的特點
(1) 實用性強。以真實的商用產(chǎn)品方案MT7688為例,全面講解了Linux驅(qū)動開發(fā)的流程和技能。雖然是以MT7688為例進行講解,但是其中相應(yīng)的知識可以衍生到任何使用Linux的設(shè)備中。
(2) 專業(yè)權(quán)威。本書的作者是物聯(lián)網(wǎng)網(wǎng)關(guān)的一線開發(fā)者,擁有多年網(wǎng)關(guān)項目開發(fā)經(jīng)驗,負責了多款網(wǎng)關(guān)產(chǎn)品的開發(fā)及量產(chǎn)維護工作,書中很多內(nèi)容是作者對真實項目的開發(fā)總結(jié)。
(3) 內(nèi)容全面。本書基本涵蓋了網(wǎng)關(guān)開發(fā)的所有知識點。
(4) 實驗可靠。書中所有源碼都經(jīng)過真實環(huán)境驗證,有極高的含金量。
(5) 售后答疑。所有讀者都可在https://wwwfengkeclub/GeekMart/su_fRTZ3qKY0jsp官網(wǎng)社區(qū)提問,作者會不定期答疑。
3.本書的適用范圍
(1) 想了解IoT網(wǎng)關(guān)設(shè)備的開發(fā)方法的開發(fā)者。
(2) 想從事IoT網(wǎng)關(guān)設(shè)備驅(qū)動研發(fā)工作的在校學生、程序開發(fā)愛好者或轉(zhuǎn)行從業(yè)者。
(3) 已經(jīng)入行或正在從事IoT網(wǎng)關(guān)設(shè)備驅(qū)動開發(fā)的工程師。
(4) 進行IoT網(wǎng)關(guān)設(shè)備驅(qū)動開發(fā)培訓的機構(gòu)和單位。
(5) 高校教師或?qū)W生。本書可用于高校實驗課程教材。
本書由劉燃統(tǒng)稿,由陳萬里、劉燃編寫。在此要特別感謝深圳瘋殼團隊的各位小伙伴為本書的編寫提供的可靠技術(shù)支持與精神鼓勵。此外,還要感謝西安電子科技大學出版社給予了大力支持。
由于時間倉促,雖然本書的所有內(nèi)容都經(jīng)過作者認真校核,但難免會有一些紕漏,讀者可通過社區(qū)論壇與作者互動。
作 者
2019年1月