本书以MT7688无线路由器为例,按产品开发流程,详细讲解了OpenWrt系统开发知识,通过一套完整的物联网网关实现方案,逐步做出一台可量产的无线路由器产品。
本书共3章,主要内容包括:OpenWrt开发前的准备、OpenWrt开发基础、OpenWrt开发实战。本书语言通俗易懂,即使从来没接触过OpenWrt和路由器开发的读者也能顺利上手。
本书对于想要从事物联网网关开发工作的在校学生、程序开发爱好者或转行从业者而言,是一本很好的入门教材;对于正在从事路由器开发的工程师,也有一定的参考和指导作用。
本书的硬件平台选定的是MT7688,它是目前IoT(物联网)开发的首选平台。MT7688系统单芯片可应用于家庭自动化的桥接中心,它集成了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等智能家庭应用所需的硬件。
本书的软件开发平台是目前比较流行的OpenWrt。OpenWrt是嵌入式设备上运行的Linux系统。OpenWrt的文件系统是可写的,开发者无需在每一次修改后重新编译整个系统,而且可以自由安装同一款平台编译的*ipk软件,令它更像一个小型的Linux电脑系统,这样也加快了开发速度。
如果对Linux系统有一定的认识,并想学习或接触嵌入式 Linux系统,那么OpenWrt是很适合的。OpenWrt支持各种处理器架构,对ARM、X86、PowerPC或MIPS都有很好的支持作用。OpenWrt拥有多达3000多种的软件包,如工具链(toolchain)、BootLoader(Uboot)、内核(Linux kernel)及根文件系统(rootfs)等。用户只需一个简单的make命令,即可方便快速地定制一个具有特定功能的嵌入式系统固件(Firmware)。
一般嵌入式Linux的开发,无论是ARM、PowerPC或MIPS的处理器,都必须经过以下6个步骤。
(1) 创建Linux 交叉编译工具链(toolchain)。
(2) 移植BootLoader(主要是Uboot)。
(3) 移植Linux kernel。
(4) 创建rootfs(根文件系统)。
(5) 编写设备驱动程序。
(6) 编写应用软件。
OpenWrt可以快速构建一个包括上述6个步骤的完整的SDK开发环境。随着Linux技术的成熟,大量不同的处理器内核和应用软件相继出现。熟悉这些嵌入式Linux的基本开发流程后,不应再局限于MIPS处理器和无线路由器的开发,可以尝试在其他处理器或者非无线路由器的系统移植嵌入式Linux,定制适合自己的应用软件,并完成一个完整的嵌入式产品。
1.本书的内容
本书的内容几乎涵盖了shell、Makefile、裸机编程、Linux驱动开发中的所有知识点,虽然有些知识点讲得并不是很深入,但作者会抛砖引玉,告诉读者如何获取相关资料。书中的各章节内容都是根据实际项目开发步骤,按照从易到难的顺序编排的,建议读者按顺序学习。第1、2章是与OpenWrt平台相关的基础知识,读者首先需掌握开发环境的配置,然后掌握系统的编译方法。只有配置好开发环境,学会使用相应的指令编译代码并使之编译通过,才能进行后面章节的学习。在讲解完所有的知识点后,本书配套了一个商用的物联网网关平台,作为读者实战开发的调试设备,目的是以项目实战来提高读者的学习兴趣,让读者学会如何运用前面所学的知识点开发产品。
2.本书的特点
(1) 实用性强。以真实的商用产品方案MT7688为例,全面讲解了Linux驱动开发的流程和技能。虽然是以MT7688为例进行讲解,但是其中相应的知识可以衍生到任何使用Linux的设备中。
(2) 专业权威。本书的作者是物联网网关的一线开发者,拥有多年网关项目开发经验,负责了多款网关产品的开发及量产维护工作,书中很多内容是作者对真实项目的开发总结。
(3) 内容全面。本书基本涵盖了网关开发的所有知识点。
(4) 实验可靠。书中所有源码都经过真实环境验证,有极高的含金量。
(5) 售后答疑。所有读者都可在https://wwwfengkeclub/GeekMart/su_fRTZ3qKY0jsp官网社区提问,作者会不定期答疑。
3.本书的适用范围
(1) 想了解IoT网关设备的开发方法的开发者。
(2) 想从事IoT网关设备驱动研发工作的在校学生、程序开发爱好者或转行从业者。
(3) 已经入行或正在从事IoT网关设备驱动开发的工程师。
(4) 进行IoT网关设备驱动开发培训的机构和单位。
(5) 高校教师或学生。本书可用于高校实验课程教材。
本书由刘燃统稿,由陈万里、刘燃编写。在此要特别感谢深圳疯壳团队的各位小伙伴为本书的编写提供的可靠技术支持与精神鼓励。此外,还要感谢西安电子科技大学出版社给予了大力支持。
由于时间仓促,虽然本书的所有内容都经过作者认真校核,但难免会有一些纰漏,读者可通过社区论坛与作者互动。
作 者
2019年1月