Raspberry Pi CM3 eMMC刷入Yocto镜像及启动验证问题咨询
解决Raspberry Pi CM3 Yocto镜像无.img文件及刷入eMMC的问题
作为刚接触Yocto的新手,遇到找不到可刷写镜像的问题太正常了——Yocto默认不会自动生成适合直接刷入存储设备的磁盘镜像,得我们手动配置一下。下面一步步帮你解决:
一、为什么没有.img文件?
Yocto里的可刷写磁盘镜像通常是wic格式(和.img功能完全一致,主流烧写工具都兼容),默认情况下可能没启用这个镜像类型。你需要在构建配置里开启它:
- 打开你的Yocto构建目录下的
build/conf/local.conf文件 - 添加以下配置:
这个配置会让Yocto同时生成压缩和未压缩的wic镜像,未压缩的IMAGE_FSTYPES += "wic.bz2 wic".wic文件就相当于你要找的.img文件。
二、重新生成可刷写镜像
配置完成后,重新构建你的镜像:
bitbake <你的镜像名称> # 比如bitbake core-image-minimal
构建完成后回到deploy/images/raspberrypi-cm3目录,你会看到类似core-image-minimal-raspberrypi-cm3.wic或者core-image-minimal-raspberrypi-cm3.wic.bz2的文件。如果是压缩版,先用命令解压:
bzip2 -d core-image-minimal-raspberrypi-cm3.wic.bz2
解压后的.wic文件就是可以直接刷入eMMC的镜像。
三、刷入Raspberry Pi CM3的eMMC
CM3的eMMC刷写需要先进入USB大容量存储模式,步骤如下:
- 找到CM3载板上的BOOT跳线(或开关):通常是将GPIO2(引脚3)接地,具体参考你的载板手册;有些载板会有专门的"BOOT to USB"开关
- 用USB线连接载板的USB OTG接口到你的电脑,然后给CM3上电
- 此时电脑会识别出一个可移动磁盘(这就是CM3的eMMC)
接下来刷写镜像,两种方法选一个:
方法1:用dd命令(Linux/macOS)
先确认eMMC对应的设备名(比如/dev/sdb,千万别选分区如/dev/sdb1),然后执行:
sudo dd if=core-image-minimal-raspberrypi-cm3.wic of=/dev/<你的eMMC设备名> bs=4M status=progress
刷写完成后,执行sync命令确保数据写入完成,再移除USB线。
方法2:用balenaEtcher(图形化工具,跨平台)
打开工具后,选择你的wic镜像,再选择识别到的eMMC磁盘,点击"Flash"即可——工具会自动完成刷写和校验,新手更推荐这个方式。
四、验证镜像能否启动
刷写完成后:
- 移除BOOT跳线/关闭BOOT开关,断开USB线
- 给CM3上电,验证方式有两种:
- 串口调试:用USB转TTL模块连接CM3的UART引脚(TX、RX、GND),用
screen或minicom工具查看启动日志:
如果正常,会看到U-Boot启动信息,接着内核加载,最后出现系统登录提示符。screen /dev/ttyUSB0 115200 - HDMI显示:连接HDMI显示器到载板,上电后应该能看到启动画面和登录界面。
- 串口调试:用USB转TTL模块连接CM3的UART引脚(TX、RX、GND),用
常见问题排查
- 如果还是没生成wic镜像:检查
local.conf里的IMAGE_FSTYPES是否正确,或者尝试直接执行bitbake <你的镜像名称> -c wic_create强制生成wic镜像 - 如果刷写后无法启动:确认BOOT跳线已移除,eMMC被正确识别,镜像确实是针对
raspberrypi-cm3机器构建的,同时检查Yocto配置里是否包含了CM3所需的内核驱动和U-Boot配置
内容的提问来源于stack exchange,提问作者Asma Maaroufi
相关产品推荐
相关产品推荐

