找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 26085|回复: 250

Padavan各源码融合教程,新增xtls支持

 火.. [复制链接]
本帖最后由 keke1023 于 2021-9-1 21:13 编辑

新增了对xtls的支持,源码来自于xumng123
https://github.com/xumng123/rt-n56u
感谢@vb1980 持续对代码做出的测试和改进,他在原本的基础上新增了对xray的编译,而我之前就直接替换了v2的bin,所以是殊途同归啦
https://github.com/vb1980/Padavan-KVR

本文涉及的Padavan源码如下:
https://github.com/hanwckf/rt-n56u
https://github.com/chongshengB/rt-n56u
https://github.com/padavanonly/rt-n56u
https://github.com/immortalwrt/padavan
其中hanwckf的源码最先支持了7915无线芯片,也就是支持了wifi6的机型比如CR660x和JCG Q20/Q10 Pro
padavanonly在hanwckf的基础上增加修改出了7615/7915对kvr的支持
chongshengB的源码具有一些别人没有的插件,使用比较方便
immortalwrt在一些细节上有优化

将他们四个人的源码融合起来,虽然是一件复杂且工作量大的事,毕竟有75000+个文件,但这件事里面并非有多少技术含量
主要是要感谢hanwckf在无线驱动和机型适配方面,以及chongshengB在插件方面,还有padavanonly在kvr方面的探索与开源

刚开始融合的时候想的比较简单,以为源码各个部分的关系比较分明,可能就是user文件夹下添加插件源码更改总的Makefile,然后对应的在www里添加前端的asp就行,
结果经历了几次古怪的失败后(无法启动,页面显示异常,无线异常),这才开始静下心来仔细看每一份源码之间的区别

然后发现不同源码之间的差异可真是大。。有些是写法不同目的相同,有些则是实现的方法都不一样了
我们最终的目的是要有padavanonly的kvr,要有chongshengB的插件,以及hanwckf的其他部分

工具链都是一样的,区别都在trunk文件夹:
configs文件夹完全采用padavanonly,因为config文件里包含了对kvr的编译开关
libc文件夹完全相同
libs文件夹完全采用hanwckf,因为他所采用的各个lib的版本都最新,我比较喜欢追新
linux-3.4.x文件夹完全采用immortalwrt,新增了闪存型号的支持和MMC/SD卡的支持
proprietary文件夹完全采用padavanonly,此处是无线驱动部分,因为要支持kvr就需要修改无线驱动,这里只能用padavanonly的
vendors文件夹比较特别,chongshengB的源码里这个文件夹包含了很多无线驱动方面的内容,比如各种lna和pa搭配的eeprom文件,但是hanwckf/padavanonly是没有的,无线驱动方面一概以padavanonly的为准
但是希望有对vendors这个文件夹比较了解的朋友能给分析一下,我还没更细致的去理解这部分
build_firmware_modify需要采用padavanonly版本(指定回退的无线驱动版本)并从chongshengB版本复制插件添加部分
trunk的Makefile采用chongshengB版本,因为包含了go的编译
trunk文件夹下其他文件均可采用padavanonly版本

插件是都集中在user文件夹的,所以user文件夹以chongshengB为基础添改:
        chnroute修改Makefile不需要每次重新下载(可以不改,我只是为了自己编译不同固件方便)
        dnsmasq可替换为hanwckf的升级版本
        dropbear可替换为hanwckf的升级版本
        frp修改Makefile不需要每次重新下载编译(可以不改,我只是为了自己编译不同固件方便)
        htop可替换为hanwckf的升级版本

        httpd需要以chongshengB的为基础按照hanwckf+padavanonly的修改
                \user\httpd\ralink.c采用hanwckf的
                \user\httpd\variables.c添加7915部分及两个80211KV,80211R
                \user\httpd\web_ex.c添加7915部分

        iptables可替换为hanwckf的升级版本,同时要替换miniupnpd,有指定依赖关系

        rc需要以padavanonly的为基础按照chongshengB修改
                \user\rc\rc.c增加插件脚本运行
                \user\rc\rc.h增加插件定义
                \user\rc\services.c增加插件服务
                \user\rc\watchdog.c增加插件看门狗

        scripts需要以padavanonly的为基础按照chongshengB修改
                \user\scripts\autostart.sh从chongshengB添加
                \user\scripts\copyscripts.sh从chongshengB添加
                \user\scripts\dev_init.sh增加对ld.so.conf的定义
                \user\scripts\ld.so.conf从chongshengB添加
                \user\scripts\Makefile增加autostart.sh,copyscripts.sh,ld.so.conf
                \user\scripts\mtd_storage.sh注释掉gfwlist部分

       share需要以padavanonly的为基础按照chongshengB修改
                \user\shared\cflags.mk增加插件部分
                \user\shared\defaults.c增加插件部分
                \user\shared\notify_rc.h使用chongshengB的版本

        v2修改Makefile直接跳过编译采用二进制文件,可用xray(可以不改,我只是为了自己编译不同固件方便)

       www需要以chongshengB的为基础按照padavanonly修改
                \user\www\n56u_ribbon_fixed\Advanced_WAdvanced_Content.asp增加7915和kvr
                \user\www\n56u_ribbon_fixed\Advanced_WAdvanced2g_Content.asp增加7915和kvr
                \user\www\n56u_ribbon_fixed\Advanced_Wireless_Content.asp采用padavanonly的
                \user\www\n56u_ribbon_fixed\Advanced_Wireless2g_Content.asp采用padavanonly的
                \user\www\n56u_ribbon_fixed\Advanced_WMode_Content.asp采用padavanonly的
                \user\www\n56u_ribbon_fixed\Advanced_WMode2g_Content.asp采用padavanonly的
                \user\www\n56u_ribbon_fixed\wireless.js采用padavanonly的
                \user\www\n56u_ribbon_fixed\wireless_2g.js采用padavanonly的
                其他的js文件有互相的关联,所以轻易不要替换或者改动,很容易出错导致显示问题

       Makefile需要以chongshengB的为基础按照padavanonly增加ralinkiappd,也就是控制kvr的程序

