​​本文涉及的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的其他部分

beyond compare yyds!

工具链都是一样的,区别都在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部分,基本上都是些不是很要紧的增改,前面的事都做了,这里简直是毫无难度

Padavan各源码融合教程相关推荐

  1. 基于YOLOv7的室内场景智能识别系统(源码&教程)

    1.项目背景: 近年来,随着移动互联网与定位技术的发展,基于位置服务越来越多地出现在人们的日常生活中.虽然智能手机都包含很多基于位置服务的应用,但是传统的基于位置服务常常将服务范围划分为室内与室外两种 ...

  2. Python基于改进Unet的新冠肺炎等级分割系统(源码&教程)

    1.研究背景 新冠肺炎给人类带来极大威胁,自动精确分割新冠肺炎CT图像感染区域可以辅助医生进行诊断治疗,但新冠肺炎的弥漫性感染.感染区域形状多变.与其他肺部组织极易混淆等给CT图像分割带来挑战.为此, ...

  3. 基于改进YOLOv7&OpenCV的行人过马路速度与交通灯实时监测系统(源码&教程)

    1.研究背景 横穿马路的行人运动速度太快.太慢或者突变都可能影响驾驶者的判断,从而导致交通事故.车载辅助系统应能够在交通路口为驾驶者提供异常行人的速度预判信息.文献[1-2]通过对不同红绿灯情形进行建 ...

  4. 基于改进PSGAN的AI自动美颜化妆系统(源码&教程)

    1.研究背景 在计算机视觉领域,基于人脸图像的合成与分析一直是热门的研究课题.人脸表情合成在影视娱乐.人工智能产业应用广泛,自动化妆技术在美妆行业有着巨大的应用前景.虽然人脸图像合成技术在近几年得到了 ...

  5. 基于YOLOv7的芯片表面缺陷检测系统(源码&教程)

    1.项目背景: 目前随着电子领域的快速发展,芯片也已经成为日常生活中不可或缺的一部分.随着市场对芯片的需求不断增大,裸芯片表面缺陷检测任务的压力也越来越大.裸芯片表面的缺陷检测不仅能保证芯片成品的质量 ...

  6. 基于GAN的动漫头像生成系统(源码&教程)

    1.研究背景 我们都喜欢动漫角色,并试图创造我们的定制角色.然而,要掌握绘画技巧需要巨大的努力,之后我们首先有能力设计自己的角色.为了弥补这一差距,动画角色的自动生成提供了一个机会,在没有专业技能的情 ...

  7. 基于改进Deeplabv3plus的自动驾驶场景分割系统 (源码&教程)

    1.研究背景 随着人工智能技术的飞速发展,车辆的自动驾驶离人们的生活越来越近.自动驾驶整个运行流程中首先需要依赖各种车载传感器收集车辆周围的各种环境数据,进而利用各种分析算法分析得到计算机可感知的环境 ...

  8. Unity3D游戏-愤怒的小鸟游戏源码和教程(二)

    Unity愤怒的小鸟游戏教程(二) 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) AngryEva游戏 ...

  9. ansible1.7.2源码安装教程

    ansible1.7.2源码安装教程 ================================================================================= ...

  10. mysql data文件夹恢复_【专注】Zabbix源码安装教程—步骤详解(2)安装并配置mysql...

    四.安装并配置mysql(1) 解压mysql-5.7.26.tar.gz与boost_1_59_0.tar.gz #tar -xvf mysql-5.7.26.tar.gz #tar -xvf bo ...

最新文章

  1. 边缘计算不再“边缘”
  2. 不进行格式化将U盘快速转换为NTFS格式
  3. html表格统计表,jQuery操作表格(table)的常用方法、技巧汇总
  4. Lackey:一个示例工具
  5. 【java】List 根据实体属性值搜索
  6. python 时分秒毫秒_第一篇:Python处理时间日期
  7. C语言:要求输入一个字符,如果这个字符是小写字母,将这个字母转换成大写字母,否则保持不变
  8. mssql 取数据指定条数(例:100-200条的数据)
  9. 推荐两个有意思的自定义View小项目
  10. HD TUNE 下载使用
  11. linux下回收站无法清空 解决
  12. App开屏页如何设计?来看这五个常用的方法
  13. 苹果手机数据线充不了电_苹果手机充不进电怎么回事?iPhone充电没反应解决方法...
  14. 服务器重装系统用友u6,64系统装U6我用win7 64位旗舰版的系统,安装用
  15. 哈萨克语驾考 科目一四驾驶证学车考试题库
  16. MS7024 RGB/DVP转CVBS
  17. Wireshark提取RTP包中的H264码流
  18. 每日案例(第二期):智慧能源领域知识图谱实践案例速读
  19. 如何将带GPS的网络化的SDR频谱接收机完美地应用于分布式和移动频谱监测
  20. 我读 《异类》 - 马尔科姆 · 格拉德维尔 / 不一样的成功启示录 - 隐性优势

热门文章

  1. 软件测试职位概要,系统测试工程师职位描述
  2. 【EasyExcel】 模板填充批量导出,多文件以zip压缩包格式导出
  3. matlab画基因表达热图,科学网—使用pheatmap软件绘制基因表达热图 - 陈振玺的博文...
  4. arc093F Dark Horse
  5. 智慧旅游综合运营服务平台建设方案
  6. POJ - 2142 扩展欧几里得
  7. 百度网盘html资源,百度网盘目录索引搭建教程:如何把百度网盘文件做成在线html目录...
  8. 百度在线语音合成API接口简单应用
  9. 【比赛回顾】广工大2020级年ACM第一次月赛——Dio的面包工坊
  10. Swipe轮播插件的使用