All of lore.kernel.org
 help / color / mirror / Atom feed
* cannot build image using sstate
@ 2017-03-09  6:54 Mircea Gliga
  2017-03-09  7:22 ` Patrick Ohly
  0 siblings, 1 reply; 4+ messages in thread
From: Mircea Gliga @ 2017-03-09  6:54 UTC (permalink / raw)
  To: yocto

Long story short: I have problems building an image, in a clean build 
directory, reusing the shared state cache and downloads from a previous 
build.
A file created in the do_deploy_append task is not created(restored) 
anymore when building using a previous sstate.

And now the long description:
In my custom layer, in a kernel recipe, linux-stable.bb, I have appended 
some operations to the `deploy` task, one of them is creating an U-Boot 
FIT image:

linux-stable.bb:
do_deploy_append() {
[...]
         #this line creates the image_signed.fit file
          mkimage  [...] image_signed.fit

[...]
}

Then in my image recipe, my-custom-image.bb, I'm creating an archive 
with some files, including the above created FIT image:

my-custom-image.bb:

LINUXIMAGE = "image_signed.fit"
do_makeArch() {
[...]
    tar --owner root --group root -C ${DEPLOY_DIR_IMAGE} -cvf 
${DEPLOY_DIR_IMAGE}/psf/${IMAGEFILE} -h ${LINUXIMAGE}
[...]
}

addtask do_makeArch after do_image_complete before do_build


Now, create a new build directory, set DL_DIR and SSTATE_DIR in local 
conf, start build:
# source oe-init-build-env build2
# bitbake my-custom-image
ERROR: my-custom-image-1.0-r0 do_makeArch: Function failed: do_makeArch
Log data follows:
| DEBUG: Executing shell function do_makeArch
| tar: image_signed.fit: Cannot stat: No such file or directory
| tar: Exiting with failure status due to previous errors

So the image build fails, because the image_signed.fit file is not present.
After some short time the build is started, in the deploy directory I 
see that the zimage is already there but the FIT image is missing ...

This is confirmed by the linux-stable.bb's logs: log.do_deploy_setscene. 
It lists all the files that are restored from the sstate cache, 
image_signed.fit
is not one of them:

DEBUG: Executing shell function sstate_unpack_package
deploy-linux-stable/
deploy-linux-stable/zImage-machine.bin
deploy-linux-stable/zImage--4.8.4+git0+a2b42342b2-r0.2-machine-20170308134915.bin
deploy-linux-stable/zImage-at91-machine.dtb
deploy-linux-stable/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
deploy-linux-stable/zImage--4.8.4+git0+a2b42342b2-r0.2-at91-machine-20170308134915.dtb
deploy-linux-stable/modules-machine.tgz
deploy-linux-stable/modules--4.8.4+git0+a2b42342b2-r0.2-machine-20170308134915.tgz
deploy-linux-stable/zImage
deploy-linux-stable/zImage-initramfs-4.8.4+gitAUTOINC+a2b42342b2-r0-machine-20170308134915.bin
deploy-linux-stable/zImage-initramfs-machine.bin
DEBUG: Shell function sstate_unpack_package finished


Any hints, on how to add my custom generated files to the sstate ? Or 
what am I doing wrong here ?
Thanks



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: cannot build image using sstate
  2017-03-09  6:54 cannot build image using sstate Mircea Gliga
@ 2017-03-09  7:22 ` Patrick Ohly
  2017-03-09  7:59   ` Mircea Gliga
  0 siblings, 1 reply; 4+ messages in thread
From: Patrick Ohly @ 2017-03-09  7:22 UTC (permalink / raw)
  To: Mircea Gliga; +Cc: yocto

On Thu, 2017-03-09 at 08:54 +0200, Mircea Gliga wrote:
> Long story short: I have problems building an image, in a clean build 
> directory, reusing the shared state cache and downloads from a previous 
> build.
> A file created in the do_deploy_append task is not created(restored) 
> anymore when building using a previous sstate.
> 
> And now the long description:
> In my custom layer, in a kernel recipe, linux-stable.bb, I have appended 
> some operations to the `deploy` task, one of them is creating an U-Boot 
> FIT image:
> 
> linux-stable.bb:
> do_deploy_append() {
> [...]
>          #this line creates the image_signed.fit file
>           mkimage  [...] image_signed.fit
> 
> [...]
> }

Are you writing image_signed.fit into the ${DEPLOYDIR} or
${DEPLOY_DIR_IMAGE}? When writing directly into ${DEPLOY_DIR_IMAGE}, you
bypass the mechanism which adds files to the sstate cache and then you
get exactly the problem you describe.

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: cannot build image using sstate
  2017-03-09  7:22 ` Patrick Ohly
