我们下载一份内核源码,修改了一些代码,需要制作补丁,用diff命令
比如现在有两份内核源码
kernel-old, kernel-new
打补丁,命令为
diff -ruN kernel-old kernel-new > diff.patch
可以通过Kompare,或者直接用gedit打开查看修改的代码
打补丁的命令:
patch -p1或-p0 < ../diff.patch
接着要查看我们修改的代码是否符合内核编码规范
就需要用到内核的脚本checkpatch.pl
命令如下
cd kernel-new
./script/checkpatch.pl ../diff.patch > ../checkresult.txt
打开checkresult.txt查看不符合规范的地方,再修改代码,重新打补丁,直到没有不符合规范的地方
很多都是空格,单行不超过80个字符,tab等错误
下面列出一些碰到过的
ERROR: Macros with complex values should be enclosed in parentheses
复杂的宏要用小括号括起来
ERROR: Missing Signed-off-by: line(s)
这个好像是补丁签名的意思,就是谁打的这个补