In Episode 31: First attempts to debug the Linux kernel and prior episodes of the MinnowBoard Chronicles eBook, you can see how I struggled unsuccessfully to install a Yocto image I built onto the MinnowBoard. Well, this week, I got it to work! Here’s the trick.
I’ll reveal my secret right at the beginning: I happened to be browsing the MinnowBoard tutorials webpage, and I found a new tutorial there: Installing Yocto 2.4.1 Poky. So, intrigued, I decided to follow those instructions, on the off-chance that I might have better luck. They differed slightly from the instructions that I had followed in earlier Episodes within the Yocto Project Quick Start, but I really couldn’t see what the major changes were.
I followed the steps, and it worked like a charm! Here’s a screenshot of the login. Note that just entering the userid “root”, without any password, gets you right in:
IMPORTANT NOTE #1: There’s a small error in the MinnowBoard tutorial instructions: although the image build resides in your working directory here:
the instructions to copy the file to the USB stick is listed as:
$ sudo dd if=tmp/deploy/images/intel-corei7-64/core-image-base-intel-corei7-64.wic of=TARGET_DEVICE
You’re copying the core-image-minimal in this case, not the core-image-base. I’m sure this will be fixed in a future version of the tutorial, but for now, it tripped me up for a couple of minutes.
IMPORTANT NOTE #2: for those who might be somewhat unfamiliar with Linux, there’s a trick to finding out what the TARGET_DEVICE is. I use a USB stick, and the command:
$ sudo fdisk -l
Look for the disk that has the same size and configuration as your USB stick. In my case, the TARGET_DEVICE was /dev/sdb.
Typing in “help” into the booted image console gets you a listing of the basic built-in commands available:
I tried most of these, and also went through an old copy (1987) of the Unix System V Primer that I had lying around, trying the following commands, and found them to work:
Unfortunately, some of the commands and tools that I prefer (such as “nano” versus “vi” as an editor) are not in this minimal build.
One important note that I saw in the tutorial, that was not in the Yocto Project Quick Start, was the following:
NOTE: The Yocto Project is not a Linux distribution—it enables you to build your own distribution. For that reason, Intel BSPs (from the meta-intel layer) ship with a time-limited kernel for evaluation purposes—after 10 days, the kernel will reboot. This kernel is not intended to be used for production systems; you will need to build your own distribution with the Yocto Project tools. For more information, please see the Quick Start Guide as well as the rest of the Yocto Project documentation set.
I didn’t actually try this out, because we had a power outage between the time I launched the Yocto build the first time, and the 10-day period being elapsed. But, I did notice that sometime after the 10-day period from the date of the first installation, I could no longer log into the build. Just entering “root” gave me an error message, and I couldn’t log in under any circumstances:
Subsequently, I took the core-image-minimal-intel-corei7-64.wic, burned it onto the USB stick again, and reloaded it onto the Minnowboard. This time, I could log in. So, I concluded that the 10 days must apply to the date of the image install, and not the date of the image build. That makes sense.
My next step is to try different example images, such as core-image-sato and core-image-sato-sdk, to see the differences, and then leap towards working with the Linux kernel source code.
Note that this is the first episode (#32) of the MinnowBoard Chronicles published subsequent to the release of my eBook, The MinnowBoard Chronicles. Please register for the eBook if you want to catch up, and stay tuned for more episodes and a new and revised version of the eBook in the future!