<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg>
讯享网
操作系统:OpenEuler 24.03 (LTS)
内核:6.11.4
https://www.cnblogs.com/embInn/p/14038119.html
https://blog.csdn.net/_/article/details/
在https://blog.csdn.net/weixin_/article/details/driver下创建目录
讯享网
hello/hello.c
hello/Makefile
讯享网
hello/Kconfig
drivers/Makefile
讯享网
即:在原Makefile后添加obj-$(CONFIG_HAVE_HELLO) += hello/
drivers/Kconfig
在endmenu前添加hello文件夹的配置文件解析:source “drivers/hello/Kconfig”
在/hello下创建文件
讯享网
参照代码文件编辑对应文件
在/drivers下打开文件
同样编辑文件
编译
返回到linux目录
清除原有配置
讯享网
然后调用make ARCH=arm64 xxx_defconfig
打开arch文件夹—>arm64文件夹,可找到对应defconfig文件的名字
configuration written to .config表示这步操作成功
查看是否生效
讯享网

敲N不使能,敲M编译进模块
敲y编译进内核,显示<*>,我选的是编译进内核
最后一步,编译内核
使用指令make ARCH=arm64时报错,但报的错跟我的操作没关系,我就没管它直接换掉了
Kconfig,.config和Makefile
Kconfig就是对应着内核的每级配置菜单。
在Linux内核源码的这棵树,就是通过Kconfig建立各层子目录之间的连接,通过Makefile文件来选择各个目录下的对应的文件是否被编译,.config作为总控制台,控制Makefile编译指定的程序代码文件。而这一切控制关系是由Kconfig文件建立起来的。
.config文件决定了内核根目录下那些文件、子目录被编译进内核。make menuconfig就是以菜单的形式打开内核源码的树形结构,指令完成后自动生成.config。
简言之:
Kconfig —> (每个源码目录下)提供选项
.config —> (源码顶层目录下)保存选择结果
Makefile—> (每个源码目录下)根据.config中的内容来告知编译系统如何编译
在实际操作之前看参考资料云里雾里,自己操作一遍再回来看就明白了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/139526.html