深入淺出智能物聯(lián)網(wǎng)OpenWrt操作系統(tǒng)
互聯(lián)網(wǎng)的下一步是物聯(lián)網(wǎng),又稱為“萬物互聯(lián)”。人和人、人和物、物和物之間的連接在信息革命中不斷演進,其中長盛不衰的技術(shù)就是網(wǎng)絡(luò)和路由。MIPS指令集在過去的30 多年中持續(xù)創(chuàng)新,基于MIPS 指令集芯片的出貨速度持續(xù)增長,然而直到2018年4月,來自上海的SF16A18芯片出現(xiàn),基于MIPS的路由器芯片才實現(xiàn)了國產(chǎn)化。OpenWrt則是路由產(chǎn)品的操作系統(tǒng)。
自主、可控、開源正是未來掌握信息技術(shù)產(chǎn)業(yè)的密鑰,本書即圍繞自主的SF16A18芯片、開源的OpenWrt操作系統(tǒng)展開,讓你能夠把握萬物互聯(lián)時代的脈絡(luò)和先機。你將學(xué)習(xí)到的知識圖譜涉及目前行業(yè)中流行的網(wǎng)絡(luò)設(shè)備使用的操作系統(tǒng),涵蓋路由器、交換機、物聯(lián)網(wǎng)控制器、私有云服務(wù)器、邊緣計算等多個領(lǐng)域。本書從最易開始的使用環(huán)節(jié)循序漸進地涵蓋應(yīng)用開發(fā)、系統(tǒng)交叉編譯、軟件包制作,直指系統(tǒng)與硬件搭配的核心環(huán)節(jié)——啟動流程、ubus、Netifd與Hotplug,最終涉及ZigBee物聯(lián)網(wǎng)、工業(yè)物聯(lián)網(wǎng)開發(fā)技術(shù)。
本書既能滿足OpenWrt開發(fā)愛好者學(xué)習(xí)與高校教學(xué)需求,又適合作為路由產(chǎn)品開發(fā)人員的參考資料。
1.作者專業(yè):孫冰,《跟Hoowa學(xué)做路由器》作者、源力社區(qū)理事。2002年創(chuàng)建Perlchina中國協(xié)會,在中國區(qū)域推廣Perl語言,曾與Oreilly公司合作推廣該公司Perl語言系列書籍。鄭淇文,從事20年嵌入式工作,曾就職于東軟集團,負責(zé)車載電腦、及美國思科公司路由器研發(fā)。
2.國內(nèi)自主知識產(chǎn)權(quán)網(wǎng)絡(luò)處理器芯片本身也非常有價值,尤其是在中美貿(mào)易戰(zhàn)背景下,擁有不受制約的非ARM架構(gòu)處理器對國內(nèi)企業(yè)來說算是有了安全保障,不至于被外國政策“卡脖子”。
3.網(wǎng)絡(luò)處理器芯片在物聯(lián)網(wǎng)時代擁有更多用武之地,不僅可用于智能路由器,還能用于智能家居、智能硬件、智能機器人,有實際工業(yè)應(yīng)用價值。
孫冰(網(wǎng)名hoowa)
從小學(xué)4年級開始接觸互聯(lián)網(wǎng),2001年只身到中關(guān)村從事UNIX/Linux 系統(tǒng)開發(fā)。2003年成立Perl語言中國協(xié)會,致力于Perl語言推廣工作,在CSDN開設(shè)開源專家博客。2008年創(chuàng)建開源語音通信項目Freeiris。極企科技聯(lián)合創(chuàng)始人、GLG集團專家顧問、雷鋒網(wǎng)專欄撰稿人。
鄭淇文
具有多年智能產(chǎn)品研發(fā)經(jīng)驗,從事過大型打印機、投影儀、高清攝像機、智能路由器、物聯(lián)網(wǎng)網(wǎng)關(guān)等嵌入式產(chǎn)品研發(fā),獲得PMP、PRINCE2 Practitioner、CCSK等認證。開源愛好者,國內(nèi)智能路由器開發(fā)者之一。曾任大連半導(dǎo)體行業(yè)協(xié)會講師、通信外企培訓(xùn)講師,現(xiàn)任極氪智能科技智能座艙開發(fā)專家。
李興仁
在復(fù)旦大學(xué)獲得博士學(xué)位。“領(lǐng)航一號”北斗2 代衛(wèi)星導(dǎo)航接收芯片項目帶頭人;2008 年創(chuàng)辦上海盈方微電子有限公司,推出平板電腦ARM CPU芯片,6年后帶領(lǐng)企業(yè)成功上市;2014 年底二次創(chuàng)業(yè),創(chuàng)立矽昌通信,推出無線路由Wi-Fi AP芯片,現(xiàn)任矽昌通信技術(shù)有限公司董事長。
第 一篇 讓我們開始吧 1
1 從芯片開始 2
1.1 OpenWrt系統(tǒng)介紹 3
1.2 MIPS處理器體系結(jié)構(gòu) 4
1.3 SF16A18芯片 11
1.4 本書背景介紹 12
1.5 AIoT的技術(shù)應(yīng)用 13
1.6 表達約束 17
第二篇 SF16A18芯片的OpenWrt系統(tǒng) 18
2 環(huán)境與工具準備 19
2.1 SF16A18芯片的規(guī)格 19
2.2 DF1A開發(fā)板介紹 21
2.3 U-Boot網(wǎng)頁刷機 23
2.4 TTL串口調(diào)試 25
2.5 SSH遠程登錄 30
2.6 SCP文件傳輸 33
3 分區(qū)與軟件包 37
3.1 SPI Flash分區(qū)原理 37
3.2 文件系統(tǒng)與透明掛載 43
3.3 OPKG 軟件包管理 55
4 UCI統(tǒng)一配置 62
4.1 UCI介紹 62
4.2 UCI的配置文件 62
4.3 UCI配置文件語法 63
4.4 UCI命令行接口 65
4.5 UCI的Lua接口 71
5 網(wǎng)絡(luò)配置 82
5.1 配置文件 82
5.2 WAN口配置 88
5.3 LAN口配置 90
5.4 配置無線網(wǎng)絡(luò) 92
5.5 DHCP服務(wù) 100
5.6 如何連接外網(wǎng) .103
6 服務(wù)功能 .. 104
6.1 防火墻 104
6.2 UPnP與NATPMP 116
6.3 dropbear遠程登錄 119
6.4 系統(tǒng)、時鐘、日志 ..121
6.5 用命令刷固件 123
6.6 域名劫持 129
6.7 服務(wù)與常用命令 131
7 存儲器擴展 137
7.1 存儲器的準備 137
7.2 存儲器的使用 141
7.3 Windows文件共享 146
7.4 FTP文件共享 149
7.5 BT遠程下載 151
7.6 PPTP客戶端 156
8 SF16A18的LuCI界面 159
8.1 SF16A18-LuCI目錄結(jié)構(gòu) 159
8.2 界面的簡易定制 ..171
9 工具與命令 177
9.1 iPerf 177
9.2 網(wǎng)絡(luò)測試工具 190
9.3 Wi-Fi命令 197
第三篇 深入淺出OpenWrt系統(tǒng) 213
10 交叉編譯OpenWrt 214
10.1 安裝VirtualBox虛擬機 214
10.2 準備Ubuntu 16.04 環(huán)境 218
10.3 編譯OpenWrt固件 228
10.4 U-Boot固件編譯 234
11 軟件包開發(fā) 238
11.1 軟件包構(gòu)建基礎(chǔ) 238
11.2 創(chuàng)建常規(guī)軟件包 269
11.3 內(nèi)核軟件包創(chuàng)建 282
12 硬件定制 294
12.1 源代碼結(jié)構(gòu) 294
12.2 定制案例 299
13 總線原理分析 317
13.1 系統(tǒng)啟動原理 317
13.2 ubus總線原理 340
13.3 Netifd原理 365
13.4 Hotplug原理 391
14 擴展與實戰(zhàn) 405
14.1 PHP/Python開發(fā)環(huán)境 405
14.2 GPIO燈與按鍵控制 413
14.3 UART-TTL串口 420
14.4 ZigBee物聯(lián)網(wǎng)通信 423
14.5 工業(yè)物聯(lián)網(wǎng)網(wǎng)關(guān) 428