aboutsummaryrefslogtreecommitdiffstats
path: root/meta/classes/kernel.bbclass
AgeCommit message (Collapse)Author
2018-01-19kernel: Use KERNEL_IMAGETYPE_FOR_MAKE in do_bundle_initramfsThomas Perrot
In the case of a fitImage the this step should be done on the image use to assemble the fitImage. Signed-off-by: Thomas Perrot <thomas.perrot@tupi.fr> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-01-18kernel: drop unnecessary True options from calls to getVarAndre McCurdy
The older style calls (plus a bashism in kernel.bbclass, fixed separately) were introduced via the recent change to add support for multiple kernel packages: http://git.openembedded.org/openembedded-core/commit/?id=6c8c899849d101fd1b86aad0b8eed05c7c785924 Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-01-17kernel.bbclass: drop legacy fallback to yes '' | make oldconfigAndre McCurdy
The "oldnoconfig" target has been supported since Linux 2.6.36. According to OLDEST_KERNEL, the oldest kernel currently supported by OE is 3.2.0, so the fallback to yes '' | make oldconfig is no longer required. Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2018-01-14kernel.bbclass: remove bashism in kernel_do_installRicardo Salveti
possible bashism in run.do_install line 163 (should be 'b = a'): if [ "kernel" == "kernel" ]; then Fixes "[: kernel: unexpected operator" when not using bash by default, which causes the default kernel image link to not be created. Signed-off-by: Ricardo Salveti <ricardo@opensourcefoundries.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-01-02kernel: Add support for multiple kernel packagesHaris Okanovic
Some distros may want to provide alternate kernel "flavors" via feeds or within bootable images. For example, readily available builds which provide certain diagnostic features can enable developers and testers to more quickly resolve issues by avoiding lengthy kernel builds. This change allows for building multiple flavors of the kernel and module packages by templatizing kernel package names via a new KERNEL_PACKAGE_NAME variable in kernel.bbclass. It defaults to the old name of "kernel", but can be overridden by certain recipes providing alternate kernel flavors. To maintain compatibility, recipes providing alternate kernel flavors cannot be the "preferred provider" for virtual/kernel. This is because OE puts the preferred provider's build and source at "tmp-glibc/work-shared/$MACHINE/kernel-build-artifacts/" and "tmp-glibc/work-shared/$MACHINE/kernel-source/" instead of "tmp-glibc/work/*/$PN/" like other recipes. Therefore, recipes using the default KERNEL_PACKAGE_NAME="kernel" follows the old semantics -- build in the old location and may be preferred provider -- while recipes using all other KERNEL_PACKAGE_NAME's build from the normal WORKDIR and don't provide "virtual/kernel". Testing: 1. Add `KERNEL_PACKAGE_NAME_pn-linux-yocto-tiny = "tiny-linux"` to local.conf so that linux-yocto-tiny may build alongside the main kernel (linux-yocto). 2. `bitbake linux-yocto linux-yocto-tiny` to build both kernel flavors. 3. Verified image and modules IPKs exist for both: tmp-glibc/deploy/ipk/qemux86/kernel-* for linux-yocto tmp-glibc/deploy/ipk/qemux86/tiny-linux* for linux-yocto-tiny 4. Verified linux-yocto is the "preferred provider", and was built in shared directory: tmp-glibc/work-shared/qemux86/kernel-* 5. Add `CORE_IMAGE_BASE_INSTALL_append_pn-core-image-base = "tiny-linux"` to local.conf to install both kernel flavors in core-image-base. 6. `bitbake core-image-base` to build an image. 7. Verified image contains two bzImage's under /boot/, with "yocto-standard" (linux-yocto recipe) selected to boot via symlink. Discussion threads: http://lists.openembedded.org/pipermail/openembedded-core/2015-December/thread.html#114122 http://lists.openembedded.org/pipermail/openembedded-core/2017-July/thread.html#139130 [YOCTO #11363] Signed-off-by: Ioan-Adrian Ratiu <adrian.ratiu@ni.com> Signed-off-by: Gratian Crisan <gratian.crisan@ni.com> Signed-off-by: Haris Okanovic <haris.okanovic@ni.com> Coauthored-by: Gratian Crisan <gratian.crisan@ni.com> Coauthored-by: Haris Okanovic <haris.okanovic@ni.com> Coauthored-by: Josh Hernstrom <josh.hernstrom@ni.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2018-01-02kernel.bbclass: Fix do_sizecheck behaviourMike Crowe
During the introduction of support for multiple kernel image types in 849b67b2e4820564b5e5c9bd4bb293c44351c5f3, do_sizecheck was changed to only warn if any kernel was bigger than ${KERNEL_IMAGE_MAXSIZE}. (Well, it tried to warn - it turns out that there's no function called "warn", it should be "bbwarn".) The previous behaviour had been to fail the build if the single kernel image did not fit. It seems possible that people might be generating both compressed and uncompressed kernels and only really care whether the compressed one fits. This means that we shouldn't just always fail if any of the images are too large. So, let's warn (correctly this time) on every image that is too large, but only ultimately fail if no image will fit. The build will also fail if ${KERNEL_IMAGETYPES} is empty, but I hope that no-one needs to do that. While we're here correct a typo in the KERNEL_IMAGE_MAXSIZE validity check. Signed-off-by: Mike Crowe <mac@mcrowe.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-12-09kernel.bbclass: Add cleandirs for do_shared_workdirSaul Wold
We add the kernel-build-artifacts to the cleandirs list to ensure that there are no remaining artificats in the kernel-build-artifacts directory which is STAGING_KERNEL_BUILDDIR. Without this change multiple System.map files are visiable in the STAGING_KERNEL_BUILDDIR, which could cause problems for some tools. [YOCTO #11880] Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-09-21kernel.bbclass: build host programs with native sysrootsWenzong Fan
Allow to search header files and libs from native sysroots. For example, an expanded BUILD_CFLAGS includes: '-isystem/builddir/to/linux-yocto/recipe-sysroot-native/usr/include' And an expanded BUILD_LDFLAGS includes: '-L/builddir/to/linux-yocto/recipe-sysroot-native/usr/lib -Wl,-rpath-link,/builddir/to/linux-yocto/recipe-sysroot-native/usr/lib -Wl,-rpath,/builddir/to/linux-yocto/recipe-sysroot-native/usr/lib' Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-09-13kernel: Move Device Tree support to kernel.bbclassOtavio Salvador
The Device Tree is commonly used but it is still kept as a .inc file instead of a proper class. Instead now we move the Device Tree code to a kernel-devicetree class and automatically enable it when the KERNEL_DEVICETREE variable is set. To avoid breakage in existing layers, we kept a linux-dtb.inc file which raises a warning telling the user about the change so in next release this can be removed. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-09-11kernel: Stop using update-alternativesOtavio Salvador
The update-alternatives where using relative links so not being really in use since December 2016 (see OE-Core:c7bc46b9 "kernel: Fix symlinks") so instead we now generate the relative symlinks during the do_install task and drop the update-alternatives use at all. Acked-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Otavio Salvador <otavio@ossystems.com.br> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-08-23kernel.bbclass: external toolchain fixJuro Bystricky
Refactor get_cc_option so it is simpler and also does not fail when using external toolchain. Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-16kernel.bbclass: improve reproducibilityJuro Bystricky
Several tweaks to improve reproducibility: 1. If BUILD_REPRODUCIBLE_BINARIES == 1, set KBUILD_BUILD_TIMESTAMP to a reproducible value. This is either a non-zero SOURCE_DATE_EPOCH, or the value obtained from top entry of GIT repo, or (if there is no GIT repo) fallback to REPRODUCIBLE_TIMESTAMP_ROOTFS as the last resort. Also export KCONFIG_NOTIMESTAMP=1. 2. When compressing vmlinux.gz, use gzip "-n" option 3. Kernel and kernel modules contain hard coded paths referencing the host build system. This is usually because the source code contains __FILE__ at some place. This prevents binary reproducibility. However, some compilers allow remapping of the __FILE__ value. If we detect the compiler is capable of doing this, we replace the source path $(S) part of __FILE__ by a string "/kernel-source". For example: ​/data/master/build/tmp/work-shared/qemux86/kernel-source/drivers/media/v4l2-core/videobuf2-core.​c will be replaced by a reproducible value: /kernel-source/drivers/media/v4l2-core/videobuf2-core.c. Signed-off-by: Juro Bystricky <juro.bystricky@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-07-24kernel.bbclass: set CVE_PRODUCT to linux_kernel if not set by recipeMikko Rapeli
It is used by NVD database CVE's like: https://nvd.nist.gov/vuln/detail/CVE-2017-7273 Setting this in kernel.bbclass fixes CVE reporting for all users of the class. Signed-off-by: Mikko Rapeli <mikko.rapeli@bmw.de> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-06-04kernel.bbclass: fix KERNEL_IMAGETYPE(S) for Image.gzNicolas Dechesne
KERNEL_IMAGETYPES lists all the kernel images that we want to build. in cb17b6c2a7 (kernel.bbclass: support kernel image type of vmlinux.gz), some logic was added to support vmlinux.gz which is not a target built by kernel makefiles (only vmlinux). It is clear that the goal of this logic is only to support vmlinux.gz and not others compressed format (such as Image.gz) which are valid target for kernel makefiles. For Image.gz we should rely on the kernel makefiles and not do the compression in kernel class. This patch updates the logic used to filter out non supported kernel target from KERNEL_IMAGETYPES, and make vmlinux.gz a 'special case', instead of *.gz. If more special cases are needed in the future, we could add them in a similar way. This patch should be a no-op for anyone using vmlinux or vmlinux.gz, and on top of that it is fixing the build for Image.gz which was not working until now. Signed-off-by: Nicolas Dechesne <nicolas.dechesne@linaro.org> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-25kernel: predefine KBUILD_BUILD_USER and KBUILD_BUILD_HOSTJoshua Lock
By exporting KBUILD_BUILD_USER with a pre-defined value we improve the reproducibility of the kernel and remove the requirement for whoami in the HOSTTOOLS. KBUILD_BUILD_HOST also helps improve the reproducibility of the kernel. For more kernel reproducibility options see: https://lwn.net/Articles/437864/ Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-04-05kernel.bbclass: move in addtask kernel_link_images statement from ↵Ming Liu
linux-yocto.inc Add kernel_link_images task in kernel.bbclass instead of adding it in linux-yocto.inc, or else the recipes inheriting kernel.bbclass might run into implicit dependency issues. Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-31kernel.bbclass: introduce INITRAMFS_IMAGE_NAMEMing Liu
It defaults to ${INITRAMFS_IMAGE}-${MACHINE} if INITRAMFS_IMAGE is not empty. This allows the end users to be able to override the initramfs image name with a customized value. Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-31kernel.bbclass: fix a typoMing Liu
In a addtask statement, do_strip should be strip. Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-21kernel: use ${nonarch_base_libdir} for kernel modules installation.Amarnath Valluri
Replace hardcoded '/lib' in kernel modules installation path with ${nonarch_base_libdir}, which is meant exactly for this. Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
2017-03-04kernel.bbclass: Give sanity check function an opt-out variableCalifornia Sullivan
Having no opt-out method and adding the task to linux-yocto.inc was causing issues. For example, linux-yocto-dev would often fail because it uses AUTOREV with no way to dynamically change the PV. Add a variable to turn off the sanity check, allowing an easy opt out, and set the opt-out variable in linux-yocto-dev, fixing the issue with AUTOREV. Signed-off-by: California Sullivan <california.l.sullivan@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-02-28kernel, license, sstate, rootfs.py: Remove deploy directory READMEMike Crowe
It isn't clear that the README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt file in the deploy directory warrants the complexity it brings elsewhere. Let's just remove it entirely. In particular, if two do_image_complete tasks run in parallel they risk both trying to put their image into ${DEPLOY_DIR_IMAGE} at the same time. Both will contain a README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt file. In theory this should be safe because "cp -alf" will just cause one to overwrite the other. Unfortunately, coreutils cp also has a race[1] which means that if one copy creates the file at just the wrong point the other will fail with: cp: cannot create hard link ‘..../tmp-glibc/deploy/images/pantera/README_-_DO_NOT_DELETE_FILES_IN_THIS_D.txt’ to +‘..../tmp-glibc/work/rage_against-oe-linux-gnueabi/my-own-image/1.0-r0/deploy-my-own-image-complete/README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt’: File exists [1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25680 Signed-off-by: Mike Crowe <mac@mcrowe.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-02-23kernel.bbclass: do_deploy requires depmodwrapperRobert Yang
Fixed: run.do_deploy.27809: line 155: depmodwrapper: command not found Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-02-15kernel.bbclass: Make symbol to vmlinuz.bin in boot directoryAndrea Adami
The changes committed with 6e58f54be103814b6b8a85b236510633c49e6832 did only consider the vmlinuz ELF kernel but some devices do reqire a raw vmlinuz.bin (as for example gcw0 in meta-handheld booted by ubiboot). Expand the above mentioned patch to consider this case. Signed-off-by: Andrea Adami <andrea.adami@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2017-01-19kernel.bbclass: Add PACKAGE_WRITE_DEPS for postinstJussi Kukkonen
The depmodwrapper dependency is not actually used by the class but anyone using pkg_postinst_kernel-base() will need it. Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
2017-01-19Revert "kernel: Modify kernel modules installation path."Jason Wessel
This reverts commit 0ccb2efe9837e2915c093341a662dffc1df00866. The OVS fails to function and the kernel modules cannot be found by any of the kernel tools such as depmod because they are installed into the wrong directory in multilib 64bit/32bit bulids. Signed-off-by: Jason Wessel <jason.wessel@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-01-16kernel: Modify kernel modules installation path.Amarnath Valluri
Use ${base_libdir}/modules inplace of /lib/modules for kernel modules installation path. Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-12-22kernel: Fix symlinksDavid Vincent
When installing a kernel package, the symlinks created by update-alternatives should point to a path relative to KERNEL_IMAGEDEST and not an absolute path to '/boot'. Failing to do so causes problems when resolving the symlink inside some bootloaders which mount the boot partition elsewhere. Signed-off-by: David Vincent <freesilicon@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-12-16meta: remove True option to getVar callsJoshua Lock
getVar() now defaults to expanding by default, thus remove the True option from getVar() calls with a regex search and replace. Search made with the following regex: getVar ?\(( ?[^,()]*), True\) Signed-off-by: Joshua Lock <joshua.g.lock@intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-12-08kernel.bbclass: fix kernel_do_compile for KERNEL_IMAGETYPE = "vmlinux.gz" on ↵Andreas Oberritter
mips The target directory didn't exist. Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-12-08kernel.bbclass: do not copy bundled initramfs to /bootAndreas Oberritter
These files cause warnings because they don't get packaged, now that they don't land in kernel-vmlinux anymore. Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-12-08kernel.bbclass: Avoid wildcards for kernel imagesAndreas Oberritter
With multiple kernel images enabled starting with 'vmlinux', e.g. vmlinux.gz and vmlinux.bin, all files landed inside the kernel-vmlinux package. On top of that, even initramfs images were included, e.g. vmlinux.gz-initramfs-*. Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-12-08kernel.bbclass: Use real filenames in kernel packagesAndreas Oberritter
When iterating over kernel image types to set up their packaging variables, don't use make targets but the real names. It was surprising if both vmlinux.bin and vmlinux.gz were enabled and only the latter had its filename extension removed from the package name. Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-12-08kernel.bbclass: allow uncompressed initramfs archivesAndreas Oberritter
The code failed to copy the initramfs in case it was a plain cpio archive. Signed-off-by: Andreas Oberritter <obi@opendreambox.org> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-12-07kernel.bbclass: let do_deploy depend on do_packagedataRobert Yang
The do_deploy runs depmodwrapper which requires pkgdata/kernel-depmod/kernel-abiversion, which is generated by PACKAGEFUNCS. So we need let do_deploy depend on do_packagedata. This can fix the errors which happens sometimes when kernel upgrades: DEBUG: Executing shell function do_deploy Error: Kernel version 4.8.8-WR9.0.0.1_standard does not match kernel-abiversion (4.8.8-WR9.0.0.0_standard) And we only see this error when kernel upgrades and rebuild, but doesn't see it in a normal build, this is becuase depmodwrapper doesn't exit error when kernel-depmod/kernel-abiversion doesn't exit, it just prints an error which should go into log.do_deploy: if [ ! -r /path/to/sysroots/qemux86-64/pkgdata/kernel-depmod/kernel-abiversion ]; then echo "Unable to read: /path/to/sysroots/qemux86-64/pkgdata/kernel-depmod/kernel-abiversion" >&2 else [foo] fi We can see that there is no "exit 1", I guess it was designed to let it can run without kernel-abiversion Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-21kernel.bbclass: Add kernel_version_sanity_check functionCalifornia Sullivan
The kernel being built should match what the recipe claims it is building. This function ensures that happens by comparing the version information in the kernel's Makefile to the PV the recipe is using. v2 changes: * Match against PV instead of LINUX_VERSION * Match against EXTRAVERSION as well (e.g., -rc4) * Cleaned up version string building Fixes [YOCTO #6767]. Signed-off-by: California Sullivan <california.l.sullivan@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-19kernel.bbclass: assign INITRAMFS_BASE_NAME using ?=Andre McCurdy
Default values for KERNEL_IMAGE_BASE_NAME and MODULE_IMAGE_BASE_NAME are already assigned using ?= and anyone wanting to over-ride one is likely to want to over-ride them all. Make the three consistent with each other. Signed-off-by: Andre McCurdy <armccurdy@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-14meta: cleanup d.getVar(var, 1)Robert Yang
Signed-off-by: Robert Yang <liezhi.yang@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-13linux-yocto: allow overriding compiler name in KConfigJérémy Rosen
The KConfig infrastructure needs to build HOST binaries in order to provide its infratstructure. Yocto needs to force the HOSTCC and HOSTCPP variables to BUILD_CC and BUILD_CPP to make sure that the proper compiler is used when compiling host binaries Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-09-03kernel.bbclass: include signing keys when copying files required for module ↵Mattias Waldo
builds The absence of signing_key.* in $kerneldir made signing of out-of-tree kernel modules fail (silently). Add copying of these files during the shared_workdir task. Signed-off-by: Mattias Waldo <mattias.waldo@saabgroup.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-03kernel.bbclass: add user output to savedefconfigStefan Müller-Klieser
In a similar manner to diffconfig, tell the bitbake user where the defconfig will be saved to. Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-09-03kernel.bbclass: remove EXTRA_OEMAKE workaroundStefan Müller-Klieser
The default of EXTRA_OEMAKE is already empty since commit: OE-Core rev: aeb653861a0ec39ea7a014c0622980edcbf653fa bitbake.conf: Remove unhelpful default value for EXTRA_OEMAKE Signed-off-by: Stefan Müller-Klieser <s.mueller-klieser@phytec.de> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-08-10kernel.bbclass: add lzop dependencyTrevor Woerner
If the initramfs image is type lzo, then a native lzop is needed. Signed-off-by: Trevor Woerner <twoerner@gmail.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-25kernel.bbclass: explicitly set workdir in do_bundle_initramfsAndré Draszik
bitbake rev 67a7b8b02 "build: don't use $B as the default cwd for functions" (included in current bitbake master) breaks the assumption that do_bundle_initramfs runs inside the build directory. This causes kernel_do_compile() as called from within do_bundle_initramfs() to fail, as the former is not being executed from the correct directory anymore. (Note that kernel_do_compile() as called from bitbake directly doesn't suffer from that problem, as it inherits the workdir from base_do_compile() in that case.) Set workdir explicitly. Signed-off-by: André Draszik <git@andred.net> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-01classes/kernel: fix symlink logic when bundling initramfs imagesAndré Draszik
If linkpath points to the a file in KERNEL_OUTPUT_DIR, rather than outside, then symlink creation for the bundled initramfs image files fails. This is because in that case $linkpath.initramfs and $realpath.initramfs are in the same directory, KERNEL_OUTPUT_DIR, and hence are the same. Since we just created $realpath.initramfs, creating a symlink with the same name will fail. Given that $linkpath is not necessarily the same as the kernel image type, just removing this symlink creation is not the right thing to do, as in that case kernel_do_deploy() wouldn't find the bundled file. What we really want is a symlink from the name of the initramfs-bundled kernel image type to the real initramfs-bundled kernel image, as that is what is actually used later in do_deploy(). This brings the code path for when $KERNEL_OUTPUT_DIR/$type is a symlink in line with when it is not. Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-07-01classes/kernel: fix symlink creation in DEPLOYDIR for bundled initramfsAndré Draszik
If multiple kernel image types have been specified, only the very first one would receive a symlink in DEPLOYDIR. The reason is that we're looping over the list of image types and check if a bundled initramfs images exists using a relative path. As part of the loop we're changing the current directory, hence all additional iterations fail to see the files we're looking for, and hence no symlinks are being created. Fix by not changing the directory and adjusting the ln invocation instead. Signed-off-by: André Draszik <adraszik@tycoint.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-06-15classes/kernel: remove path assumptions in compile_kernelmodulesRoss Burton
do_compile_kernelmodules was assuming that the current directory was ${B} but didn't make that explicit, so use an absolute path to ensure this always works. Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-30kernel: Make symbol link to vmlinuz in boot directoryHe Zhe
Rename do_kernel_link_vmlinux to do_kernel_link_images and make a symbol link to vmlinuz(if exists) for reference in arch/$arch/boot directory. Signen-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-30kernel: Add KERNEL_IMAGETYPES to build multi types kernel at one timeHe Zhe
Add KERNEL_IMAGETYPES to support building packaging and installing multi types of kernel images, such as zImage uImage, at one time. KERNEL_IMAGETYPE and KERNEL_ALT_IMAGETYPE work as before. Signed-off-by: He Zhe <zhe.he@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-20classes/kernel: check OLDEST_KERNEL at configure timePaul Eggleton
If the kernel being built is older than OLDEST_KERNEL and we're building with glibc, then the C library we're building is probably not going to be compatible with the kernel and we should warn the user. (This is easier to do here rather than when building glibc, because we don't necessarily have the information we need to determine the kernel version there, whereas we do here.) Fixes [YOCTO #8653]. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>
2016-05-20classes/kernel: fix typoPaul Eggleton
KERNEL_VERISON -> KERNEL_VERSION (in a comment) Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> Signed-off-by: Ross Burton <ross.burton@intel.com>