public inbox for isar-users@googlegroups.com
 help / color / mirror / Atom feed
From: Alexander Smirnov <asmirnov@ilbers.de>
To: Jan Kiszka <jan.kiszka@siemens.com>,
	isar-users <isar-users@googlegroups.com>
Subject: Re: [PATCH v2] Install kernel via replaceable recipe
Date: Tue, 30 Jan 2018 15:06:55 +0300	[thread overview]
Message-ID: <c82630d4-63c5-fb08-5992-60b98fde7fe3@ilbers.de> (raw)
In-Reply-To: <698f0c31-02ee-1682-4b34-29d26684f1f0@siemens.com>

On 01/30/2018 02:25 PM, Jan Kiszka wrote:
> On 2018-01-30 12:06, Alexander Smirnov wrote:
>> On 01/30/2018 01:52 PM, Jan Kiszka wrote:
>>> On 2018-01-30 11:49, Alexander Smirnov wrote:
>>>> On 01/30/2018 12:34 PM, Jan Kiszka wrote:
>>>>> From: Jan Kiszka <jan.kiszka@siemens.com>
>>>>>
>>>>> This simplifies the common task of using a custom kernel instead of the
>>>>> pre-selected debian variant: Move the kernel installation into a dummy
>>>>> dpkg-raw recipe that only has the kernel package as dependency.
>>>>>
>>>>> Which recipe is used for providing the kernel can now be selected via
>>>>> the well-know PREFERRED_PROVIDER_virtual/kernel, just like in OE.
>>>>>
>>>>> The kernel package name is communicated from the target multiconfig
>>>>> file
>>>>> to the linux-debian recipe via the DEBIAN_KERNEL variable.
>>>>
>>>> Why it's Debian kernel? This could be a bit confusing, Isar doesn'y
>>>> support only official Debian kernel. For example Isar already supports
>>>> Raspbian which contains its own Raspbian kernel.
>>>
>>> I'm always open for better name proposals.
>>
>> So, if no reasons, I'd propose:
>>   - KERNEL_PACKAGE
>>   - KERNEL_PACKAGE_NAME
>>
>>
>> [...]
>>
>>
>>>>> +inherit dpkg-raw
>>>>
>>>> Do I understand correctly, that this recipe creates fake package that
>>>> has dependency from the upstream kernel? So in target rootfs 2 kernel
>>>> packages will be installed?
>>>
>>> Right, one empty linux-debian meta package and the real one. The former
>>> allows us to trivially kick out the latter in favor of a custom kernel.
>>>
>>
>> What is the benefit of this complexity?
> 
> It's not complexity, it's simplification and cleanup over the current
> hard-coding approach.
> 
>> If we need to have over-writable
>> kernel name, it would be enough to pass current DEBIAN_KERNEL variable
>> directly to IMAGE_INSTALL. The same result, but no extra recipe in Isar
>> tree and no pseudo package in target rootfs.
> 
> There are several disadvantages with your approach:
> - you need to encode the concrete package name instead of just defining
>    an abstracting provider

Nothing extra, you already do this in your patch like:

+DEBIAN_KERNEL ?= "linux-image-armmp"

Eventually your abstract provider already contains hardcoded package name.

> - you need the same thing for linux-headers (which I'm currently very
>    interested in as I need to build against the kernel)

This is not clear for me, how headers will be installed from this pseudo 
package. How I could enable/disable headers installation.

> - it deviates from the bitbake pattern of PREFERRED_PROVIDER

For me it doesn't look like preferred_provider pattern. According to the 
bitbake manual:

8<--
Sometimes a target might have multiple providers. A common example is 
"virtual/kernel", which is provided by each kernel recipe. Each machine 
often selects the best kernel provider by using a line similar to the 
following in the machine configuration file:

      PREFERRED_PROVIDER_virtual/kernel = "linux-yocto"
8<--

So it's assumed that there are several providers for the same stuff, 
i.e. several *physical* recipes, and in your machine config you select 
the preferred provider, i.e. the name of *physical* recipe.

In current patch there is only one physical provider which contains 
per-machine hardcoded kernel name.

So, none of proposed approaches here (including my one) really 
implements PREFERRED_PROVIDER pattern. To follow it, we need to have 
recipe for each kernel instance.

Alex

  reply	other threads:[~2018-01-30 12:07 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-30  9:34 Jan Kiszka
2018-01-30 10:31 ` Henning Schild
2018-01-30 10:40   ` Jan Kiszka
2018-01-30 10:49 ` Alexander Smirnov
2018-01-30 10:52   ` Jan Kiszka
2018-01-30 11:06     ` Alexander Smirnov
2018-01-30 11:25       ` Jan Kiszka
2018-01-30 12:06         ` Alexander Smirnov [this message]
2018-01-30 12:39           ` Jan Kiszka
2018-01-30 12:57             ` Alexander Smirnov
2018-02-01 16:20               ` Jan Kiszka

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c82630d4-63c5-fb08-5992-60b98fde7fe3@ilbers.de \
    --to=asmirnov@ilbers.de \
    --cc=isar-users@googlegroups.com \
    --cc=jan.kiszka@siemens.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox