树莓派编译OpenBMC镜像反复提示image is too large错误求助
解决方法
你修改FLASH_SIZE不生效的核心原因是树莓派机型的配置文件优先级高于image_types_phosphor.bbclass的默认配置,你改的全局默认值被machine层的硬编码参数覆盖了,按以下步骤调整即可:
- 调整树莓派机型配置的分区参数
打开对应机型的配置文件,比如你用64位树莓派4,路径为meta-evb/meta-evb-raspberrypi/conf/machine/raspberrypi4-64.conf,修改/新增以下参数:
这一步会覆盖全局默认配置,解决你之前改# 单位为KB,对应128MB Flash,可根据需求调大 FLASH_SIZE = "131072" # 内核分区调整为16MB,解决fitImage过大问题 FLASH_KERNEL_SIZE = "16384" # 调大boot分区和根分区容量 BOOT_PARTITION_SIZE = "32768" ROOT_PARTITION_SIZE = "81920"FLASH_SIZE不生效的问题。 - 裁剪镜像冗余内容
默认obmc-phosphor-image默认集成了大量树莓派用不上的服务,你可以在build/conf/local.conf中添加以下配置裁剪体积:
裁剪后镜像体积可以缩小30%以上。# 移除不需要的功能特性 DISTRO_FEATURES:remove = "ipmi phosphor-webui phosphor-redfish" # 移除不需要的安装包 IMAGE_INSTALL:remove = "obmc-ipmid phosphor-hwmon-lmsensors phosphor-dbus-monitor" - 验证配置生效
重新初始化编译环境后,执行以下命令确认FLASH_SIZE参数是你设置的值,避免被其他配置覆盖:
确认输出符合预期后再执行bitbake -e obmc-phosphor-image | grep ^FLASH_SIZEbitbake obmc-phosphor-image编译即可。
内容的提问来源于stack exchange,提问作者tm4A
相关产品推荐
相关产品推荐

