路由器定制开发:MT7620N上刷openwrt

最近朋友给了一款电信的企业级AP,说让我玩玩。之前做过五年的企业级AP开发,对于AP还是有那么点热衷,但凡有机会还是要把玩一番的。

这款AP是智达康的ZN-7200-H500,自带的镜像就是基于openWRT开发的。但是功能不够丰富,还是自己动手定制一款实用的AP吧。

简单说一下编译过程:
1. 搭建编译环境
在自己的win7专业版机子上装上VMware虚拟机,虚拟机安装ubuntu 14.04
编译会用到但不限于以下组件、库
gcc 、g++ 、binutils 、patch 、bzip2 、flex 、bison 、make 、autoconf 、
gettext 、texinfo 、unzip 、sharutils 、subversion 、libncurses5-dev 、
zlib1g-dev 、gawk 、asciidoc 、libz-dev

sudo apt-get install x


2. 下载openwrt源码
终端进入自己需要存放工程的目录,执行如下操作
mkdir openwrt // 创建一个openwrt文件夹
cd openwrt    //进入openwrt文件夹
svn co svn://svn.openwrt.org/openwrt/trunk  //下载官网的源码trunk版本
cd trunk
./scripts/feeds update -a     //更新软件包
./scripts/feeds install -a    //安装软件包

3. 编译源码
make menuconfig //进入定制界面(里面可以选择芯片的型号,集成的组件等等,根据实际情况选择)

make V=99   (开始编译)
几点说明:
(1) 初次编译,主机需要联网,因为openwrt需要联网下载源码和库文件以及其他的一些组件。这个过程非常大的长,并且openwrt官网下载不稳定,偶尔会出现下载失败的情况。遇到下载失败的情况,可以手动下载相应的压缩文件,然后放到trunk/dl/目录下。

(2) 加速编译;如果自己的电脑性能做够强劲,可以多开辟几个进程用于编译,只要在编译的时候加上-jx(x是个人根据自己的电脑强弱,自己定义的数字,如笔者使用的是-j8)。一旦加上-jx,出错信息可能就不能够直观的看到出错信息了,这个时候就需要重新编译,加上V=99,不要加上-jx。如make V=99。

(3) 编译权限:openwrt建议非root权限下编译,这个在编译的时候会检查,否则不让编译。如果需要在root权限下编译,需要加上FORCE=1.


4. 生成镜像的存放路径。
编译生成的镜像会统一存放在trunk/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7620n/目录。

5. 定制适合自己单板类型的openwrt
上面4步仅仅是可以编译生成openwrt已经支持的一些路由器型号的镜像,如果自己的路由器不在支持列表里,那怎么办呢?很显然,openwrt的人是不可能穷尽所有的路由器,也不可能知道你的述求。所以,只能靠你自己了。这一步还是需要有一些知识积累和技能的。
首先,你需要对当前路由器的一些硬件特性明了,如:以太网口是几个,哪个口是上连口WAN口,哪几个是LAN口;无线接口是否需要跟有线LAN桥接;flash和内存的大小有多大......

什么?这些一点概念都没有,那么还是不要往下看了,等网友有人分享出来捡现成的吧!

在./target/linux/ramips/image/Makefile中,我们可以增加我们的一款路由器定制。
我们首先找到
“# MT7620N Profiles”
依葫芦画瓢,增加
Image/Build/Profile/ZDCH500=$(call BuildFirmware/Default16M/$(1),$(1),zdch500,ZDCH500)
记得同时在下面将ZDCH500增加进去,否则不出镜像
ifeq ($(SUBTARGET),mt7620n)
define Image/Build/Profile/Default
    $(call Image/Build/Profile/ZDCH500,$(1))
endef

仅仅由上面的动作还不够,我们还需要提供相应的dts文件。
./target/linux/ramips/dts/ZDCH500.dts
该文件用于描述硬件的相关信息,如gpio、flash分区、usb等

6. 结束。

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

相关推荐