You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在64位机器上运行/构建Yocto intel-core2-32的适配调整咨询

适配64位UEFI运行32位Yocto Linux(intel-core2-32 BSP)

核心逻辑

64位UEFI仅能识别并启动64位EFI引导程序(bootx64.efi),但该引导程序可加载32位Linux内核与根文件系统。所以需要在32位Yocto构建流程中,加入64位EFI引导组件的支持,同时保留32位系统的核心配置。

具体调整步骤

1. 修改local.conf配置

在构建目录的conf/local.conf中添加以下配置,开启跨架构EFI引导支持:

# 允许构建64位EFI工具链
MULTILIBS = "multilib:lib64"
DEFAULTTUNE_virtclass-multilib-lib64 = "x86-64"

# 指定生成64位GRUB EFI镜像
GRUB_TARGET = "x86_64-efi"
GRUB_BUILD_TARGET = "x86_64-efi"

# 维持32位系统核心编译目标
DEFAULTTUNE = "core2-32"

2. 调整BSP层配置(按需操作)

若meta-intel/meta-intel-core2-32/conf/machine/include/core2-32.inc中存在限制64位组件的配置,需做如下修改:

  • 注释掉禁用MULTILIBS的相关配置
  • 添加IMAGE_BOOT_FILES += "bootx64.efi",确保引导文件被打包到镜像内

3. 重新构建系统镜像

执行构建命令,确保64位EFI引导程序与32位系统组件均被正确编译:

bitbake core-image-minimal

4. 部署镜像到存储介质

构建完成后,在tmp/deploy/images/<machine>/目录下找到生成的bootx64.efi和32位系统镜像:

  • 将bootx64.efi放置到ESP分区的EFI/BOOT/路径下
  • 将32位根文件系统镜像部署到对应数据分区
  • 在UEFI固件设置中启用ESP分区引导项

关键注意事项

  • 确认内核配置支持EFI引导:需开启CONFIG_EFI=y和CONFIG_EFI_STUB=y,meta-intel的core2-32 BSP通常默认开启,若未开启需在linux-intel的bbappend文件中添加对应配置
  • 部分64位UEFI固件可能限制加载32位内核,需提前确认硬件固件兼容性
  • 若使用systemd-boot替代GRUB,需编译64位版本的systemd-boot,并生成指向32位内核的启动条目

内容的提问来源于stack exchange,提问作者Anton9988

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 17:12:14