如何提交Linux内核补丁到Linux内核社区
Posted bcbobo21cn
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何提交Linux内核补丁到Linux内核社区相关的知识,希望对你有一定的参考价值。
步骤比较复杂,有10多个;下面来学习前2个;
1 获取当前源码树
首先要有一个当前内核源代码的存储库;使用git获取一个;将要从主线存储库开始;
可以通过以下方式获取:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
你可能不希望直接针对主线树进行开发;大多数子系统维护人员运 行自己的树,并希望看到针对这些树准备的补丁;
2 使用 “diff -up” 或者 “diff -uprN” 来创建补丁
所有内核的改动,都是以补丁的形式呈现的,补丁由 diff(1) 生成;
创建补丁的 时候,要确认它是以 “unified diff” 格式创建的,这种格式由 diff(1) 的 ‘-u’ 参数生成;
而且,请使用 ‘-p’ 参数,那样会显示每个改动所在的C函数,使得 产生的补丁容易读得多;
补丁应该基于内核源代码树的根目录,而不是里边的任 何子目录;
为一个单独的文件创建补丁,示例如下;
SRCTREE=linux
MYFILE=drivers/net/mydriver.c
cd $SRCTREE
cp $MYFILE $MYFILE.orig
vi $MYFILE # make your change
cd ..
diff -up $SRCTREE/$MYFILE.orig, > /tmp/patch
这应该说的是,你写完了一个内核补丁程序之后;使用linux的diff命令来创建补丁;
diff(difference)命令常用来比较两个文件中的内容;
diff 命令是以逐行的方式比较文本文件的异同处;-u,以合并的方式来显示文件内容的不同;-p,若比较的文件为 C 语言的程序码文件时,显示差异所在的函数名称;
前面给出的示例看上去是说;
先切换到内核源码目录;
cp是copy的缩写;拷贝你的文件到对应目录;
用vi编辑器编辑你的更改;
返回上一级;
使用diff -up来制作补丁;patch就是补丁的意思;
详细请参阅,
https://www.kernel.org/doc/html/latest/translations/zh_CN/process/submitting-patches.html
以上是关于如何提交Linux内核补丁到Linux内核社区的主要内容,如果未能解决你的问题,请参考以下文章