openwrt路由器系统(实现WIFI自由)

一、什么是openwrt系统

二、版本管理

三、官方SDK和开源openwrt的区别

四、如何选择固件和源码

这篇文章将会围绕openwrt整体介绍在开发过程中应该如何去选择固件和源码,围绕上面四点,我们逐一道来。这也是使用路由器系统一个月以来的心得,可以说是披荆斩棘,不免也走了弯路。不多说,直接上菜。

一、什么是openwrt系统?

OpenWrt 可以被描述为一个嵌入式的 Linux 发行版。(主流路由器固件有dd-wrt,tomato,openwrt,padavan四类)对比一个单一的、静态的系统,OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许您自定义的设备,以适应任何应用程序。

之前用的是NXP的芯片,跑的是linux,现在用的是MTK的芯片,这是一款路由器芯片,可以跑路由器系统,openwrt是其中之一,该系统功能完善,而且开源的版本一直在维护,从网上就可以下载更新,也可以直接根据自己的芯片方案去选择下载固件就可以了。官方链接:https://openwrt.org/,很多技术层面的东西也都讲到,如果接触到这一块,对这一块感兴趣的,可以进去看看,收获多多,基本上其他网站的基本上都是从这里出来,论坛、社区、源码、固件应有尽有。

二、版本管理

很多同学刚开始不知道,源码从哪里找,刚刚也说了,其他网站基本上都出自官网,所以瞄准官网就行了,那么到底覅有什么样的版本呢?在介绍版本代码之前,你需要有以下基础,会操作ubuntu、会git操作。因为是linux系统,基本上编译代码是在ubuntu上,代码是在git仓库的,维护和更新都是在上面,所以这是基本。关于版本看下图:

有好多个分支,每个分支代表一个版本,基本上这些版本都可以用,笔者前期在大海之中捞鱼,所以尝试了很多版本,还包含15版本的,再分享个小细节,别看这里只有几个版本,其实还可以细分,很多人不知道。后续可以专门出篇文章介绍git操作。

三、官方SDK和开源openwrt的区别

这里谈三点:

1、官方SDK属于旧版本的代码了,并且没有人再维护源码了,可想而知,MTK公司专门研发芯片的,在源码上自然没有下过多的功夫。所以在编译官方的SDK时,会有很多问题,如果不是通过原厂交接的话,那遇到的问题会更多,而且遇到问题他们也无法解决。

2、官方SDK移植了他们的WIFI驱动,而网上开源的代码用的是内部的WIFI驱动,所以稳定性自然是官方SDK比较好。

3、如果只需要路由器功能的话,官方SDK完全可以满足,但是如果要开发应用的话,不建议用官方SDK,原因有两个:一是没有设备树,驱动开发只能操作寄存器,坑;二是开启线程编译不通过,也就是不能创建任务。综合这两点,开发难度较大。

关于官方SDK,寻找也是很费劲的,甚至花费了积分在网站上下载下来,如果有需要的可以私聊我。

四、如何选择固件和源码

看完上面三点,相比已经有答案了,开源的代码技术问题解决的比较快,网上有很多人分享经验,在下载源码之前,可以先下载该版本的固件验证一下能不能用,再下载相应的源码,因为下载源码和编译是需要很长时间的,万一不合适那就浪费了时间。

这两个图可以看到在官网相应的路径是有相应的固件和SDK的,取所需就可以。细节待续!!!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平