前阵子收了个N1盒子,用上之后,发现一直在用的wndr4300路由器网络不太稳定,刚好同时又收了个K2P路由器,都有些想把wndr4300给出掉或者扔掉了。
某鱼上一看,只能卖50块,还是算了。 想想距离上次给它刷石像鬼固件也过去很多年了,要不再试试最新的OpenWRT? 官网下载了最新的OpenWRT 18.06.2版本的固件,长按复位键上电,tftp刷入固件。 下面是MacOS通过tftp上传固件的命令,先执行tftp,再连接路由器并put固件。 1
2
3
4
5$ tftp
tftp> connect 192.168.1.1
tftp> mode binary
tftp> put openwrt-18.06.2-ar71xx-nand-wndr4300-ubi-factory.img
tftp> quit
tftp -i 192.168.1.1 put openwrt-18.06.2-ar71xx-nand-wndr4300-ubi-factory.img
启动后,打开AP Client+AP模式(作为Client通过WiFi连接另外一个房间里面的路由器,同时再发射WiFi出来),网速很稳,就是这个界面确实太难用了...
然后在安装了WOA(网络唤醒)、screen、frp几个软件后,到软件包里面一看,总空间只有16MB?已经用完一半了? 搜索了资料后了解到,OpenWRT的固件Flash布局是按官方原版固件来的,大部分空间都作为保留和备份空间使用,因此留给安装软件用的空间就不大了。
需要解决这个问题的话,需要自己编译固件。这里又分为从源码编译和使用ImageBuilder两种方式。其实后者是官方提供的固件定制工具,并没有真正的进行全量的代码编译,但通过ImageBuilder简单的修改配置文件再编译一下,就能达到修改Flash布局的目的了,步骤记录如下。
1.先起一个CentOS Docker容器吧
用的Mac,所以用Docker起一个CentOS容器来编译,方便又干净。 1
docker run --name CentOS01 -it -v /Users/spirit/tmp:/var/spirit centos:latest
2.安装依赖
1 | yum install git gawk gettext ncurses-devel zlib-devel openssl-devel libxslt wget |
3.下载image builder
1 | wget http://downloads.openwrt.org/releases/18.06.2/targets/ar71xx/nand/openwrt-imagebuilder-18.06.2-ar71xx-nand.Linux-x86_64.tar.xz |
4.修改Flash布局,开启128M
1 | cd openwrt-imagebuilder-18.06.2-ar71xx-nand.Linux-x86_64 |
5.编译
编译前可以先查看profile及默认package: 1
make info
正式编译,仅添加luci及中文包: 1
make image PROFILE=WNDR4300V1 PACKAGES="luci luci-i18n-base-zh-cn"
6.获取镜像
编译完成后,结果在 bin/targets/ar71xx/nand 目录下: 1
2openwrt-18.06.2-ar71xx-nand-wndr4300-ubi-factory.img
openwrt-18.06.2-ar71xx-nand-wndr4300-squashfs-sysupgrade.tar
编译好后刷到路由器里面,可用空间98MB,完美! 不过据说刷了改布局的固件后,不能直接刷回官方原版固件,但目前来看肯定没有刷原版固件的需求,所以无关痛痒。
下载
这里提供下已经编译好的固件,供有缘人下载使用:
http://cdn.spirithy.com/other/openwrt-18.06.2-ar71xx-nand-wndr4300-ubi-factory.img
http://cdn.spirithy.com/other/openwrt-18.06.2-ar71xx-nand-wndr4300-squashfs-sysupgrade.tar