<div dir="ltr"><div><div>Hi, Bruce:<br><br></div>No problem, thanks for letting me know the status.<br><br></div>//Ming Liu<br></div><div class="gmail_extra"><br><div class="gmail_quote">2016-01-14 18:06 GMT+01:00 Bruce Ashfield <span dir="ltr">&lt;<a href="mailto:bruce.ashfield@windriver.com" target="_blank">bruce.ashfield@windriver.com</a>&gt;</span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Just bumping this review to let you know that I haven&#39;t forgotten<br>
about it.<br>
<br>
I&#39;ve been looking at the details at least twice now, but haven&#39;t<br>
managed to sort everything out.<br>
<br>
I&#39;ll pick this up again shortly.<span class="HOEnZb"><font color="#888888"><br>
<br>
Bruce</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
On 16-01-05 08:12 AM, Ming Liu wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In current initramfs bundled kernel packaging policy, there are several<br>
dependency chains co-existing:<br>
<br>
| &quot;core-image-minimal.do_build&quot; -&gt; &quot;core-image-minimal.do_bundle_initramfs&quot;<br>
| &quot;core-image-minimal.do_bundle_initramfs&quot; -&gt; &quot;virtual/kernel.do_bundle_initramfs&quot;<br>
| &quot;core-image-minimal.do_bundle_initramfs&quot; -&gt; &quot;core-image-minimal.do_rootfs&quot;<br>
| &quot;core-image-minimal.do_rootfs&quot; -&gt; &quot;virtual/kernel.do_package_write_${IMAGE_PKGTYPE}&quot;<br>
| &quot;virtual/kernel.do_package_write_${IMAGE_PKGTYPE}&quot; -&gt; &quot;virtual/kernel.do_package&quot;<br>
| &quot;virtual/kernel.do_package&quot; -&gt; &quot;virtual/kernel.do_install&quot;<br>
|<br>
| &quot;virtual/kernel.do_deploy&quot; -&gt; &quot;virtual/kernel.do_bundle_initramfs&quot;<br>
| &quot;virtual/kernel.do_bundle_initramfs&quot; -&gt; &quot;virtual/kernel.do_install&quot;<br>
<br>
We could see, virtual/kernel.do_package is not explicitly depending on<br>
virtual/kernel.do_bundle_initramfs so far, therefore, there is not a<br>
workable way to add initramfs bundled kernel image into rootfs, because<br>
kernel&#39;s do_bundle_initramfs could run parallelly with its do_package,<br>
which means we will get a implicit kernel-image package that sometimes it<br>
contains the initramfs bundled kernel or sometimes it doesn&#39;t.<br>
<br>
To fix this problem, the idea is to let the initramfs bundled kernel<br>
packaging depend on do_bundle_initramfs, meanwhile, to avoid the circular<br>
dependency issue that commit: 609d5a9ab9e58bb1c2bcc2145399fbc8b701b85a<br>
[ kernel.bbclass, image.bbclass: Implement kernel INITRAMFS dependency and bundling ]<br>
<br>
was trying to address, this dependency has to be splitted from kernel<br>
recipe(at least, I could not figure out another way to achieve it), so a<br>
new kernel-initramfs is introduced, in which a dependency chain is created:<br>
<br>
| &quot;kernel-initramfs.do_install&quot; -&gt; &quot;virtual/kernel.do_deploy&quot;<br>
| &quot;virtual/kernel.do_deploy&quot; -&gt; &quot;virtual/kernel.do_bundle_initramfs&quot;<br>
<br>
Then the users can add initramfs bundled kernel image into rootfs by:<br>
<br>
IMAGE_INSTALL_append = &quot; kernel-initramfs&quot;<br>
<br>
without introducing any circular dependencies.<br>
<br>
Ming Liu (3):<br>
   kernel.bbclass: do not install initramfs bundled kernel image<br>
   image.bbclass: removes bundle_initramfs related code<br>
   kernel-initramfs: new recipe, creates initramfs bundled kernel<br>
     packaging<br>
<br>
  meta/classes/image.bbclass                    | 11 -----<br>
  meta/classes/kernel.bbclass                   |  4 --<br>
  meta/recipes-kernel/linux/<a href="http://kernel-initramfs.bb" rel="noreferrer" target="_blank">kernel-initramfs.bb</a> | 69 +++++++++++++++++++++++++++<br>
  3 files changed, 69 insertions(+), 15 deletions(-)<br>
  create mode 100644 meta/recipes-kernel/linux/<a href="http://kernel-initramfs.bb" rel="noreferrer" target="_blank">kernel-initramfs.bb</a><br>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br></div>