Changing kernel provider in Yocto doesn't update sdcard image

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Changing kernel provider in Yocto doesn't update sdcard image

834 Views
CraigMcQueen
Contributor III

I'm trying out Yocto to build core-image-minimal for imx28evk. I was able to build with the linux-imx kernel provider (which builds a 2.6.35 kernel), and then switch to linux-fslc kernel provider (3.14.19 kernel). That seemed fine.

But now I am trying to switch back to linux-imx kernel provider, to check some things with the 2.6.35 kernel. But when I write the sdcard image then boot, I find the sdcard image still contains the 3.14.19 kernel.

I tried:

bitbake -c cleansstate linux-fslc

bitbake -c cleansstate linux-imx

bitbake core-image-minimal

But still the sdcard image contains the 3.14.19 kernel.

I had a closer look at what's in the build/tmp/deploy/images/imx28evk directory. Here is the latest .sdcard file, and the latest uImage file:

-rw-r--r-- 1 craigm craigm 83886080 Nov 10 16:25 core-image-minimal-imx28evk-20141110052334.rootfs.sdcard

-rw-r--r-- 2 craigm craigm  2612944 Nov 10 17:13 uImage--2.6.35.3-r45-imx28evk-20141110060936.bin

I check the uImage file:

file uImage--2.6.35.3-r45-imx28evk-20141110060936.bin

uImage--2.6.35.3-r45-imx28evk-20141110060936.bin: u-boot legacy uImage, Linux-2.6.35.3-maintain+yocto+gb, Linux/ARM, OS Kernel Image (Not compressed), 2612880 bytes, Mon Nov 10 17:12:44 2014, Load Address: 0x40008000, Entry Point: 0x40008000, Header CRC: 0x35886962, Data CRC: 0x37FEB8CE

So the uImage has been built fine. But it looks as though the core-image-minimal-imx28evk-xxxx.rootfs.sdcard has not been subsequently rebuilt. Perhaps the .sdcard file is only rebuilt if the root file system changes, but not if the kernel only changes.

To confirm this, I mount the SD card and check its contents, and I see the uImage still contains a 3.14.19 kernel:

file /media/craigm/Boot\ imx28e/uImage

/media/craigm/Boot imx28e/uImage: u-boot legacy uImage, Linux-3.14.19-fslc+g00e4721, Linux/ARM, OS Kernel Image (Not compressed), 3586912 bytes, Mon Nov 10 12:10:21 2014, Load Address: 0x40008000, Entry Point: 0x40008000, Header CRC: 0x9CFC9D94, Data CRC: 0x7C476150

Is it possible to update the recipe that builds the .sdcard file, to ensure it will run after any kernel change? Meanwhile as a work-around, what is the command to manually re-run this step?

Labels (2)
Tags (1)
0 Kudos
1 Reply

403 Views
fabio_estevam
NXP Employee
NXP Employee

It would be better to report this bug in the meta-fsl-arm mailing list.

0 Kudos