NAP6官方旗舰店
搜索
发新帖
午饭无线 推广广告R7800 完胜 华硕路由器NETGEAR Vs ASUS T-Mobile定制版NETGEAR团购
开启左侧

OpenWRT固件利用Image Builder编译生成自定义ROM

[复制链接]
1034 0

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 盖世小神童 于 2016-6-7 15:29 编辑

官方编译好的OpenWRT固件只包含了比较基本的包,而对于日常使用,至少能在刚刷完ROM后能直接登陆luci的网页管理页面,打开无线才比较方便;而且有人会购买增加了ROM容量的改版路由器;这些情况都需要我们生成自己的自定义ROM。
一种方法是使用官方在SVN上发布的源码,修改配置后进行编译,不过这显然太麻烦了,而且不太懂的人很难跟着官方的文档一步步做下来。然而其实官方给出了名为Image Builder(Image Generator)的工具包来快捷生成所需固件,这个工具包已经包含并配置好了所有编译需要的东西,一条命令即可生成所需的固件,并且可以通过修改Makefile和一些配置文件来生成自定义的固件,是相对简洁易用的方式。下面逐步介绍通过Image Builder生成自定义固件的步骤。


下载最新的Image Builder,比如这里我使用的是trunk版,打开OpenWRT的trunk版下载链接(如果有最新的稳定版推荐使用稳定版):
http://downloads.openwrt.org/snapshots/trunk/
以TP-Link WR720N为例,芯片类型为ar71xx,对应的Image Builder的下载链接为:
http://downloads.openwrt.org/snapshots/trunk/ar71xx/OpenWrt-ImageBuilder-ar71xx_generic-for-linux-x86_64.tar.bz2
复制这个链接地址,打开你的Linux系统(如Ubuntu),将文件下载至磁盘上,并解压,或者使用终端命令:
  1. <font size="3" face="微软雅黑">cd ~
  2. wget http://downloads.openwrt.org/snapshots/trunk/ar71xx/OpenWrt-ImageBuilder-ar71xx_generic-for-linux-x86_64.tar.bz2
  3. tar -xvjf OpenWrt-ImageBuilder-ar71xx_generic-for-linux-x86_64.tar.bz2
  4. cd OpenWrt-ImageBuilder-ar71xx_generic-for-linux-x86_64/</font>
复制代码

如果你用的虚拟机的Linux系统,记得不要再Windows下解压后拷贝到Linux下,可能会出问题

然后使用以下命令进行编译:
  1. <font size="3" face="微软雅黑"> make image PROFILE=XXX PACKAGES="pkg1 pk2 -pkg3 -pkg4" FILES=files/</font>
复制代码

共有三个传递的参数:PROFILE PACKAGES FILES

PROFILE=XXX是指预定义的Profile,对应你的路由型号,使用一下命令查看所有的PROFILE:
  1. <font size="3" face="微软雅黑"> make info</font>
复制代码

PAKAGES后面罗列出需要添加到固件中的额外的包,不填写的话只包含预定义的需要的最少的包,如果前面以”-“符号开头的表示不不含这个包,比如说:PACKAGES=”luci luci-i18n-chinese -pppox”
而我们希望耍好的固件默认安装luci并开启相关服务以便我们刷机或者重置后直接通过网页访问luci界面配置路由等等 此时我们可以添加以下几个包,有其他需求可自己添加比如说DDNS SAMBA等等:
  1. <font size="3" face="微软雅黑">luci

  2. luci-i18n-chinese    # 中文支持

  3. luci-sgi-uhttpd      # 默认开启utttpd,刷机后可直接网页访问luci

  4. luci-app-qos         # QOS

  5. luci-app-upnp        # UPNP

  6. luci-proto-ipv6      # 向luci添加ipv6相关协议的完整支持</font>
复制代码

而我们还希望,刷机后可以默认开启无线(OpenWRT官方固件默认是不开启的) 配置好无线和WAN的相关设置 刷完省心 无需再改配置,此时就需要第三个传递的参数FILES
可以通过scp命令从当前配置好的路由上下载相关的配置文件,添加至固件中来达成,在终端中:
  1. <font size="3" face="微软雅黑"> mkdir -p files/etc/config
  2.         scp root@192.168.1.1:/etc/config/network files/etc/config/
  3.         scp root@192.168.1.1:/etc/config/wireless files/etc/config/
  4.         scp root@192.168.1.1:/etc/config/firewall files/etc/config/</font>
复制代码

期间需要输入路由器密码,下载完成后在files文件夹下查看下载到的文件
如果需要添加其他的配置文件,自行执行scp命令即可,格式为:
  1. <font size="3" face="微软雅黑">scp root@路由器IP:配置文件位置 保存位置</font>
复制代码

最后,需要修改ROM大小,在解压的目录下,找到:
target/linux/ar71xx(此处替换成自己芯片信号)/image/Makefile
用文本编辑器打开Makefile,查找自己的路由型号,以TPLINK WR720N为例找到以下一行:
  1. <font size="3" face="微软雅黑">$(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWR720NV3,tl-wr720n-v3,TL-WR720N-v3,ttyATH0,115200,0x07200103,1,4Mlzma))</font>
复制代码

将结尾处的4Mlzma改为8Mlzma保存即可,即:
  1. <font size="3" face="微软雅黑"> $(eval $(call SingleProfile,TPLINK-LZMA,64kraw,TLWR720NV3,tl-wr720n-v3,TL-WR720N-v3,ttyATH0,115200,0x07200103,1,8Mlzma))</font>
复制代码

完成以上步骤后可以回到终端,执行make命令生成固件,如:
  1. <font size="3" face="微软雅黑">make image PROFILE=WL500GP PACKAGES="luci luci-i18n-chinese luci-proto-ipv6 luci-sgi-uhttpd" FILES=files/
  2. </font>
复制代码

如果没有出现错误,就可以在/bin/ar71xx/下找到你相应的bin文件了

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表