|
本帖最后由 dato 于 2020-2-16 20:36 编辑
本教程适合喜欢openwr.org官方固件,完全掌握了使用imagebuilder生成自定义固件的高级玩家。像咱这种菜鸟只会删软件包,还到达不了从源码精简掉help文件那种要求。
以前都是本地用7zip下载回来删除再上传回vps,无奈最近网络实在太慢了,今天花了点时间折腾了一下,挺好。这种比官方的好用,官方的方法做出来的固件最后用7zip是无法打开的。
使用方法
1,定义好自己需要精简的包
格式为
IPKrm stunnel #用于shell grep IPKrm处理快速生成列表
stunnel.conf libstunnel.so ./usr/lib #定义需要删除的文件,目录以空格做分隔,保持1行用tr生成排除列表
2,将代码复制到imagebuilder/packages目录里处理就可以了,处理好的文件放在packages/IPKG_REBUILD目录
3,如果确认没问题就可以通过 cp -a IPKG_REBUILD/* ./packages 覆盖同名文件
4,重新用imagebuilder生成固件就可以了。
脚本对完整*.ipk解包data.tar.gz,排除掉不需要的文件重新打包成data.tar.gz,再重新打包成精简*.ipk。
通过删除不需要的文件来达到精简固件的目的。
原始脚本以及使用说明下载
- cat << EOF > /tmp/IPKrmlst.tmp
- IPKrm softethervirtual**
- virtual**cmd
- IPKrm stunnel
- stunnel.conf libstunnel.so ./usr/lib
- IPKrm sexpect
- sexpect
- IPKrm vlmcsd
- ./usr ./etc/init.d
- EOF
- cat /tmp/IPKrmlst.tmp
- #!/bin/sh
- IPKlst=/tmp/ipklst.tmp
- ls *.ipk > $IPKlst
- IPKrmlst=/tmp/IPKrmlst.tmp
- rebuild_dir=./IPKG_REBUILD
- mkdir IPKG_REBUILD
- datalst=/tmp/data.tmp
- rm -rf IPKG_BUILD*
- for i in $( grep IPKrm $IPKrmlst | cut -d " " -f2 );do rmlist=`grep -A1 "$i" $IPKrmlst | grep -v IPKrm`
- echo $rmlist|tr ' ' '\n' > $datalst
- tmp_dir=IPKG_BUILD.$
- mkdir $tmp_dir
- echo
- ipkname=`grep ^$i $IPKlst`
- echo $ipkname
- echo -----rmlist-----
- cat $datalst
- echo -----rmlist-----
- echo
- ( cd $tmp_dir && tar zvfx ../$ipkname && tar zvfx data.tar.gz --exclude-from=$datalst -C ./ )
- ( cd $tmp_dir && tar --numeric-owner --group=0 --owner=0 --format=gnu -cpf - . --exclude=data.tar.gz --exclude=control.tar.gz --exclude=debian-binary | gzip -n - > ./data.tar.gz )
- ( cd $tmp_dir && tar --numeric-owner --group=0 --owner=0 --format=gnu -cpf - ./debian-binary ./data.tar.gz ./control.tar.gz | gzip -n - > ../$rebuild_dir/$ipkname )
- #pwd
- rm -rf $tmp_dir
- done
复制代码
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|