最后再来回顾一下,如果要添加有前端页面的插件,就需要修改httpd,rc,scripts,share,www和总的Makefile,因为一个插件包括了前端显示的参数,系统注册的服务,运行时的脚本,系统内的参数,前端的asp页面以及编译开关,是这么多内容构成一个可视化插件的整体

增加适配机型的config就简单的多了,从chongshengB的config里复制出来MSG1500-7615的部分,然后跟类似机型对比修改,这里比较麻烦的就是闪存定义这里要对比一个nand闪存的,而无线部分又要对照一个7615的,还有usb部分,基本上都是些不是很要紧的增改,前面的事都做了,这里简直是毫无难度

融合出来的源码已经上传到github,也有三四个坛友都编译通过并测试使用了,想必没有什么大问题,有兴趣的朋友可以自己融合自己需要的部分,或者直接用融合后的代码
https://github.com/keke1023/Padavan
另:之前我说B70编译出来5G有问题,可能问题出在我这台机子本身的硬件,也许7612是可以用的,等待我再找个机子验证吧


本帖子中包含更多资源

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

×

评分

参与人数 17恩山币 +23 收起 理由
简*** + 1 送你一块“恩山”牌肥皂,喏,就在你脚下、.
dus*** + 1 感谢你的分享,无论怎样,你都是最无私的人.
shin*** + 1 大佬能加下aliyundrive-webdav这个插件吗
ro*** + 1 感谢分享。。。。
lu*** + 1 一看就是觉得高端、大气、上档次!
高*** + 1 一看就是觉得高端、大气、上档次!
weln*** + 2 不要怂、就是干!
小猫*** + 1 不要怂、就是干!
tova*** + 2 风清云淡、飘逸悠然……极爽!
lihy*** + 1 强大的恩山!(以下重复1万次)
草莓*** + 1 一看就是觉得高端、大气、上档次!
SkyT*** + 1 感谢你的分享,无论怎样,你都是最无私的人!来,说说,你E盘上还有啥一起给我吧!
kenj*** + 1 感谢分享~~~~~~
qql*** + 2 完美
go*** + 2 完美~
daji*** + 2 谢谢楼主辛勤融合,造福大家!
czc*** + 2 可以啊,不过可以加个流水线编译。

查看全部评分

刷首页刷到了 感谢讲解!
回复

使用道具 举报

 楼主| | 显示全部楼层
yuyuyg 发表于 2021-8-30 23:03
刷首页刷到了 感谢讲解!

哈哈我今天终于抽空写出来了~刚刚发布~
回复

使用道具 举报

kvr只支持7615和7915吗?
回复

使用道具 举报

大佬牛逼,膜拜大佬
回复

使用道具 举报

精品贴,前排广告位。
回复

使用道具 举报

来自手机 | 显示全部楼层
好活,彳亍
回复

使用道具 举报

好久不见,大神
回复

使用道具 举报

 楼主| | 显示全部楼层
晓立宝贝 发表于 2021-8-31 01:02
好久不见,大神

哈哈哈真的耶,最近我写了不少技术分享你可以看看呀~
回复

使用道具 举报

 楼主| | 显示全部楼层
240038901 发表于 2021-8-30 23:19
kvr只支持7615和7915吗?

别的没测,b70还坏了…我也不清楚,但是是有这个选项的
回复

使用道具 举报

 楼主| | 显示全部楼层
佐须之男 发表于 2021-8-30 23:49
精品贴,前排广告位。

最近跟CR660X杠上了,结果今天发现涨价了哈哈哈
回复

使用道具 举报

来自手机 | 显示全部楼层
支持大神,666
回复

使用道具 举报

这么大的工作量
必须要顶起来
回复

使用道具 举报

 楼主| | 显示全部楼层
vb1980 发表于 2021-8-31 07:21
支持大神,666

感谢测试~
回复

使用道具 举报

来自手机 | 显示全部楼层
前几天弄了k2p的,zerotier无效,违禁软件无效。固件只有9M多,正常加这两个有14M
回复

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-5-21 12:47

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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