写在前面:

openwrt中内核代码是存放在dl文件夹下的压缩包中的,编译代码时会将源码解压缩出来并打上已存在的内核补丁,然后才进行编译,所以直接在编译目录中修改代码或者直接修改压缩包中的代码都是不合适的。 mt7688的源代码中已经包含了很多内核的补丁包,有兴趣的可以去目录targetlinuxamipspatches-3.18中查看。 本文主要介绍如何通过打补丁的方式修改内核源码。

还原代码到初始状态:

清除编译过的内核代码:

 make target/linux/clean V=s 

解压缩内核并打上已存在的补丁:

 make target/linux/prepare V=s 

创建补丁:

进入内核编译目录:

 cd build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7688/linux-3.18.109/

新建补丁:

 quilt new platform/999-support.patch 

补丁名称最前面的数字表示加载的顺序,数字越小的越先加载;

添加补丁文件修改:

假设这次需要修改文件drivers/usb/serial/option.c,使用如下命令打开该文件:

 quilt edit drivers/usb/serial/option.c

这个文本编辑器感觉不大友好,使用的时候可以使用ctrl+y和ctrl+v快速翻页,然后通过ctrl+c查看当前行号。修改代码时可以用另一个文本编辑器先打开目的代码,然后通过整段复制的方式来修改。修改完毕后使用ctrl+x退出并保存。

生成补丁:

输入命令quilt refresh生成补丁,这时候可以在build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7688/linux-3.18.109/platform中看到补丁文件999-support.patch。然后将该文件拷贝到targetlinuxamipspatches-3.18中。

验证补丁:

使用命令清除内核并重新编译,看看新生成的代码是否是我们修改过后的样子。

openwrt patch文件怎么用_openwrt 打补丁方式修改内核源码相关推荐

  1. openwrt patch文件怎么用_openwrt patch

    一: 这几天使用一款电信的4G网卡,发现了一些问题,所以决定打个pitch来解决问题,顺便把patch的生成与使用学习一下 二:安装patch的管理工具quilt 1. sudo apt-get in ...

  2. 基础IO(文件接口、安装内核源码超详细步骤图解、静态库与动态库)

    基础IO C语言的文件操作接口 fopen fclose fread fwrite fseek 系统调用文件接口 open close read write lseek 安装内核源码 文件描述符&am ...

  3. v62.02 鸿蒙内核源码分析(文件概念) | 为什么说一切皆是文件 | 百篇博客分析OpenHarmony源码

    司马牛忧曰:"人皆有兄弟,我独亡."子夏曰:"商闻之矣:死生有命,富贵在天.君子敬而无失,与人恭而有礼.四海之内,皆兄弟也.君子何患乎无兄弟也?" <论语 ...

  4. 最新无限制188旅游系统V7.0升级补丁 全社通V2.0补丁 Tourex 5.0源码下载

    188旅游系统V7.0升级补丁 全社通V2.0补丁 Tourex 5.0源码下载 原188旅行网站办理体系今日正式晋级到7.0版别了,之前咱们都是V6.1.6.2--V6.6这样的晋级,这次咱 们一次 ...

  5. linux 内核源码打 patch

    一.下载当前Linux内核对应的增量包 https://www.kernel.org/ 我的内核当前版本是 4.9.135 最新的版本是4.9.145,中间有10个增量版本,需要全部下载,增量包不支持 ...

  6. ubuntu下wget下载Linux内核源码、make生成.config文件

    根据资料,如果要调试Linux内核源码,需要自己编译内核源码:原因是,一般下载的内核并不是为调试而编译的,要在编译时开启 "Compile the kernel with debug inf ...

  7. 驱动编程中的头文件与内核源码的关系

    前言 在编写嵌入式LINUX驱动程序时,需要添加很多头文件,这些头文件均位于嵌入式LINUX源码中,因此编译驱动前,应先安装嵌入式LINUX源码,并至少对嵌入式LINUX内核编译一次. 这些头文件根据 ...

  8. 树莓派Linux内核源码配置、编译、挂载(boot/kernal/根文件)、开启新内核

    目录 一.树莓派Linux源码配置(适合树莓派) 总体概述 配置的三种方式 1.照搬厂家的配置(使用这种方式) 2.参考厂家的配置(感受一下) 3.完全自主配置(需要一定工作经验) 二.树莓派Linu ...

  9. linux编译ko文件(不同内核源码版本)

    最近编译内核驱动程序遇到了一些困难,网上下载与我的linux系统相同的版本,编译的时候过不去(每次都是编译到sound文件夹下时提示找不到xxx.c文件),后来经过多次的实验后便把内核换了别的版本作为 ...

最新文章

  1. 键盘I/O中断调用(INT 16H)和常见的int 17H、int 1A H
  2. JPA 一对一设置无效,连表查询的时候另外一个实体类的对象值为空
  3. JavaScript 调试
  4. Nginx 作为代理服务与负载均衡
  5. Netty--ByteBuf
  6. 进一步:BSD信号和异常同时捕获
  7. 人工智能ai知识_人工智能中基于知识的代理层
  8. 数据告诉你,抖音是怎么在半年之内逆袭的
  9. Java 小白:没有项目经验,企业会要我么
  10. openmv自然光下寻找激光点
  11. 微信8.0来了,iOS更新及Android内测版来啦(内含内测版下载连接)
  12. np.delete详解
  13. 部署tomcat之appBase和docBase
  14. iOS事件传递链与响应链
  15. 《关于大学生熬夜状况的调查》
  16. 【临沂seo首选】增长|聊聊抖音SEO
  17. “优必选“杯2021中国机器人技能大赛--赛后总结
  18. 8款令人骄傲的国产软件,让你的电脑好用数倍不止
  19. substance的使用示例(转)
  20. VSCode配置C/C++(单文件+项目)自救指南

热门文章

  1. 95-110-026-源码-Env-RemoteStreamEnvironment
  2. 【Hadoop】the short-cricuit local reads feature cannnot be use because UNIX Domain sockets are not ava
  3. flink 1.9.0 编译:flink-fs-hadoop-shaded 找不到
  4. MySQL下实现先排序后分组查询(问题记录)
  5. 交公粮了,我经常逛的技术网站,你最爱哪个?
  6. java跑批任务调度_任务调度框架Quartz实现的跑批程序(四)
  7. fetch oracle 12c下载,十二、Oracle Fetch子句
  8. SpringMVC框架----RequestMapping注解
  9. c# 跨线程访问窗体UI
  10. javascript打印1-100内的质数