Different Kernel version per Image base

cancel
Showing results for 
Search instead for 
Did you mean: 

Different Kernel version per Image base

282 Views
dimitarmaznekov
Contributor II

I've made my project at the Variscite base

I want to have two images due to hardware difference in defconfig/gpio's etc.

Have made two images Image1 and Image2.
Create according linux_variscite_%.bbappend and introduce variable like DeviceID exported in command line before bitbake, that way all things works.
But everytime when want to change some software app or package in Image1 and Image2 the Kernel are recompiled wich is not needed.

So next way I've got to try is two separate kernel recipes based on Variscite one
Even in one (own hosted) repo the main difference is diff .dtsi and defconfigs, different per recipe. Also use PROVIDES to define new Kernels:

 

 

 

 

LINUX_VERSION ?= "4.14.78"
LINUX_VERSION_EXTENSION_append = "-idr100e"
LOCALVERSION_var-som-mx6 = "-mx6"

PROVIDES = "kernel-idr100e"

 

 

 

 

Next in image recipes I've depend to specific kernel-version like:

 

 

 

 

PREFERRED_PROVIDER_virtual/kernel = "kernel-idr100e"
PREFERRED_VERSION_kernel-idr100e = "4.14.78-idr100e"

 

 

 

 

So far so good but when try to compile kernel-idr100e I've got that error:

 

 

 

 

NOTE: recipe linux-idr100e-1.0-r0: task do_packagedata: Started
ERROR: linux-idr100e-1.0-r0 do_packagedata: The recipe linux-idr100e is trying to install files into a shared area when those files already exist. Those files and their manifest location are:
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-devicetree.packaged
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-image-uimage
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-vmlinux.packaged
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel
    (matched in manifest-var_som_mx6-linux-variscite.packagedata
manifest-var_som_mx6-kernel-module-imx-gpu-viv.packagedata
manifest-var_som_mx6-cryptodev-module.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-dev.packaged
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-base
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-devicetree
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-image-uimage.packaged
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-image
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-vmlinux
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-base.packaged
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-modules
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-image.packaged
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-modules.packaged
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel.packaged
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/runtime/kernel-dev
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
  /home/optix/thud/build_fb/tmp/pkgdata/var-som-mx6/kernel-depmod/kernel-abiversion
    (matched in manifest-var_som_mx6-linux-variscite.packagedata)
Please verify which recipe should provide the above files.

The build has stopped, as continuing in this scenario WILL break things - if not now, possibly in the future (we've seen builds fail several months later). If the system knew how to recover from this automatically it would, however there are several different scenarios which can result in this and we don't know which one this is. It may be you have switched providers of something like virtual/kernel (e.g. from linux-yocto to linux-yocto-dev), in that case you need to execute the clean task for both recipes and it will resolve this error. It may be you changed DISTRO_FEATURES from systemd to udev or vice versa. Cleaning those recipes should again resolve this error, however switching DISTRO_FEATURES on an existing build directory is not supported - you should really clean out tmp and rebuild (reusing sstate should be safe). It could be the overlapping files detected are harmless in which case adding them to SSTATE_DUPWHITELIST may be the correct solution. It could also be your build is including two different conflicting versions of things (e.g. bluez 4 and bluez 5 and the correct solution for that would be to resolve the conflict. If in doubt, please ask on the mailing list, sharing the error and filelist above.

 

 

 

 

The main question for me is  - is that approche is posible (but I'm sure it is, cause Raspberry layer using it) and in other hand, what is propper way to support two different Kernel version with according hw and dtb configs per image ?

Labels (2)
0 Kudos
0 Replies