Building Poky using the Yocto Project for MIPS Creator CI20
In this article I will show you how to build Poky for the development board Imagination MIPS Creator CI20 with Ingenic JZ4780 MIPS SoC. Poky is the reference GNU/Linux distribution of the Yocto Project. I will built a minimal image and boot it on the board directly from a SD card.
The exact build instructions are available at eLinux wiki. The first step is get the source code of Poky. I want to use release 1.8 of the Yocto Project which is also known as Fido.
Meta layer meta-jz-mips provides recipes for building appropriate U-Boot and an Linux kernel for CI20. This layer is available at GitHub and I just need to clone it.
On the next step I have to initialize the build environment and to adjust some configurations using my favorite text editor vim. Machine name creator-ci20 has to be set at file conf/local.conf. It is also very important to include meta layer meta-jz-mips among the other meta layers in conf/bblayers.conf.
Finally, I have to start the build using bitbake. I am going to bake the simplest image called core-image-minimal. This steps takes a bit longer. The duration depends on the hardware of the build machine as well as on the download speed of my Internet provider.
When the build is successfully completed I have to retrieve the image from directory tmp/deploy/image/creator-ci20/core-image-minimal.sdcard. I can flash it on SD card with dd or bmaptool.
Be careful on this step, make sure that you are flashing the image of the exact disk that corresponds to the sdcard. Commands like lsblk and fdisk are really useful in this case.
I have Imagination MIPS Creator CI20, hardware version 1. The board has an impressive dual core MIPS CPU from Ingenic and 1 GB of RAM. Furthermore, it is equipped with 8GB internal storage.
MIPS Creator CI20 can be booted from the internal storage or from an SD card. I have to make sure that the board with boot my Poky image from the SD card therefore I have to check and adjust the hardware jumper located in the middle of the board. I have to plug a keyboard, a mouse, a power adapter and to connect the board to a monitor using an HDMI cable.
The image contains Linux kernel with version 3.18. Meta layer meta-jz-mips has a backward comparability with the older Linux kernel version 3.0.8 but by default 3.18 is used.