找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 8821|回复: 48

openwrt编译过程中预安装现成的ipk包的方法,方法很原始,但我估计从来都没人这样用

[复制链接]
本帖最后由 wulishui 于 2023-10-28 23:39 编辑

为什么要这样?因为有些包编译起来异常痛苦,包很小,编译过程却异常复杂,编译耗时比编译一个固件还长。
首先是transmission 4.0,需要工具链node,这个工具链编译了一天一夜还在编译,火从心中起,直接ctrl+c,老子不陪你玩了。
其次是qbittorrent,编译qt的时间比编译op固件还长,所以我宁可用静态版,体积大一点也认了。
预安装的先决条件:
1.已经编译了依赖,如果是kmod,必须编译,不能安装,或者其它依赖也能一起安装
2.已经尝试过安装了能正常使用。
transmission和qbittorrent安装都能使用的。
步骤:
1.使用files大法,建立一个/etc/pre_install目录,去官方源下载好,把ipk放进去



2./etc/uci-defaults目录,把脚本文件98-pre_install放进去


3.编辑脚本文件,里面填写这些内容:
  1. #!/bin/sh

  2. [ -n "$(ls /etc/pre_install)" ] && opkg install /etc/pre_install/*.ipk --force-depends
  3. rm -rf /etc/pre_install

  4. exit 0
复制代码

这样初始化时候就会自动安装这些ipk包。最好不要预安装太多,否则初始化过程会很漫长。


本帖子中包含更多资源

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

×
来自手机 | 显示全部楼层
思考思考!!!
回复

使用道具 举报

思考思考
回复

使用道具 举报

预安装现成的ipk包??
回复

使用道具 举报

辛苦,谢谢分享。
回复

使用道具 举报

哈哈,一看标题,就想到这种方法,我用过
有一个很好用的稳定固件,但缺少个别功能时,又希望重置后能继续保留后安装的功能,就用这个办法,不过我不是编译,而是对已有固件进行解包,添加IPK和脚本文件后,再封包。
例如在研究路由宝youku-yk1添加网络打印功能时,在openwrt官方下载openwrt-19.07.4-1-ramips-mt7620-youku-yk1-squashfs-sysupgrade.bin,解包后,加入以下ipk。
lluci-app-p910nd_git-22.115.68448-712bc8e-1_all.ipk
luci-app-usb-printer_1.0-20230116_all.ipk
luci-i18n-p910nd-zh-cn_git-22.115.68448-712bc8e-1_all.ipk
luci-proto-relay_git-22.115.68448-712bc8e-1_all.ipk
mini_snmpd_1.4-rc1-4_mipsel_24kc.ipk
p910nd_0.97-8_mipsel_24kc.ipk
relayd_2020-04-25-f4d759be-1_mipsel_24kc.ipk


不过像你这样的,如果不涉及内核编译,是不是可以直接用imagebuilder方法呢? 就是把已经编译好的内核、ipk功能包构建为固件,只要把官方没有的ipk预下载到packages路径下,编写uci-defualts,就可以构建强大的固件。需要搭建构建环境
imagebuilder方式打包固件的方法:
https://openwrt.org/docs/guide-u ... ftware/imagebuilder

如果是仅构建官方默认的功能,还可以用云编译(也是imagebuilder),不用自己搭建构建环境。
https://firmware-selector.openwrt.org/
回复

使用道具 举报

我是头疼nodejs,真鸡儿长
回复

使用道具 举报

 楼主| | 显示全部楼层
aming.ou 发表于 2023-10-29 08:15
哈哈,一看标题,就想到这种方法,我用过
有一个很好用的稳定固件,但缺少个别功能时,又希望重置后能继续 ...

如果只是想在官方固件加几个个包这样靠谱还简单,后续可以安装kmod。
不过玩系统肯定涉及内核编译,一些内核模块连官方都没有,不编译没得玩,比如nat1,sfe之类,没办法。
回复

使用道具 举报

感谢分享
回复

使用道具 举报

对于一般硬件配置不够的硬路由是只有编译原生运行的法子,但你这个X86平台,有一种很简单的曲线救国的法子,就是docker运行。你说的这几个P2P软件都有N多现成的docker镜像,这就是docker存在的重要意义之一:
不折腾编译,不用管运行环境和依赖。
回复

使用道具 举报

 楼主| | 显示全部楼层
avin4 发表于 2023-10-29 09:48
对于一般硬件配置不够的硬路由是只有编译原生运行的法子,但你这个X86平台,有一种很简单的曲线救国的法子 ...

本身编译docker就烦得很了。就为这两玩意编译docker,那和直接编译这两玩意有多少区别
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 wulishui 于 2023-10-29 10:34 编辑
aming.ou 发表于 2023-10-29 08:15
哈哈,一看标题,就想到这种方法,我用过
有一个很好用的稳定固件,但缺少个别功能时,又希望重置后能继续 ...

官方的插件还有些有顽疾,自己没优化过根本不能好用。比如miniupnp,恐怕任何人都不知道在luci上启用其实它是不能运行的(因为它没有运行状态指示,任何人都不知它是否运行),直到你重启系统才运行。但只要你执行一次/etc/init.d/miniupnpd start后,在luci上可以随意开关,这时候你禁用后再重启,你又不能在luci上启用了(去官方源码翻了下,官方fw4版本已经修复,可喜可贺,lean的源码没有修复)。transmission也是,在lucii上要按两次应用才会运行,同样需要按两下才能禁用(官方源码至今无修复)。cpulimit实际上无法运行(因为luci上也没有状态指示,谁都不知道实际上它进程并没有运行),这些都是多年的顽疾,没人修复。uhttp还是dnsmasq哪里有个报错,是哪里我自己都忘记了。
回复

使用道具 举报


畅网x86-P2现在专职编译OP。。。


本帖子中包含更多资源

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

×
回复

使用道具 举报

wulishui 发表于 2023-10-29 10:02
本身编译docker就烦得很了。就为这两玩意编译docker,那和直接编译这两玩意有多少区别 ...

那确实看你的个人需求了,docker只是平台,只需要这两个P2P,直接下编译好的linux X86运行包是最快的法子
不过编译docker没碰到过需要一天的情况。
回复

使用道具 举报

可以只修改你认为有bug的 miniupnp transmission uhttp等,然后每个插件单独编译为ipk,再放到imagebuilder中,替换原版,然后构建固件。 例如opeenwrt中的busybox,我就自定义需要的功能后编译为包含所需功能的busybox,
imagebuilder的好处就是不需要编译所有源代码,只需要组装构建自己需要的固件。当然了,遇到没有现成的ipk,或者原ipk存在bug,可以拿源码单独编译出ipk。对于可编辑的明文文件,例如luci, 甚至解包ipk,修改对应文件后,再封包为新的ipk,再用imagebuilder构建固件。
回复

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-5-14 03:35

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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