发现一个内核bug,想要给社区提交补丁,怎么办?
用Git。
首先下载一份全新的、干净的内核代码,然后进入内核代码树的根目录,我们的一切操作将在这里展开。
1.从master创建自己的开发分支 develop
# git branch develop
2. 从开发分支develop创建自己的补丁分支
# git checkout develop /* 先切换到develop分支 */
# git branch bugFix /* 再用develop创建补丁分支bugFix */
3. 在bugFix上进行开发并生成补丁
# git checkout bugFix /* 切换到bugFix分支 */
# vim linux/...../xxx.c /* 修改bugFix分支中的文件,修改完后保存退出 */
# git add xxx/xxx/xxx.c
# git commit -m "bugfix" –s /* commit我们刚才的修改 */
# git format-patch -M develop /* 对比develop分支生成补丁,假设名字为0001-bugfix.patch */
4. 测试补丁
4.1) 对补丁格式进行检查
# ./linux/scripts/check_patch.py 0001-bugfix.patch
4.2) 检查补丁能否直接打入源码
首先,切换到develop分支:
# git checkout develop
其次,检查补丁:
# git apply --stat 0001-bugfix.patch
再次,检查补丁能否打入:
# git apply --check 0001-bugfix.patch
最后可以通过两种方式打入补丁:
方法1:只修改代码,不提交
# git apply 0001-bugfix.patch
方法2:往develop中打入提交补丁:
# git am 0001-bugfix.patch