找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

[复制链接]
发表于 2021-10-10 13:45 | 显示全部楼层 |阅读模式
本帖最后由 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.
发表于 2021-10-10 15:07 | 显示全部楼层
都阉割成这样了,为何还要执着于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.
回复

使用道具 举报

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

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

使用道具 举报

发表于 2022-5-16 15:06 | 显示全部楼层
怎么我觉得精简到8M是很简单的事情,我的TP-WVR300 8M flash前不久还编译了几个 5.10.111内核的
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-6-28 23:17 | 显示全部楼层
学习了   感谢楼主
#固件精简
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2022-9-13 16:10 | 显示全部楼层
谢谢分享!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

发表于 2023-11-9 09:05 | 显示全部楼层
学习了   感谢楼主
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-17 01:17

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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