不编译修改潘多拉Pandorabox openwrt固件

基于网上帖子修改(原贴http://www.openwrt.org.cn/bbs/thread-14787-1-1.html)

现在能刷固件的路由器太多了,买来路由器,网上找一下教程,分分钟搞定。如果固件不合适,有人还会自己下载代码,编译固件,真是折腾无止境。可编译固件可不是闹着玩的,需要很长时间编译不说,里面好多配置,也不是那么容易搞清楚的,那么,怎样在不重新编译固件的前提下对固件进行修改呢?这就是本文要介绍的,不编译修改潘多拉Pandorabox openwrt固件,对已有的固件进行修改。这样做一可以省去繁琐的编译工作,二可以精简不需要的功能,减小固件体积,节省路由器空间,也可以增加软件,放进固件里(固件压缩后,也会节省不少空间),减少刷固件后安装软件的麻烦。

言归正传,下面开始。开始之前,简单介绍一下本文以MT7620为例,使用Ubuntu系统(12.10),一个解压合并脚本,解压合并程序(程序来自于 openwrt-sdk,如https://downloads.openwrt.org/barrier_breaker/14.07/ramips/mt7620a/OpenWrt-SDK-ramips-for-linux-x86_64-gcc-4.8-linaro_uClibc-0.9.33.2.tar.bz2),使用本文提供的脚本和程序可以直接对MT7620系列固件进行修改,其余系列固件不保证。

以下操作基于Ubuntu 12.10

1. 拷贝程序mksquashfs4,padjffs2,unsquashfs4至/bin目录,同时,给与可执行权限,如sudo chmod 755 mksquashfs4

2. 拷贝固件bin(本文固件)和modify.sh,脚本也需要可执行权限。至同一目录下,如~/Desktop/Pandora

3. 解压固件(需要root权限)。

  • cd ~/Desktop/Pandora
  • ./modify.sh e mt7620.bin

4. 修改固件(需要root权限), 删掉或增加相应的功能。

5. 合并固件。

  • cd ~/Desktop/Pandora
  • ./modify.sh c mt7620_new.bin

拷贝程序后,可以一劳永逸的使用这几个程序,解压合并固件也很快,主要的工作都是在第四步,修改固件。另外,固件体积是以128kb为单位增加的。也就是说,如果你精简或增加的软件体积很小的话,可能不会引起固件体积的变化。

假设需要从mt7620.bin(http://downloads.openwrt.org.cn/PandoraBox/Xiaomi-Mini-R1CM/testing/PandoraBox-ralink-mt7620-xiaomi-mini-squashfs-sysupgrade-r1216-20150721.bin)固件中删除samba。解压./modify.sh e mt7620.bin,进入squashfs-root目录,查找相关samba的目录,(find ./ -name *samba*),基本可以确认,查找出来的这些文件(确认是否有别的程序依赖于这些程序),然后全部删除。从./squashfs-root/usr/lib/opkg/status文件里删除相应的samba块(由于samba删除了,smb相关功能可能会影响,这里不深入了)。然后合并 ./modify.sh c mt7620_new.bin。比较一下新老固件大小,7864324 mt7620.bin, 7077892 mt7620_new.bin,小了0.75M。按照这个思路,可以去精简比如usb,print,ss,smb等等。增加的话,需要从别的固件找到对应文件,拷贝到对应目录。

脚本及相应程序附件

本文地址

小牛刀

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Post comment