XiaomiRouter自学之路(01-项目背景)

XiaomiRouter自学之路(01-项目背景)

公司是做无线路由器的,加入公司一年多了,没能按意愿学到更多有关linux驱动及其相关的知识,这在我以前的文章2016总结2017愿景中也有提到,我只能在其他时间进行自行充电,所以才有了现在这个自学的项目XiaomiRouter。

一次偶然的机会,租的房子网络不稳定,以为路由器坏了,想想一个Tenda路由器也用了这么久应该换了,就在房间用不需要太好,选择了小米路由器3,路由器还没到就发现原本的Tenda路由器好好的。

公司开发的路由器是在开源的openwrt系统基础上开发,但自己都没真正搭建openwrt系统或对其他厂家的路由器进行刷机,于是就打算用刚买回来的小米路由器3进行刷机测试。

在网络上下载了开发版固件进行刷机安装ssh等,发现挺无聊的,就是更新安装,都在应用层操作。我更想去接触源码,更改底层的驱动等。

弄过linux驱动的应该都清楚,一般我们的CPU根据特定几个引脚电平的组合可以使用不同的方式进行启动,发现小米路由器3使用的是nand flash进行存储启动的,这就尴尬了。

个人肯定不会去买nand烧录器,一个都要到千百来块,而且芯片拆下来手动焊接可不容易,关键是小米官方的固件u-boot启动后既然没有倒计时,想要在u-boot阶段进行在线更新都没办法。所以得找到用spi flash启动的,同是MT7620平台的路由器才有可能自己开发。

查阅后发现小米路由器mini就是,于是又买了个小米路由器mini,下面将小米路由器mini和小米路由器3的硬件信息进行对比:


mini和3硬件配置对比图

可以观察到两个平台其实都是一样的,就是存储方式不一样,小米路由器mini使用的是16M的spi flash进行存储,小米路由器3使用的是128M的nand flash进行存储,所以应该可以使用小米路由器mini来进行研究。

在观察小米路由器mini和小米路由器3的硬件PCB板,发现小米路由器3上面有个与小米路由器mini一样的spi flash的接口,就是没有焊接芯片。


XiaominiRoutermini


XiaominiRouter3

所以又有了新的想法,现在既然小米路由器3上面有spi flash的接口,那我是不是也可以将此处的spi flash焊接上,烧上mini的固件,然后更改启动方式,使小米路由器3也能从spi flash启动,然后试着去写nand flash的驱动,这样小米路由器3也有办法更改u-boot了。

经过几天的资料查找,软件部分应该可以实现,u-boot使用MTK开源SDK里面的u-boot,系统使用开源的openwrt系统,硬件部分现在还不确定,毕竟没有小米路由器3的原理图等,担心后面没办法找到引脚使小米路由器3切换到spi flash启动, 但至少可以用小米路由器mini进行自学之路。

现在按自己有限的能力进行初步的项目方向安排

  • 软硬件平台搭建

  • GitHub环境搭建(U-boot、Openwrt)

  • 小米路由器mini U-boot实现,spi启动、tftp更新、引导Openwrt等

  • 小米路由器mini Openwrt基础功能实现,应用层的知识暂时先不考虑

  • 小米路由器3 U-boot实现,spi/nand启动、tftp更新、引导Openwrt等

  • 小米路由器3基础功能实现,应用层的知识暂时先不考虑

通过这一过程可以学习到很多知识,自己搭建环境,需要把u-boot和openwrt的nand移植好,期间还会有spi、net等多方面的知识,虽然还不知道自己是否有能力实现计划中的功能,可能会走很多弯路,但我会将自己学习的过程进行记录,持续不断的往目标前进,就算没能全部成功也可以学到很多知识。

项目背景的分析就到这边,有感悟时会持续会更新。


本文章由作者:佐须之男 整理编辑,原文地址: XiaomiRouter自学之路(01-项目背景)
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。

相关推荐