这里主要是内核模块自己看懂,当然结合一些文档会更好。
这里我选择了静态代码分析工具Understand来对源码进行分析:
主要是考虑到代码量太大了(1w+),而且.c文件中主要介绍的是局部实现,没有全局的概念.
代码分析工具有很多种,这里我们关注的是代码转流程图,知乎有一个问题和这个类似,可以提供更多灵感,但是大部分只支持单个函数的分析或者是全局.c文件的嵌套关系的分析,只能作为一种参考。
其中page_alloc.c文件中
- __alloc_pages_nodemask()模块的实现可以参考【文章】
- __free_pages()模块实现注释可以参考【文章】,本质和linux内核中伙伴系统内存释放函数相似。
总体写的比较虎头蛇尾,年末摆烂了两个月(借口新冠后遗症就是“懒癌”啊哈哈哈,请大家保重身体呀,来自一整个寒假都砸咳嗽的选手碎碎念)
Padavan固件研究
一、添加pppoe拔号时lcp echo 开启/关闭 选项
刚开始使用Padavan时,看一看路由器日志,发现里面全部是pppoe已边接,pppoe已断开连接,不断的断线重拔,跳开路由器,换成电脑拔号,不掉线,想应该是路由器器问题,然后百度一下,原来很多华硕路由器都是这样,解释如下:
lcp echo 是pppoe连接协议里的一个环节,连接建立好之后,每隔一个时间,客户端或者服务器,会发送一个叫 lcp echo request 的包,收到的一方会回应一个 lcp echo resp
目前本人手上只有这几个设备,所以只测试这几个
PSG1218(k2,超频600,按我的参数编译16-22分钟,〜7.07mb)
NEWIFI3(新三,按我的参数编译大约28-35分钟,〜25.5mb,集成了v2二进制文件和frp所以大)
G-DOCK(竞斗云2.0,按我的参数编译大概3小时30分钟,〜57mb(ubi包)。)。
编译好的固件最好双清或者品种,opboot,uboot,清除后刷入,防止修改了配置残余
有关参数看设备的配置文件,sh文件,padavan或openwrt对应public.sh文件
固件按理通用编译,但是还需测试,目前测试了的有,coolsnowwolf(雕大)的openwrt(还集成了Lienol的包和openclash,在public.sh里面),chongshengB(C大)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入
欢迎使用Ma...
本文涉及的Padavan源码如下:https://github.com/hanwckf/rt-n56uhttps://github.com/chongshengB/rt-n56uhttps://github.com/padavanonly/rt-n56uhttps://github.com/immortalwrt/padavan
其中hanwckf的源码最先支持了7915无线芯片,也就是支持了wifi6的机型比如CR660x和JCG Q20/Q10 Pro
padavanonly在hanwckf的基础
cd /opt/rt-n56u/trunk
下面是修改内核配置需要做的操作:
cp -f configs/boards/<机型名称>/kernel-3.4.x.config linux-3.4.x/.config
make -C linux-3.4.x menuconfig
menuconfig的配置方法见后文,修改完成后移动回原目录:
mv -f linux-3.4...
更新二进制请切换GetPadavanNgSrc为替代双向
编译固件请切换PadavanNgCBuild为替代分支
点击☆Star开始编译(编译完成的固件到Actions / Artifact下载)
新建Release开始编译(编译完成的固件到Releases下载)
编译脚本默认工具链版本为Rev1(不支持符号)
更新工具链时请修改编译脚本工具链版本
解包之后,修改
可以把解包之后的文件,复制出来,进windows修改,换回去时,注意文件权限。比较文件差异用Beyond Compare方便
也可以直接在ubuntu系统下修改,文件比较安装meld
重新打包命令
./modify.sh c newrom.trx
modprobe cifs CIFSMaxBufSize=64512
mkdir ssk1 ssk6 ssk7
mount -t cifs //192.168.2.1/SSK_usb1_7 /media/ssk7/ -o username=guest
mount -t cifs //192.168.2.1/SSK_usb1_1 /media/ssk1/ -o username=guest
mount -t ci
Linux在相应用户下,用crontab -l 命令可以查看该用户定时执行的任务,-e可以编辑,但是其真实文件在哪儿呢??
以CentOS为例,其真实的位置在:/var/spool/cron下面,有执行定时任务的用户将会有以该用户命名的一个文档,vim该文档与用命令crontab -l看到的一样。
crontab命令
crontab命令用于安装、删除或者列出用于驱动cron后台进程的
STM32烧录错误【PDSC: Sequence Execution failed error-Debug access failed - cannot read address 0xE00FFFE】