[OE-core] [PATCH v2] kernel.bbclass: Create symbolic link to add ${KERNEL_IMAGETYPE} to boot package

Mark Hatle mark.hatle at windriver.com
Tue Aug 20 18:48:01 UTC 2013


On 8/20/13 1:45 PM, Franklin S. Cooper Jr wrote:
> * By default for some platforms U-boot assumes the kernel image is located in
>    the boot directory of the root filesystem.
> * The kernel.bbclass already includes the kernel image in the /boot directory
>    but adds a version number to the file name.
> * Create a symbolic link that names the kernel image in the exact way that
>    U-boot expects.

This should be done with a package post-install script.  It is fairly common for 
multilib kernel versions to be installed on a machine at the same time, with the 
Link pointing to the 'last-installed' version.  Doing it in the do_install rule 
will cause a conflict (at least in the RPM case), preventing certain field 
upgrade activities.

post install script with something like:

ln -sf $D/boot/<kernel_name> <common-name>

Should work.

(The above assumes that the kernel itself is being packaged.. if it's not being 
packages and just copied to the end image -- then doing the link should be fine.)

--Mark


> Signed-off-by: Franklin S. Cooper Jr <fcooper at ti.com>
> ---
> Version 2 changes:
> Change "ln -s" to "ln -sf" based on Bruce's comment.
>
>   meta/classes/kernel.bbclass |    1 +
>   1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/meta/classes/kernel.bbclass b/meta/classes/kernel.bbclass
> index e039dfc..6e7d994 100644
> --- a/meta/classes/kernel.bbclass
> +++ b/meta/classes/kernel.bbclass
> @@ -109,6 +109,7 @@ kernel_do_install() {
>   	install -d ${D}/${KERNEL_IMAGEDEST}
>   	install -d ${D}/boot
>   	install -m 0644 ${KERNEL_OUTPUT} ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION}
> +	ln      -sf ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}-${KERNEL_VERSION} ${D}/${KERNEL_IMAGEDEST}/${KERNEL_IMAGETYPE}
>   	install -m 0644 System.map ${D}/boot/System.map-${KERNEL_VERSION}
>   	install -m 0644 .config ${D}/boot/config-${KERNEL_VERSION}
>   	install -m 0644 vmlinux ${D}/boot/vmlinux-${KERNEL_VERSION}
>




More information about the Openembedded-core mailing list