16年底12月的最后一周又开始折腾路由器了,折腾的原由是有个地方需要打印,电脑直接接Usb打印机桌子太小放不下,打印机放地上又被我踩到。
正考虑怎么折腾时,借给朋友出门度假拷照片的云座易充(tp-link wr703n马甲)在24号还给我了,差不多借走1年半的样子吧,一看,有USB口,哈哈,有机器了,不折腾都不好意思了,当然马上刷机。
先刷U-boot,然后网上找了好几个关于ar71xx版本的固件,都不是很合适,而且奇怪的是直接安装P910d等打印文件要么失败,要么overlay空间异常,所以只能是自己动手定制了。
参考了以下3篇文章,2篇官方说明,一篇网友的文章
1,https://lede-project.org/docs/user-guide/imagebuilder
2,https://wiki.openwrt.org/doc/howto/obtain.firmware.generate
3,http://www.cnblogs.com/noright/p/4938433.html
4,http://www.dreamxu.com/compile-your-own-openwrt/ 这篇编译方式我失败了
一、配置编译环境
Debian/Ubuntu
apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc wget
二、下载Image Generator for ar71xx
https://downloads.openwrt.org/chaos_calmer/15.05/ar71xx/generic/OpenWrt-ImageBuilder-15.05-ar71xx-generic.Linux-x86_64.tar.bz2
除了1505版外,还试了Snapshot版,内核好像是4.X了
https://downloads.openwrt.org/snapshots/trunk/ar71xx/generic/OpenWrt-ImageBuilder-ar71xx-generic.Linux-x86_64.tar.bz2
Lede下的imagebuilder-ar71xx
https://downloads.lede-project.org/snapshots/targets/ar71xx/generic/lede-imagebuilder-ar71xx-generic.Linux-x86_64.tar.xz
三、配置
根据需要修改repositories.conf,我反正是没改过,就是替换包地址之类。
四、把需要替换固件中的文件放到files目录中,官方固件无线默认是关闭的,为了默认打开无线功能,把无线的配置文件放到files中,在生成固件时就会替换掉默认的文件。
方法是这样的:路由器刷好官方固件,把无线打开,从网页把配置文件备份出来,把需要的文件按固件中的目录结构放到files目录中。
无线配置的文件是wireless,在固件中的路径是 /etc/config/wireless,所以在编译环境中把它放到
files/etc/config/wireless 这个目录文件地址自己建,稍后要用到,其他类似文件调用也是相同的方法
这是我的wireless配置文件,只是打开了无线功能
$ cat files/etc/config/wireless
config wifi-device radio0
option type mac80211
option channel 11
option hwmode 11g
option path 'platform/ar933x_wmac'
option htmode HT20
# REMOVE THIS LINE TO ENABLE WIFI:
option disabled 0
config wifi-iface
option device radio0
option network lan
option mode ap
option ssid OpenWrt-703N
option encryption none
五、生成镜像
用这个命令查看支持的profile
make info
Openwrt下703N对应的配置是TLWR703,Lede下对应配置是 tl-wr703n-v1。
make image PROFILE=tl-wr703n-v1 PACKAGES="libiwinfo libiwinfo-lua liblua lua libuci-lua libubus libubus-lua uhttpd rpcd luci-base luci-lib-ip luci-lib-nixio luci-theme-bootstrap luci-mod-admin-full luci-lib-jsonc kmod-usb-printer p910nd luci-app-p910nd kmod-usb-core " FILES=files/
PROFILE 是从支持列表中找出的路由器型号
PACKAGES 是添加到固件中的包名,如果要从固件中删除包,可以在包名前加 -
FILES 是指定用files目录中的文件替换掉固件中的文件
运行make image PROFILE=TLWR703生成的固件,比官方固件少很多包,比如没有luci,后面自己加需要的包,例如我的重点是 kmod-usb-printer p910nd luci-app-p910nd 这3个包,然后还有luci界面
生成的固件在 bin 目录中
如我需要的 lede-ar71xx-generic-tl-wr703n-v1-squashfs-sysupgrade.bin
编译过程中,还遇到了这1错误,
[mktplinkfw] kernel length aligned to 1397604
[mktplinkfw] *** error: images are too big by 119478 bytes
其实就是你装的包太多了,精简一些就可以通过了。
对了,win10下的Ubuntu编译一直出故障,后来是在vps上编译的:)
文章评论