[01.org Android-IA] How to avoid rebuilding the kernel every time - ivb-eng

Ron M ronubo at gmail.com
Mon Feb 11 11:39:58 PST 2013


Hi Matt,

I am actually "coming from" the android-x86 project, and we do use
TARGET_PREBUILT_KERNEL directive over there for the prebuilts. I
couldn't find the parallel here though.

A couple of additional questions about the required built artifacts
you mentioned:
I can see that in a default ivy-eng build the modules
(/lib/modules/...) go to  in kernelmod.tar.gz .
but what about firmware? I see it actually goes within the system.img
(i.e. Wifi firmare/ucode etc.).
Is kernelfw.tar.gz currently used for anything, and if so, what is it used for?

In addition to it, what does "boot.img" consist of?
kernel+ramdisk.img or is there something else?
Do you have a tool for examining its contents?

Personally I am interested in what you do there for CI so you'd have
at least one reader for such a blog post. It would be nice to see how
you guys are doing things - you seem to have done very good job and a
decent progress over the last couple of months.


Thanks for your detailed response.
-Ron Munitz

On Mon, Feb 11, 2013 at 7:44 PM, Matt Gumbel
<matthew.k.gumbel at linux.intel.com> wrote:
> Ron M wrote:
>> Hi,
>> I see that regardless of any modifications anywhere (framework or
>> kernel), on every "make allimages" or  "make liveimg", the  kernel
>> gets rebuilt as well. Even if there are no changes at all anywhere.
>> Can someone please recommend a way to prevent kernel rebuilding?
>
> Well, it shouldn't *fully* rebuild every time, but it will re-create the
> bzimage, etc. I believe it's because of the .PHONY targets we've defined
> in build/core/kernel.mk. Do you see a better way to do it that avoids the
> extra ~20 sec?
>
> I gotta give android-x86 credit here for Chih-Wei's build/core/kernel.mk.
> I "borrowed" it from them about 2 years ago to automate our kernel build,
> although it's been heavily modified by us since then.
>
>> In addition to that, can someone also recommend a way of using a
>> prebuilt kernel? I can't seem to get that done either.
>
> We do use prebuilt kernels on a regular basis, so hopefully I can point
> you in the right direction there. The system will look for your prebuilt
> kernel files in
> kernel/intel-prebuilt/android-x86/kernel/$(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT)/.
> Inside that directory, it expects four files: kernel, kernelfw.tar.gz,
> kernelmod.tar.gz, and system.map. To automatically generate those files,
> you can 'make PREBUILT-PROJECT-linux BUILD_KERNEL=1' from the Android
> build system. After making PREBUILT-PROJECT-linux, you'll need top copy
> those files from out/prebuilt/ to kernel/intel-prebuilt/.
>
> We use Jenkins CI to automate this process internally (as well as many
> others). Let me know if there's interest in a blog post on our internal CI
> system.
>
> -Matt



More information about the Celadon mailing list