找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 7444|回复: 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包。最好不要预安装太多,否则初始化过程会很漫长。


本帖子中包含更多资源

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

×
我的恩山、我的无线 The best wifi forum is right here.
来自手机 | 显示全部楼层
学习学习!!!
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

学习学习
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

预安装现成的ipk包??
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

使用道具 举报

哈哈,一看标题,就想到这种方法,我用过
有一个很好用的稳定固件,但缺少个别功能时,又希望重置后能继续保留后安装的功能,就用这个办法,不过我不是编译,而是对已有固件进行解包,添加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/

点评

官方的插件还有些有顽疾,自己没优化过根本不能好用。比如miniupnp,恐怕任何人都不知道在luci上启用其实它是不能运行的(因为它没有运行状态指示,任何人都不知它是否运行),直到你重启系统才运行。但只要你执行一  详情 回复 发表于 2023-10-29 10:21
如果只是想在官方固件加几个个包这样靠谱还简单,后续可以安装kmod。 不过玩系统肯定涉及内核编译,一些内核模块连官方都没有,不编译没得玩,比如nat1,sfe之类,没办法。  详情 回复 发表于 2023-10-29 09:06
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

我是头疼nodejs,真鸡儿长
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

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

使用道具 举报

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

使用道具 举报

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

点评

本身编译docker就烦得很了。就为这两玩意编译docker,那和直接编译这两玩意有多少区别  详情 回复 发表于 2023-10-29 10:02
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

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

点评

那确实看你的个人需求了,docker只是平台,只需要这两个P2P,直接下编译好的linux X86运行包是最快的法子 不过编译docker没碰到过需要一天的情况。  详情 回复 发表于 2023-10-29 11:23
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

 楼主| | 显示全部楼层
本帖最后由 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哪里有个报错,是哪里我自己都忘记了。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报


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


本帖子中包含更多资源

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

×
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

那确实看你的个人需求了,docker只是平台,只需要这两个P2P,直接下编译好的linux X86运行包是最快的法子
不过编译docker没碰到过需要一天的情况。
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-4-28 21:01

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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