Background
I was starting to look at using Yocto as a system for building software images for the Raspberry Pi 3 Model B that I have. I wanted to try using Yocto as there are some projects at my office that may begin using it in the future. One of the nice points is that all the setup of cross compilers for your target system is handled by a Yocto layer. There is already a Yocto layer for the Raspberry Pi (meta-raspberrypi) and a custom meta-rpi layer someone has put together with a few more example images.
I need to either cross-compile kernel modules or use Yocto as I have special drivers I wish to add to the Pi. These are already compiled and working on my Ubuntu PC and I hoped using Yocto might make it easy to cross compile these and any other updates in the future.
My difficulty is that the SD Card image talked about in the meta-raspberrypi documentation and several tutorials, never gets generated, even on successful builds.
Tutorials Mentioning The Use Of dd
& An .sdimg File
- Build a Raspberry Pi 2 Minimal Image with The Yocto Project
- Building Raspberry Pi Systems with Yocto
- 12MB Minimal Image for Raspberry Pi using the Yocto Project
- Poky Raspberry Pi SD Card Image
Commonly Seen Error
None of the builds I have made so far generate .sdimg files. When I try to add the sdcard
or sdcard_image-rpi
image types to IMAGE_FSTYPES I get messages such as:
ERROR: /home/thomasthorne/work/yocto-rpi/meta-raspberrypi/recipes-core/images/rpi-test-image.bb: No IMAGE_CMD defined for IMAGE_FSTYPES entry 'sdcard_image-rpi' - possibly invalid type name or missing support class
Main Questions
How do I generate the SD card image for my Pi from Yocto?
Do I need to format the SD card manually and copy over the contents bit by bit?
Why do all these tutorials suggest it would be as simple as a single dd
command? I guess something changed in the last couple of years and they are all out of date.