Using the following settings, kexec-tools fails to build MACHINE="intel-corei7-64" DEFAULTTUNE = "corei7-64-x32"
I created a patch for enable x32 builds and send to the kexec ML [1], the patch was integrated and then dropped because Yinghai Lu reported failures with OpenSUSE 13.1 64 bits without x32 [2]. I made the testing on OpenSUSE 13.1 and poky core-image-minimal with x32 and works, The test was done with: # kexec -l /boot/vmlinuz-linux --initrd=/boot/initramfs-linux.img --reuse-cmdline # kexec -e Futher investigation is needed. [1] http://lists.infradead.org/pipermail/kexec/2015-March/013482.html [2] https://github.com/horms/kexec-tools/commit/5041d45b1c6b66a0e6c48f6121c24cd9be506c68
It seems the issue comes from the removal of the kexec x32 patch originally submitted to enable x32 and located at meta/recipes-kernel/kexec/kexec-tools/kexec-x32.patch. The removal was made by ec1f1c4abe1d40708fefd56f01c58fff38f28960. On master, the x32 ABI can be activated following these steps: a) Revert ec1f1c4abe1d40708fefd56f01c58fff38f28960 b) In file meta/recipes-kernel/kexec/kexec-tools_2.0.14.bb, add this line to SRC_URI: file://kexec-x32.patch c) In file meta/recipes-kernel/linux/linux-yocto/kexec.cfg, add the following line: CONFIG_KEXEC=y Note: create the linux-yocto directory and the file kexec.cfg in case they do not exist. d) In file meta/recipes-kernel/linux/linux-yocto_4.10.bb add the following line to SRC_URI: file://kexec.cfg Please let me know if this works for you. Regards, Flavio
Created attachment 3738 [details] qemux86 kexec test log The local.conf file: MACHINE ??= "qemux86" CORE_IMAGE_EXTRA_INSTALL += "kernel-image kexec-tools" Also needs to enable CONFIG_KEXEC in the kernel: Fle meta/recipes-kernel/linux/linux-yocto/kexec.cfg CONFIG_KEXEC=y And the modify linux-yocto recipe to add the config fragment. SRC_URI += "file://kexec.cfg"
Created attachment 3739 [details] qemux86-64 x32 kexec test log The local.conf file: MACHINE ??= "qemux86-64" DEFAULTTUNE = "x86-64-x32" baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE', True) \ or 'INVALID'), True) or 'lib'}" CORE_IMAGE_EXTRA_INSTALL += "kernel-image kexec-tools" Also needs to enable CONFIG_KEXEC in the kernel: Fle meta/recipes-kernel/linux/linux-yocto/kexec.cfg CONFIG_KEXEC=y And the modify linux-yocto recipe to add the config fragment. SRC_URI += "file://kexec.cfg" Search for the line "kexec_core: Starting new kernel"
Created attachment 3740 [details] generic-x86-64 x32 kexec test log on minnowboard The local.conf file: MACHINE ??= "genericx86-64" DEFAULTTUNE = "x86-64-x32" baselib = "${@d.getVar('BASE_LIB_tune-' + (d.getVar('DEFAULTTUNE', True) \ or 'INVALID'), True) or 'lib'}" CORE_IMAGE_EXTRA_INSTALL += "kexec-tools kernel-image" Also needs to enable CONFIG_KEXEC in the kernel: Fle meta/recipes-kernel/linux/linux-yocto/kexec.cfg CONFIG_KEXEC=y And the modify linux-yocto recipe to add the config fragment. SRC_URI += "file://kexec.cfg" Search for the line "kexec_core: Starting new kernel"
Review at, http://lists.openembedded.org/pipermail/openembedded-core/2017-April/135849.html http://lists.openembedded.org/pipermail/openembedded-core/2017-April/135850.html
Patches are integrated, http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=becf5aeefce72c85a6d50c9f7e34dcfe654d98b7 http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=7bde854ef77a683e92941fb6fc2f6592f5d3c29a