如何从零开始学习OpenWrt

OpenWRT是一个高度模块化、高度自动化嘚嵌入式Linux系统拥有强大的网络组件和扩展性,常常被用于工控设备、电话、小型机器人、智能家居、路由器以及VOIP设备中同时,它还提供了100多个已编译好的软件而且数量还在不断增加,而 OpenWrt SDK 更简化了开发软件的工序OpenWRT不同于其他许多用于路由器的发行版,它是一个从零开始编写的、功能齐全的、容易修改的路由器操作系统实际上,这意味着您能够使用您想要的功能而不加进其他的累赘而支持这些功能笁作的linux kernel又远比绝大多数发行版来得新。

如果对 Linux 系统有一定的认识, 并想学习或接触嵌入式 Linux 的话, OpenWRT很适合而且OpenWRT支持各种处理器架构,无论是对ARMX86,PowerPC或者MIPS都有很好的支持其多达3000多种软件包,囊括从工具链(toolchain)到内核(linux kernel),到软件包(packages)再到根文件系统(rootfs)整个体系,使得用户只需简单的一个make命令即可方便快速地定制一个具有特定功能的嵌入式系统来制作固件

一般嵌入式 Linux 的开发过程, 无论是 ARM, PowerPC 或 MIPS 的处理器, 都必需经过以下的开发过程:创建 Linux 交叉编译环境;建立 Bootloader;移植 Linux 内核;建立 Rootfs (根文件系统);安装驱动程序;安装软件;

熟悉这些嵌入式 Linux 的基本开发流程后,不再局限于 MIPS 處理器和无线路由器, 可以尝试在其它处理器, 或者非无线路由器的系统移植嵌入式 Linux, 定制合适自己的应用软件, 并建立一个完整的嵌入式产品

夲课程将会讲到OpenWrt系统介绍,WR703N介绍OpenWrt源码下载,OpenWrt编辑前的配置OpenWrt源码的编译,OpenWrt命令行升级其中重点介绍WR703N,及它的特点主要性能,市场应鼡

电机控制研发交流1群:

射频/微波/无线研发交流1群:

电路城官方交流群,期待你的加入

八年网络通信行业软件开发经历长期从事光网络和无线网络通信设备的研发,精通Linux 网络驱动bootloader, 各种网络通信协议。曾独立完成cnc锁刀机控制系统的开发业余培训入门级嵌入式li...

不想花太多时间自己摸索的软件工程师,想做嵌入系统设计的学生智能设备DIY爱好者。

以理论加实践帮助学员了解OpenWrt,并使用OpenWrt开发项目
OpenWrt是流行无线路由器软件开发平台,支持主流wifi解决方案使用OpenWrt做开发平台可以省去很多工作量。对于初学嵌入式Linux开发的人OpenWrt是一个良好的學习平台,网络资源丰富开源项目多,有助于对Linux系统开发的学习随着时间的推移,系统将不仅仅偏重于路由器而是会更广泛得支持各种设备,向物联网开发平台发展OpenWrt会和Android一样成为广泛使用的开发平台。

  • 「仅限付费用户」点击下载“OpenWrt概述.pptx”

  • 「仅限付费用户」点击下载“webshow.pptx”

  • OpenWrt代码的下载和编译

    「仅限付费用户」点击下载“OpenWrt代码的下载和编译.pptx”

  • 「仅限付费用户」点击下载“uci统一配置接口.pptx”

  • 「仅限付费用户」點击下载“ubus.pptx”

  • 「仅限付费用户」点击下载“主板简介.pptx”

  • 「仅限付费用户」点击下载“添加软件包.pptx”

  • 「仅限付费用户」点击下载“soucecode.rar”

  • DS18b20温度传感器连接到树莓派

  • 「仅限付费用户」点击下载“BL2348.pptx”

  • 「仅限付费用户」点击下载“bl2348.rar”

1、搭建开发环境在执行make menuconfig后会出現下图:

其中,图中红框部分是我定制路由器的系统版本大家可以根据不同的路由器进行不同的选择;绿框部分表示我们需要编译一个SDK開发环境(默认情况下,此项未勾选)

编译过程中需要通过官网下载很多相关的软件包,所以必须保证能够顺利连上外网由于 下载速喥的限制,编译过程大概需要数小时编译结束后,所有的产品都会放在编译根目录下的bin/yourtarget/. 例如:我所编译的产物都放在./bin/brcm47xx/下其中文件主要有幾类:

(1).bin/.trx 文件: 这些都是在我们所选的target-system的类别之下,针对不同路由器型号、版本编译的路由器固件这些不同路由器的型号和版本是openwrt预 先設置好的,我们不需要更改至于.bin和.trx的区别,一种说法是第一次刷路由器的时候,需要用.bin文件如果需要再升级,则不能再使 用.bin文件洏需要用.trx文件。原因是.bin是将路由器的相关配置信息和.trx封装在一起而生成的封包,也就是说是包含路由器版本信息 的.trx在第一次刷固件的時候,我们需要提供这样的信息而在后续升级时,则不再需要用.trx文件即可。

(2)packages文件夹: 里面包含了我们在配置文件里设定的所有编译恏的软件包默认情况下,会有默认选择的软件包

(4)md5sums 文件: 这个文件记录了所有我们编译好的文件的MD5值,来保证文件的完整性因为文件的不完整,很容易将路由器变成“砖头”

需要主要的是,编译完成后一定要将编译好的bin目录进行备份(如果里面东西对你很重要的話),因为在下次编译之前执行make clean 会将bin目录下的所有文件给清除掉!!

在编译根目录下会有一个dl的目录,这个目录其实是“download”的简写在 编译湔期,需要从网络下载的数据包都会放在这个目录下这些软件包的一个特点就是,会自动安装在所编译的固件中也就是我们make menuconfig的时候,為固件配置的一些软件包如果我们需要更改这些源码包,只需要将更改好的源码包打包成相同的名字放在这个目录下然后开始编 译即鈳。编译时会将软件包解压到build_dir目录下。
当然你也可以自己在dl里面创建自己的软件包,然后更改相关的配置文件让openwrt可以识别这个文件包。

由于我的项目更改的内容是底层的需要跟固件一起安装。所以我使用的方法就是直接更改dl目录下软件包,然后重新进行固件编译感觉类似于Linux的内核编译。反复编过十多次没有任何问题。

3、 新建自己的packages对于自己新建的package而这个package又不需要随固件一起安装,换句话说就是可以当做一个可选软件包的话。我们可以利用我们的SDK环境来单独编译编译后会生成一个ipk的文件包。然后利用 opkg install xxx.ipk 来安装这个软件

我要回帖

 

随机推荐