openwrt 之 单独编译模块方法

本文介绍在Ubuntu环境中针对QoS模块进行清理、编译及安装的过程。通过使用make命令并设置不同的参数,实现了模块的精细管理。

work@ubuntu:~/chaos_calmer-15.05.1make V=99  (#V=99表示输出详细的debug信息)

work@ubuntu:~/chaos_calmer-15.05.1make package/qos/clean  (清除某个模块)

work@ubuntu:~/chaos_calmer-15.05.1make package/qos/compile  (#单独编译某模块 #V=99表示输出详细的debug信息)

work@ubuntu:~/chaos_calmer-15.05.1make package/qos/install  

OpenWrt 上**单独编译某个模块(如 `lm-sensors`)** 是非常常见的操作,尤其是在你修改了代码、添加了补丁或调试 Makefile 之后。 以下是 **完整、详尽的步骤**,教你如何在 OpenWrt 源码环境中**单独编译 `lm-sensors` 包**,而不需要重新编译整个固件。 --- ## ✅ 前提条件 确保你已经: - 克隆了 OpenWrt 源码(如 OpenWrt 23.05 或 master) - 执行过 `./scripts/feeds update -a` - 执行过 `./scripts/feeds install -a` - 或至少安装了 `lm-sensors` 所需依赖: ```bash ./scripts/feeds install lm-sensors ``` > 如果你没运行过 feeds 更新,请先执行: > ```bash > ./scripts/feeds update packages > ./scripts/feeds install lm-sensors > ``` --- ## 🛠 步骤一:进入源码目录并选择目标包 假设你的 OpenWrt 根目录是: ```bash ~/openwrt/ ``` `lm-sensors` 的实际路径通常是: ```bash ~/openwrt/feeds/packages/utils/lm-sensors/ ``` --- ## 🧪 步骤二:清理旧构建(推荐) 避免缓存问题导致错误: ```bash make package/feeds/packages/lm-sensors/clean ``` --- ## 🔧 步骤三:编译模块(两种方式) ### ✅ 方式 1:只编译 `lm-sensors`(不重编固件) ```bash make package/feeds/packages/lm-sensors/compile V=99 ``` - `package/feeds/packages/lm-sensors/compile`:指定要编译的包 - `V=99`:显示详细日志(非常重要!用于调试错误) 📌 输出的 `.ipk` 文件会生成在: ```bash bin/packages/<arch>/base/lm-sensors_*.ipk ``` 例如: ```bash bin/packages/x86_64/base/lm-sensors_3.6.0-r1_x86_64.ipk ``` --- ### ✅ 方式 2:编译 + 安装到 staging_dir(可选) 如果你希望这个包被“安装”到中间环境(供其他包依赖),可以加上 `install`: ```bash make package/feeds/packages/lm-sensors/install V=99 ``` 这会把头文件、库等复制到 `staging_dir/target-*` 中。 --- ## 💾 步骤四:提取 .ipk 文件用于刷机安装 编译成功后,在 `bin/packages/` 目录下找到生成的 `.ipk` 文件: ```bash find bin/packages -name "lm-sensors*.ipk" ``` 然后你可以将它拷贝到路由器上安装: ```bash scp bin/packages/x86_64/base/lm-sensors_*.ipk root@192.168.1.1:/tmp/ ``` 登录路由器安装: ```bash opkg install /tmp/lm-sensors_*.ipk ``` --- ## 🐞 调试技巧:查看实际执行命令 如果还报错,使用以下命令查看完整构建过程: ```bash make package/feeds/packages/lm-sensors/compile V=99 IGNORE_ERRORS=1 ``` - `IGNORE_ERRORS=1`:继续输出即使出错 - 查看哪一行 shell 命令失败 - 特别关注 `Makefile` 中 `$(shell ...)` 是否被正确展开 --- ## 📁 补丁已加?确保生效! 如果你已经为 `lm-sensors` 添加了补丁(比如修复 `iconv` 测试的 patch),请确认: 1. 补丁放在正确位置: ``` feeds/packages/utils/lm-sensors/patches/001-fix-iconv.patch ``` 2. 文件权限正常、无 BOM、使用 Unix 换行符(LF) 3. 运行 clean 后再 compile: ```bash make package/feeds/packages/lm-sensors/{clean,compile} V=99 ``` --- ## 🔄 小贴士:快速迭代开发流程 ```bash # 修改完 Makefile 或添加 patch 后: make package/feeds/packages/lm-sensors/clean make package/feeds/packages/lm-sensors/compile V=99 # 观察输出 → 失败则改 patch → 重复 ``` 无需 `make clean` 整个系统! --- ## ✅ 总结:单独编译命令一览 | 功能 | 命令 | |------|------| | 编译模块 | `make package/feeds/packages/lm-sensors/compile V=99` | | 清理模块 | `make package/feeds/packages/lm-sensors/clean` | | 安装到 staging | `make package/feeds/packages/lm-sensors/install` | | 查找生成的 ipk | `find bin/packages -name "lm-sensors*.ipk"` | | 安装到路由器 | `opkg install /tmp/lm-sensors_*.ipk` | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值