[yocto] How to specify a different kernel for an image

Gabriele Zampieri gabbla.malist at gmail.com
Fri Jul 19 07:03:14 PDT 2019


Hi Patrick,

Do I have to replicate (and maintain) all of the references to
> mymachine to also refer to my newly defined "installationmachine"?  Or
> can I tell Bitbake that "installationmachine" is the same as
> "mymachine", and just add/change new stuff for "installationmachine"?
>

I would approach in this way: in my meta-something/conf/machine:
- machine_base.inc where I put all the standard machine configuration for
production
- mymachine.conf
require conf/machine/machine_base.inc
- myinstallationmachine.conf
require conf/machine/machine_base.inc
PREFERRED_PROVIDER_virtual/kernel = "some-linux-provider"
Then in something.bbappend:
- If the property is common to both machines:
SRC_URI_append = " file://modifications.patch"
- if the property is machine specific:
SRC_URI_append_<MACHINE> = " file://machinespec.patch"
 In this way you have to maintain only the differences between your
machines, without redundancy.

2. My new image going to be used as an installation image for my
> production image.  So I need to include the production image (for
> MACHINE="mymachine")) deploy products in the image for my installation
> image.  How can I do that if I define a new MACHINE for the production
> image?
>

This is not clear to me. With 'installation image' do you mean a full image
(bootloader, kernel, rootfs etc)?
Can you give me some more details about this use case?

Best regards,
Gabriele

Il giorno ven 19 lug 2019 alle ore 14:49 Patrick Doyle <wpdster at gmail.com>
ha scritto:

> On Fri, Jul 19, 2019 at 1:58 AM Gabriele Zampieri
> <gabbla.malist at gmail.com> wrote:
> >
> > Hi,
> >
> > you could define two machines, where the manufacturing one is just an
> overlay of the production one. If the two kernels differs only for their
> config, you can specify different defconfig based on machine. If you need a
> completely different kernel, just specify
> PREFERRED_PROVIDER_virtual/kernel in manufacturing overlay
>
> Hi Gabriele,
> I wondered about that, but I get confused about the MACHINE concept in
> Yocto/OE/bitbake...
>
> 1. If I define a new machine, but I have a lot of recipes conditioned
> on the old machine, how do I say "This is the same as machine A, but
> with these differences"?  I have defined a machine now ("mymachine")
> and have recipes and .bbappend files with things like this in them:
>
> SRC_URI_mymachine += "file:/blah/blah/blah"
> do_install_append_mymachine() {
>   do_stuff()
> }
>
> Do I have to replicate (and maintain) all of the references to
> mymachine to also refer to my newly defined "installationmachine"?  Or
> can I tell Bitbake that "installationmachine" is the same as
> "mymachine", and just add/change new stuff for "installationmachine"?
>
> I hope my confusion here makes sense, but since it's confusion, it's
> tough to tell :-)
>
> 2. My new image going to be used as an installation image for my
> production image.  So I need to include the production image (for
> MACHINE="mymachine")) deploy products in the image for my installation
> image.  How can I do that if I define a new MACHINE for the production
> image?
>
> Thank you so much for the suggestion... it confirms that I am looking
> in the right places and thinking about the right things... I just
> don't know how to solve this problem.
>
> I'm also surprised that it's not a more general problem... which leads
> me to believe that I must be thinking about this the wrong way.
>
> Thanks again.
>
> --wpd
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20190719/c0e9a8db/attachment-0001.html>


More information about the yocto mailing list