@ 2017-03-09  7:59   ` Mircea Gliga
  2017-03-09  9:45     ` Patrick Ohly
  0 siblings, 1 reply; 4+ messages in thread
From: Mircea Gliga @ 2017-03-09  7:59 UTC (permalink / raw)
  To: Patrick Ohly; +Cc: yocto

[-- Attachment #1: Type: text/plain, Size: 1873 bytes --]

Thanks! You are right, the do_deploy_append installs the 
image_signed.fit in the ${DEPLOY_DIR_IMAGE}(I should have kept that line 
in the previous mail also):
do_deploy_append() {
[...]
          #this line creates the image_signed.fit file
           mkimage  [...] image_signed.fit
           install -m 0644  image_signed.fit ${DEPLOY_DIR_IMAGE}/.
[...]
}

The doc mentions in regards to DEPLOYDIR:
"Recipes inheriting the |deploy| class should copy files to be deployed 
into |DEPLOYDIR|, and the class will take care of copying them into 
|DEPLOY_DIR_IMAGE| 
<http://www.yoctoproject.org/docs/latest/mega-manual/mega-manual.html#var-DEPLOY_DIR_IMAGE> 
afterwards."

So I should just replace ${DEPLOY_DIR_IMAGE} with ${DEPLOYDIR} and I get 
the same behaviour as before + the benefit of sstate cache ?

Thanks


On 09/03/17 09:22, Patrick Ohly wrote:
> On Thu, 2017-03-09 at 08:54 +0200, Mircea Gliga wrote:
>> Long story short: I have problems building an image, in a clean build
>> directory, reusing the shared state cache and downloads from a previous
>> build.
>> A file created in the do_deploy_append task is not created(restored)
>> anymore when building using a previous sstate.
>>
>> And now the long description:
>> In my custom layer, in a kernel recipe, linux-stable.bb, I have appended
>> some operations to the `deploy` task, one of them is creating an U-Boot
>> FIT image:
>>
>> linux-stable.bb:
>> do_deploy_append() {
>> [...]
>>           #this line creates the image_signed.fit file
>>            mkimage  [...] image_signed.fit
>>
>> [...]
>> }
> Are you writing image_signed.fit into the ${DEPLOYDIR} or
> ${DEPLOY_DIR_IMAGE}? When writing directly into ${DEPLOY_DIR_IMAGE}, you
> bypass the mechanism which adds files to the sstate cache and then you
> get exactly the problem you describe.
>


[-- Attachment #2: Type: text/html, Size: 2590 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: cannot build image using sstate
  2017-03-09  7:59   ` Mircea Gliga
@ 2017-03-09  9:45     ` Patrick Ohly
  0 siblings, 0 replies; 4+ messages in thread
From: Patrick Ohly @ 2017-03-09  9:45 UTC (permalink / raw)
  To: Mircea Gliga; +Cc: yocto

On Thu, 2017-03-09 at 09:59 +0200, Mircea Gliga wrote:
> Thanks! You are right, the do_deploy_append installs the
> image_signed.fit in the ${DEPLOY_DIR_IMAGE}(I should have kept that
> line in the previous mail also):
> do_deploy_append() {
> [...]
>          #this line creates the image_signed.fit file
>           mkimage  [...] image_signed.fit
>           install -m 0644  image_signed.fit ${DEPLOY_DIR_IMAGE}/.
> [...]
> }
> 
> The doc mentions in regards to DEPLOYDIR:
> "Recipes inheriting the deploy class should copy files to be deployed
> into DEPLOYDIR, and the class will take care of copying them into
> DEPLOY_DIR_IMAGE afterwards."
> 
> So I should just replace ${DEPLOY_DIR_IMAGE} with ${DEPLOYDIR} and I
> get the same behaviour as before + the benefit of sstate cache ?

Yes.

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.





^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-03-09  9:45 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-03-09  6:54 cannot build image using sstate Mircea Gliga
2017-03-09  7:22 ` Patrick Ohly
2017-03-09  7:59   ` Mircea Gliga
2017-03-09  9:45     ` Patrick Ohly

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.