英文:
Yocto - Adding drivers to kernel source without patching
问题
我知道关于通过编辑内核存储库并使用git创建补丁来更改内核源代码的传统方法,我也了解了devtool
。这两种方法最终都会创建补丁。
是否有一种不同的方法来实现相同的效果?也许可以通过添加*.c
和*.h
文件并告诉Yocto来构建它们,类似于如何将设备树blob添加到映像中?对我来说,消除补丁步骤似乎可以使开发过程更加简单。
英文:
I know about the traditional way of making changes to the kernel source by editing the kernel repository and creating patches with git, I did read about devtool
as well. Both solutions create patches in the end.
Is there a different way of achieving the same effect? Perhaps by adding *.c
and *.h
files and telling Yocto to build them, similarly to how Device Tree blobs are added to the image? It seems obvious to me that getting rid of the patching step make's the development process easier.
答案1
得分: 1
如果我理解正确,您尝试在内核源代码中附加文件或进行修改,而没有应用补丁一段时间。如果是这样,我建议您在工作区的某个位置克隆您的存储库。
cd ~ && mkdir workspace && cd workspace
git clone https://github.com/mykernelsource.git
然后设置您的内核配方以从这个本地 Git 源构建。为了实现这一点,您可以将当前的 SRC_URI
注释掉,然后添加您自己的,如下所示:
SRC_URI = "git:///home/user/workspace/mykernelsource/;protocol=file"
不要忘记在 git
后面添加三个斜杠 ///
。Bitbake支持不同的文件获取协议,这在这里1有非常详细的文档。
请注意,您应该关注 SRCREV
变量。如果 SRCREV = "${AUTOREV}"
,那么您必须在构建之前每次提交。您还可以将您自己的源代码修订提供给这个变量。只需输入 git log
来找到您的源代码修订。
英文:
If i am correct you try to append files in your kernel sources or modify it without applying patches for a time being. If so, I suggest you to clone your repository somewhere in your workspace.
cd ~ && mkdir workspace && cd workspace
git clone https://github.com/mykernelsource.git
Then setup you kernel recipe to build from this local git source. To achieve this you can comment the actual SRC_URI
Afterwards, add yours as follow:
SRC_URI = "git:///home/user/workspace/mykernelsource/;protocol=file"
Do not forget to append three /
after git
Bitbake support different protocol of file fetcher which is really well documented here
Note that you should take care of SRCREV
variable.
If SRCREV = "${AUTOREV}"
then you have to commit each time before building. You can also provide your own source revision to this variable. Just type git log
to find yours.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论