ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

yocto:17-menuconfig

yocto:17-menuconfig 第7课: 很好这一课是 Yocto 学习中一个重要的里程碑。按照我们前面的路线你已经完成了✅ 建立 Yocto 编译环境✅ 编译 core-image-minimal✅ Raspberry Pi 2 启动成功✅ Dropbear SSH✅ 固定 IP✅ 自己写 recipe✅ do_install✅ systemd service✅ 自己建立 meta-myproduct✅ image 组成✅ package 与依赖下面进入第7课kernel menuconfig —— 掌握 Kernel 定制摘要本课深入讲解如何在 Yocto 项目中定制 Linux Kernel 配置。主要内容包括1) 理解 Kernel 在 Yocto 中的位置和提供者2) 使用bitbake virtual/kernel -c menuconfig进入图形化配置界面3) 修改配置如 LOCALVERSION并理解其临时性4) 了解 Kernel 配置的真正来源BSP defconfig → 默认配置 → Fragments → 最终 .config5) 掌握永久保存配置的正确方法savedefconfig → 放入 layer → bbappend 引用6) 推荐的关键命令和实践步骤。通过本课学习你将掌握 Yocto 中 Kernel 配置的完整工作流避免临时修改丢失实现配置的版本化管理。目标不是学 Linux Kernel 开发而是学会 Yocto 如何修改 Kernel 配置。本课目标完成以后你应该能够回答Kernel 的 .config 从哪里来的menuconfig 修改后如何永久保存如何让 Yocto 每次都自动使用你的 Kernel 配置第一部分 认识 Kernel 在 Yocto 中的位置先看看当前使用的是哪个 kernel bitbake -e virtual/kernel | grep ^PN一般 Raspberry Pi 会看到 PN“linux-raspberrypi”再看看 Provider bitbake -e virtual/kernel | grep ^PREFERRED_PROVIDER_virtual/kernel应该类似 linux-raspberrypi说明virtual/kernel ▼ linux-raspberrypi.bb ▼ 下载 Raspberry Pi Linux Kernel第二部分 menuconfig运行: bitbake virtual/kernel -c menuconfig第一次会编译 kernel。最后出现: Linux Kernel Configuration就是经典的Device Drivers Filesystem Networking USB那个菜单。第三部分 修改一个配置例如进入图形菜单后General setup ---Local version - append to kernel release 默认可能是()或者(-yocto-standard)把它改成 -mytest保存退出。这时并没有修改 recipe。只是修改了.config也就是说~/yocto/build-rpi2/tmp/work/raspberrypi2-poky-linux-gnueabi/linux-raspberrypi/6.6.63git/linux-raspberrypi2-standard-build/.config这是临时文件。如果bitbake -c clean virtual/kernel它就没了。所以menuconfig 默认不会永久保存。第四部分 查看配置第五部分 编译 Kernel退出后bitbake virtual/kernelYocto 会重新编译 kernel。如果bitbake myproduct-image整个 image 也会自动包含新的 kernel。第六部分 Kernel 配置来源很多初学者以为kernel|---.config其实不是。真正流程BSP defconfig ▼ kernel 默认配置 ▼ Fragments ▼ 最终 .config ▼ 编译因此.config 是自动生成的而不是源码仓库中的固定文件。第七部分 为什么 menuconfig 不推荐直接使用因为tmp/work/是临时目录。例如clean cleanall 重新编译 升级kernel都会丢失修改。正确做法是menuconfig ▼ savedefconfig ▼ 生成 defconfig ▼ 放入自己的 layer ▼ bbappend 引用这才符合 Yocto 的管理方式。第八部分 推荐掌握的几个命令bitbake virtual/kernel -c menuconfig修改 Kernel 配置 bitbake virtual/kernel -c devshell进入 Kernel 构建目录 : bitbake virtual/kernel重新编译 Kernel bitbake virtual/kernel -c clean清除 Kernel 构建结果 bitbake myproduct-image生成包含新 Kernel 的镜像。本课实践建议建议你做以下几个实验1.运行 bitbake virtual/kernel -c menuconfig。2.将 CONFIG_LOCALVERSION 设置为 -mytest。3.保存退出。4.编译 virtual/kernel。5.生成 myproduct-image。6.启动 Raspberry Pi确认新内核正常运行。
返回列表