Arduino YúN 测评(四)OpenWRT生态
图1.秘籍文档
2)HOWTOs 涵盖OpenWrt额外可能支持的任务。例如,设置一个打印服务器,使用vanilla,通过opkg安装包并初始配置。
图2.可用任务文档
3)UCI配置,OpenWrt的主要配置位于 /etc/config/ 目录
图3.配置文件描述
编译
1)这些文章主要关于编译OpenWrt源代码
图4.编译文档
2)怎么编译呢
图5.具体针对性操作
开发
1)特定开发相关任务的文档
图6.特定开发文档
技术参考资料
1)关于各种OpenWrt组件的背景资料和技术说明的资料
图7.技术参考
FAQ
1)这部分分为新版和老版FAQ,当你遇到问题的时候建议先去看看是否有相关的问题。
OpenWRT未来的发展方向
1)开发Development图
图8.Development分支
红色标注的四大分支,目前我主要是采用Attitude_adjustment这个版本作为开发使用,说实在的对于这些分支的差异不得而知,OpenWRT是一个庞大的、复杂的、优秀的开源软件/生态系统/开源社区。
2)代码branches图
图9.Code Branches
然而本人接触过的类似开源板卡仅仅只有BeagleBone,就连开源板卡先驱/标杆的树莓派也不曾玩过,所以对于这些板卡的横向/纵向,硬件/软件,社区/生态比较自然不敢妄下评论。仅仅说说Arduino YúN与BeagleBone使用过程中的一些体会吧,翻箱倒柜找出BeagleBone的板卡,因为确实在折腾过一番后我再也不想玩他了,但是对于板子还是有情感的,都被我收藏的很好,算是青春的记忆吧。
图10.板卡比较正面
图11.板卡比较背面
图12.Arduino YúN板卡
图13.BeagleBoneBlack--BB二代
图14.BeagleBone-BB一代
开源板卡是这几年比较流行的一种形式,我们这个时代电子/信息相关产业和以往相比空前的繁荣,我所能想到的就这个词了。当然多少年后不知道会如何描述这个时代,也算是一种工业革命的开端吧,或者这里工业不够贴切了,不能按照此前的几次工业上的革命来继续下去了,因为不只有工业,太多领域了。
题外话说的有点多了,言归正传吧,为何我不太愿意去折腾BeagleBone板子,原因很简单,不用来做项目,作为玩具太繁琐了还没啥功能,仅仅跑个linux没几个接口不说,连个WIFI都没有,还得用dongle来扩展,扩展之后随之而来的工作真不少啊,编译驱动,移植wap wapsupplicant要是想做AP的话还得移植hostapd之类的玩意。用linxu开发的成本太高了,跑起来容易,真遇到问题了,想解决可不是那么容易,虽然有不少小公司也用linux作为项目开发首先,图的就是个痛快,可不想真出了问题,如何解决,所以说开发成本真的不低。当然了BeagleBone唯一的好处可能是他真的是全部open的东西,这得益于他的MPU是ti的AM335x系列的,资料很全,该有的都有,算是中规中矩的开发选择吧,核心板加可变的底板,一般这种官方会提供一个好用的sdk包,基本上是TI直接维护,当然Beaglebone还有自己的社区,自己的系统可玩性高一些,有资源list可以直接安装软件而不要自己编译了。
继续说说OpenWRT,算是个在linux上发展过来的系统,特点太多了,说不上来。目前很多做路由器的基本上都是用OpenWRT作为原型开发的,可惜成也风云败也风云,这些厂家的路由都太低端了,这主要受限制与OpenWRT支持的芯片。在看日前Google推出的Onhub路由器的话,自然能看到这种科技技术的差异了。
看芯片选型:
1)WiFi路由器芯片,基本上能够决定这台路由器的50%以上无线性能:当代无线通信越来越快,大部分归功于通信算法的进步,而这些算法,基本都在基带芯片里面。
2)不同的芯片所给的参考设计优化程度并不一样,厂商ODM那边进行二次开发的难度也有很大的差别,一般来说是一分钱一分货,高通通过技术优势有溢价,也是可以理解,而用低端芯片,遗留给厂家和消费者的“**”可能也会更多。
3)至于存储的大小、USB3.0的用途,就毋庸我多说了。
图15. OnHub路由器
Google出品,应该不是用OpenWRT吧,或者说做了不少优化和更改,国内厂家能做这种路由吗,很难。毕竟他们都是跟着OpenWRT走的,支持的芯片有限,尤其是新出的芯片。
OpenWRT有自己特有的生态圈子和社区,最大的特色无非是网络部分的资源,相当强悍,提供优秀的生态,让更多的人参与进来。举个例子WIFI-Dog在OpenWRT下实现也就分分钟的事情,要是在传统的平台上实现还是需要花费点时间的。其他相关的网络包也很强,弄个3G网卡也就分分钟的事情,弄个VPN 、VoIP应用也是很快分分钟也够吧,不过前提是对OpenWRT足够熟悉了。现在用OpenWRT作为开发原型的还是很多的,基本上搞系统WIFI的公司都会用。当然也有不少有趣的研究项目在OpenWRT上被实现,比如WIFI漫游、WIFI-Mesh等等都是很不错的项目,这个生态很棒,对很多人有帮助,也会有越来越多的人参与进来,玩的人/做研究的人/做项目的人,很多很多。
Arduino YúN板载的AR9331是OpenWRT原生支持的芯片之一,也是非常火的芯片,国内大部分低端路由都是采用这颗IC的,很久之前是Atheros的,被Qualcomm收购很多年了吧。针对这颗IC的开源板卡也不少,当然系统上选择我认为基本是OpenWRT,可想而知,生态多么广泛。拿AR9331说事,一颗开放程度不高的,官方没有提供足够开发资源,却让多数人能用起来这颗IC,真不简单。在我看来Qualcomm应该非常支持OpenWRT的发展,可能有不少的维护就是Qualcomm的人也不说定,还没有看过OpenWRT的开发人员list。
最后在说一点关于Arduino YúN为何不开放AR9331部分的设计,我想这可能和他的重心不统一的缘故吧,毕竟他只是在用OpenWRT生态而不是一款针对OpenWRT的开发板,曾经在知乎上看到一个提问是关于OpenWRT的,大意是为何我不能够优雅的玩OpenWRT,题主可能是比较早玩OpenWRT的,从他的描述他需要找一款路由器,换大容量Flash换大内存,飞线一个串口。这些在他看来是不足够优雅的。当然现在你可以优雅的玩OpenWRT了,Arduino YúN也算是个选择吧,虽然不足够开放,玩起来还是可以的,当然原生支持还是路由器最方便,尤其uboot部分和硬件相关性太直接了。期待Arduino YúN把AR9311部分也开放出来的那一天吧,uboot/kernel放出来,让更多的人受益,也让Arduino YúN的应用更加声色,毕竟bridge的开发方式对于高级用户还是太low了,您说呢。