最近给linux社区提交了一个新驱动,反复修改了快两个月,发了9个版本。。。终于被社区接受了。做个笔记总结一下。
下载最新的linux内核代码:
下载最新的内核代码用于新驱动的编译验证,因为最新的内核中可能有一些新的特性,比如新的接口什么的,这些你可能并不知道,而维护者会要求你的新驱动中务必要使用新的接口或实现新的功能,所以你必须基于最新的内核代码进行编译验证和代码提交:
最新版本linux下载:git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
个别情况下,维护者可能会要求你使用即将在下一版中才会使用的功能,也就是比最新的kernel还要新,这种情况下你需要下载linux-next版本进行编译验证和提交。
linux-next版本下载:git clone https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
添加你的驱动到上述内核代码中,在本地commit代码:
git commit -s
加上-s参数可以在commit的下端生成Signed-off-by: My Name <my_email@gmail.com> 这些都是必要的。
关于commit信息,务必要参考同类驱动的历史提交中的commit信息的格式,否则会被要求重新提交;
新加的驱动会有dt-binding和vendor信息的相关修改,这两个会被要求各自是独立的commit,不能和驱动代码放在同一次提交中。
所有工作之前,如果你的代码是windows下创建的,你需要用dos2unix drivers/iio/proximity/hx9023s.