基于OpenWRT的路由系统固件制作方案

2021-11-10 12:25王宪宇张鲁
科学与生活 2021年3期

王宪宇 张鲁

摘要:通过学习OpenWRT可以更深入地了解Linux系统以及嵌入式的知识,并且学习路由开发的知识。本文通过虚拟机搭建开发环境来实现根据自己的需求来开发一个符合自己需求的路由器系统。

关键词:OpenWRT,Linux,编译环境

1. 引言

OpenWRT是一个嵌入式Linux系统,它不提供单一的、不可修改的固件,而是一个提供软件包管理功能的完全可写文件系统。这将使得用户可以摆脱供应商提供的应用程序范围和配置,并允许用户使用适合于任何应用程序的软件包定制设备。

2.OpenWRT系统简介

2.1OpenWRT系统的发展历程

在2004年1月,正式启动了OpenWRT项目,第一个版本基于Linksys提供的GPL源代码和uclibc的buildroot项目,这个版本被称为“stable”版,目前仍被许多互联网项目使用,作为知名的Freifunk-Firmware和sip @ home便是其中重要的代表。

2005年初,一些新的开发者加入了这个项目,几个月后他们发布了第一个“experimental”版本,与上一个版本的不同之处在于,这个版本几乎完全抛弃了Linksys的GPL源代码,采用buildroot2作为核心技术,完全模块化OpenWRT,使用Linux官方发布的核心源代码(2.4.30),外加一些补丁和网络驱动。开发团队给OpenWRT增加了很多免费工具。用户可以将image镜像文件直接写入闪存(mtd),并设置无线功能和VLAN切换功能。他们把这个版本名为“White Russian”,1.0版将于2005年底发布。

2.2OpenWRT系统的特点

(1)性能高,稳定性强:OpenWRT由网络专家等专业人士设计,专注于网络性。OpenWRT汇集了许多最新研究的算法,因此其性能远远好于供应商提供的原厂固件。

lOpenWRT相当稳定,经受住了长时间运行的考验。

l通过优化无线网络,可以支持设备之間更高的数据速率和平衡的通信时间。

l即使制造商停止更新,许多老旧设备仍然可受OpenWRT系统更新改进支持。(只要用户的设备内存或闪存可容纳新版本)

(2)安全性强:作为一个开源软件,来自全世界的许多开发者在发布前反复检查它的源码。

l没有硬件供应商隐藏的后门程序。

l得益不受常见攻击影响的Linux操作系统,OpenWRT可抵抗常见漏洞。

lOpenWRT积极更新,所以大部分漏洞在发现后不久就会被立即修复。

l许多旧设备仍然受OpenWRT支持,并继续享受OpenWRT的安全性和便携性,能继续延长用户路由器的使用寿命。

(3)可扩展性:OpenWRT提供了许多以往只有在高端设备上才提供的各种功能。它拥有超过3000个标准化应用软件包,让用户可以轻松地将这些软件应用于各种支持的设备,甚至包括几年前的路由器。

(4)易于配置:OpenWRT是真正的基于Linux的系统,因此用户可以完全控制路由器设备的所有功能。

lOpenWRT可以使用通过SSH建立的命令行和基于Web的用户界面进行配置。

l配置信息存储在纯文本文件中以简化编辑和(或)复制。

lOpenWRT Image Builder允许用户自由配置其设备(如预设密码、无线风格等)并自定义固件以满足用户需求。

lLuCI的Web图形化界面除了可以让用户选择适合自己需求或口味的主题外,还可以使用支持20多种语言的软件包实现Web用户界面的本地化。

l配置外部LED和按钮或开关以满足用户的需求。

(5)零成本支出:OpenWRT是开源的,得益于包括个人和公司等志愿者的努力,让大家在使用时无需额外支出订购或授权费用。

(6)给力的社区支持:由开发者、志愿者和其他长期OpenWRT用户组成的活跃社区,因此最终可以帮助用户解决其所遇到的问题。

lLEDE论坛 - 成员间讨论LEDE的平台

lLEDE开发者 和 LEDE开发者 邮件列表

l#lede-dev 和#lede-adm 的IRC频道

l可以通过OpenWRT官方网站上的联系方式获得更多信息

2.3OpenWRT系统的优点

OpenWRT系统的优点:如果对Linux系统有一定的了解或者掌握Linux基础知识, 并且希望学习或接触嵌入式 Linux 的话, OpenWRT是一个不错的选择。 OpenWRT支持大部分处理器架构,无论是ARM架构,X86架构,PowerPC架构还是MIPS架构,都有很好的适配方案。 并且其内置多达3000多种软件包,囊括从工具链(toolchain),到内核(linux kernel),到软件包(packages),再到根文件系统(rootfs)整个体系,使得用户只需简单的一个make命令即可方便快速地定制一个具有特定功能的嵌入式系统来制作固件。

3.环境搭建

硬件环境:竞斗云2.0(路由器型号)或者树莓派全系设备

软件环境:VMware WorkStation Pro虚拟机安装Ubuntu64位操作系统或者微软商城安装Ubuntu18.04 LTS64位。

安装完毕后搭建编译环境。

这里以Ubuntu18.04 LTS64位版为例

3.1更改下载源

打开vi编辑器,按下 i (英文insert简写)键即可进入插入模式,从而可以做文本输入。将原来的内容注释或者直接删除,然后将国内的源复制粘贴进来即可。

修改完后按「ESC」键可回到命令模式,输入 wq! 保存修改文件,然后输入 ZZ (大写)即可退出。)

3.2编译

3.3.1编译开始

输入命令:make -j4=s(这里的-j4指的是4个线程一起编译,一般选择为处理器数量的2倍)

编译好的固件名格式为lede-xxxx-generic-xxx-squashfs-sysupgrade.bin将bin文件复制到U盘或者电脑桌面。

3.3.2刷入自己编译的OpenWRT固件

(1)之前已刷入breed或者u-boot的路由器

①网线一端插入路由器lan口,另一端插入电脑RJ45接口,使得电脑通过网线连接路由器,打开浏览器输入192.168.1.1;

②路由器按住reset键,上电开机;

③浏览器不断刷新 192.168.1.1 界面直到出现bootloader(breed/uboot)引导界面,松开reset键;

④通过固件更新选项,上传固件进行升级,支持img和bin格式;

⑤对路由器进行重启。

(2)之前固件為OpenWRT的路由器

①可在Luci界面->系统->备份升级->刷写新固件

②选择.tar格式文件

③版本号相同可以保留原有配置,不同不保留

4.总结

OpenWRT系统是一个强大的嵌入式Linux操作系统,可以广泛地使用在大部分智能路由器设备中,可以让智能路由器发挥出更多更强大的功能。且OpenWRT开源免费,未来可能将成为学习嵌入式Linux最佳平台。

参考文献:

〔1〕鸟哥.《鸟哥的Linux私房菜》[M].北京.人民邮电出版社,中国工信出版集团.2018年12月。

〔2〕孙冰,刘龙.《OpenWRT智能路由系统开发》[M].北京.人民邮电出版社,中国工信出版集团.2018年3月。

作者介绍:

王宪宇,2000.07,山东协和学院网络工程专业在读

张鲁,1986.06,硕士研究生,副教授,研究方向计算机应用技术

山东协和学院 山东济南 250107