找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 16378|回复: 6

OpenWrt路由器固件编译与精简指南

[复制链接]
本帖最后由 dingnan21 于 2021-10-10 13:47 编辑

对于Flash仅有8M的路由器来说,openwrt固件安装很勉强,在使用原版LuCI和easymesh的前提下,必须要去除IPv6和一系列非必要内核精简。具体精简内容,可参考Openwrt官方文档《Saving firmware space and RAM》本文是基于Openwrt官方文档《Saving firmware space and RAM》的实际上手实践。

最近淘了一台水星的D26G pro,由于只有8MB spi FLASH闪存,因此如何编译一个精简可用的固件就成了难题。
在默认情况下,我首次编译出的固件大小如下:
openwrt-ramips-mt7621-mercury_d26g-initramfs-kernel.bin 7859595B = 7675.4KB
openwrt-ramips-mt7621-mercury_d26g-squashfs-sysupgrade.bin 8127260B = 7936.8KB

刨去uboot、env、factory等MTD布局需要占用的空间,在首次刷入openwrt时,仅有initramfs-kernel.bin可以成功刷入并进入系统。但由于存储空间不足,导致配置信息无法保存,重启即丢失。
而squashfs-sysupgrade.bin刷入后,系统由于firmware超出flash闪存边界,会陷入无限重启。

也就是说,默认编译精简固件至8MB Flash是肯定会失败的。这也是为什么网上绝大多数贴子建议更换16MB Flash的原因。

注意:我仅仅是把D26G pro作为AP使用,通过阉割PPPOE,ddns、IPV6、upnp等主路由必备的功能,因此可以编译出可以适配用于8MB Flash的固件,如果需要将D26G pro用于国际留学等场景,必须要扩容至16MB,否则软件包肯定装不下。

经过反复试验,在v1.3.5版本通过以下编译参数修改,编译出可用于8MB Flash的固件: 总计精简759.2KB的initramfs空间,及768KB的squashfs-sysupgrade.bin空间


openwrt-ramips-mt7621-mercury_d26g-initramfs-kernel.bin 7081101B = 6916.2KB
openwrt-ramips-mt7621-mercury_d26g-squashfs-sysupgrade.bin 7340828B = 7168.8KB

  • with Kernel build options 通过关闭部分内核参数,内核精简195.9KB
  • CONFIG_KERNEL_CRASHLOG=n
  • CONFIG_KERNEL_SWAP=n
  • CONFIG_KERNEL_DEBUG_INFO=n
  • CONFIG_KERNEL_MAGIC_SYSRQ=n
  • CONFIG_KERNEL_PRINTK_TIME=y 关闭仅能节省0.2KB,不建议关闭
  • CONFIG_STRIP_KERNEL_EXPORTS=y
  • CONFIG_USE_MKLIBS=y
  • CONFIG_KERNEL_ELF_CORE=n
  • with packages optimized
  • -nano [ Utilities-> Editors ]  精简45KB
  • -ppp/-pppoe/-kmod-pppoe  [ Network ] 精简144KB
  • -ddns-scripts/-ddns-scripts_aliyun/ddns-scripts_dnspod   [ Network-> IP Address and Names ] 精简17.4KB
  • With LuCI application
  • +autoreboot
  • +easymesh
  • +filetransfer  添加会增加1802B
  • +firewall
  • +nlbwmon
  • +turboacc   删除Shortcut=FE和BBR CCA中任何一个,反而会增大bin文件体积

    • +Shortcut=FE
    • +BBR CCA
  • -wget-ssl 精简146.6KB
  • -openssl-util 精简187.4KB

经过实际刷机测试,在刷入v1.3.5版本,并进行相关配置后,flash剩余空间如下:

仅剩的空间,仅用于日常配置文件缓存,装额外的软件包基本是不可能了。
最后分享一下自己编译的D26G pro openwrt固件包,v1.3.5
拒绝百度网盘:http://gofile.me/5FstA/9YS4WJ6Ji



本帖子中包含更多资源

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

×
我的恩山、我的无线 The best wifi forum is right here.
都阉割成这样了,为何还要执着于op?官方的vxworks基本功能也有啊?你当ap,也不用担心万一官方存在后门的问题呀??
再……话说我之前编译MT7621带ipv6也可以控制在8M内,只是把Luci去掉即可,要改设置可以直接ssh用uci
我觉得TP水星三剑客官方老型号路由,除了没IPV6,其他功能还是都有的

点评

ap要用easymesh啊  详情 回复 发表于 2021-10-10 15:30
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
avin4 发表于 2021-10-10 15:07
都阉割成这样了,为何还要执着于op?官方的vxworks基本功能也有啊?你当ap,也不用担心万一官方存在后门的 ...

ap要用easymesh啊
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

怎么我觉得精简到8M是很简单的事情,我的TP-WVR300 8M flash前不久还编译了几个 5.10.111内核的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

学习了   感谢楼主
#固件精简
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

谢谢分享!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

学习了   感谢楼主
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-4 01:59

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

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