From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by yocto-www.yoctoproject.org (Postfix, from userid 118) id 0A5AAE008DB; Tue, 11 Nov 2014 02:36:29 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on yocto-www.yoctoproject.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.1 X-Spam-HAM-Report: * -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% * [score: 0.0000] Received: from mail.chez-thomas.org (mail.mlbassoc.com [65.100.170.105]) by yocto-www.yoctoproject.org (Postfix) with ESMTP id 58A10E008B4 for ; Tue, 11 Nov 2014 02:36:20 -0800 (PST) Received: by mail.chez-thomas.org (Postfix, from userid 1998) id 78430F811EC; Tue, 11 Nov 2014 03:36:18 -0700 (MST) Received: from [192.168.1.114] (zeus [192.168.1.114]) by mail.chez-thomas.org (Postfix) with ESMTP id 8F727F811DF; Tue, 11 Nov 2014 03:36:17 -0700 (MST) Message-ID: <5461E6AF.2020206@mlbassoc.com> Date: Tue, 11 Nov 2014 03:36:31 -0700 From: Gary Thomas User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.2.0 MIME-Version: 1.0 To: meta-freescale@yoctoproject.org References: <546187FF.5060803@beamcommunications.com> In-Reply-To: <546187FF.5060803@beamcommunications.com> Subject: Re: Rebuilding kernel doesn't rebuild sdcard image X-BeenThere: meta-freescale@yoctoproject.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: Usage and development list for the meta-fsl-* layers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 11 Nov 2014 10:36:29 -0000 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit On 2014-11-10 20:52, Craig McQueen wrote: > 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 > > > After this, I tried to force an SD card image rebuild, by rebuilding an arbitrary package: > > bitbake -c cleansstate nano > bitbake core-image-minimal > > It rebuilt nano, but didn't rebuild _any_ of the images in build/tmp/deploy/images/imx28evk. So it looks as though the problem is bigger than I originally thought. I'm fairly new > to Yocto, so I'm not sure what is going on here. Since nano is not included in core-image-minimal, this makes total sense. > > > Is it possible to update the recipe that builds the .sdcard file and other images, to ensure it will run after any kernel or root filesystem change? Meanwhile as a work-around, > what is the command to manually re-run this step? How are you choosing which kernel is built? Also, just because you rebuild some component, e.g. the kernel, bitbake won't rebuild other things you might have previously built that depends on that component. If, as in your case, you have an image that depends on the component, you'll need to explicitly rebuild that image. Hopefully this sequence will help you understand the process: % bitbake core-image-minimal builds all of the component pieces for the resulting image (root file system), including the kernel, etc. % ... make some change, e.g. choose a different kernel % bitbake core-image-minimal will [re]build any components which need to be updated. One key thing to understand is that the version of components are expected to increase so if you first force the 2.6.35 kernel to be built, then build a 3.14.19 version, if you rebuild the 2.6.35 version, the core-image-minimal WILL NOT be rebuilt automatically. The only way to get back to the older kernel will be to forceably remove all traces of the new kernel and then force a rebuild of the image. For example: % bitbake linux-fslc -c cleansstate % bitbake core-image-minimal -c cleansstate ... change preference for linux-imx % bitbake core-image-minimal This sequence will let you rebuild the older kernel and then build the root file system (.sdcard) image. -- ------------------------------------------------------------ Gary Thomas | Consulting for the MLB Associates | Embedded world ------------------------------------------------------------