All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Dr. Markus Eich" <markus.eich@dfki.de>
To: "Sathish Kumar Balasubramaniam -ERS,
	HCL Tech" <b-sathishkumar@hcl.com>,
	"yocto@yoctoproject.org" <yocto@yoctoproject.org>
Subject: Re: How to select defconfig for kernel build with yocto/bitbake
Date: Wed, 09 Jul 2014 14:41:47 +0200	[thread overview]
Message-ID: <53BD388B.1050709@dfki.de> (raw)
In-Reply-To: <5D833673AB94D9489A7F7F73E9E611C814ADD7F8@chn-hclt-mbs08.HCLT.CORP.HCL.IN>

bitbake -e produces the following output. I have listed the methods 
dealing with .config.



do_kernel_configme() {
     echo "[INFO] doing kernel configme"
     export KMETA=${KMETA}

     if [ -n ${KCONFIG_MODE} ]; then
         configmeflags=${KCONFIG_MODE}
     else
         # If a defconfig was passed, use =n as the baseline, which is 
achieved
         # via --allnoconfig
         if [ -f 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/defconfig 
]; then
             configmeflags="--allnoconfig"
         fi
     fi

     cd 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/git
PATH=/home/eich/yocto/poky/scripts:/home/eich/odroid/build/tmp/sysroots/x86_64-linux/usr/bin/armv7a-vfp-neon-poky-linux-gnueabi:/home/eich/odroid/build/tmp/sysroots/odroid-xu/usr/bin/crossscripts:/home/eich/odroid/build/tmp/sysroots/x86_64-linux/usr/sbin:/home/eich/odroid/build/tmp/sysroots/x86_64-linux/usr/bin:/home/eich/odroid/build/tmp/sysroots/x86_64-linux/sbin:/home/eich/odroid/build/tmp/sysroots/x86_64-linux/bin:/home/eich/yocto/poky/scripts:/home/eich/yocto/poky/bitbake/bin:/home/eich/ros_catkin_ws/install_isolated/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/eich/bin:/usr/local/java/jre1.7.0_55/bin:/home/eich/install/bin:/opt/toolchains/arm-eabi-4.6/bin:/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/git/scripts/util
     configme ${configmeflags} --reconfig --output 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/linux-odroid_xu-standard-build 
standard odroid-xu
     if [ $? -ne 0 ]; then
         echo "ERROR. Could not configure odroid-xu-standard"
         exit 1
     fi

     echo "# Global settings from linux recipe" >> 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/linux-odroid_xu-standard-build/.config
     echo "CONFIG_LOCALVERSION="\"-custom\" >> 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/linux-odroid_xu-standard-build/.config

}


do_compile_kernelmodules() {
     unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
     if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
         oe_runmake -j 4 modules CC="arm-poky-linux-gnueabi-gcc 
-mno-thumb-interwork -marm" LD="arm-poky-linux-gnueabi-ld.bfd  "
     else
         bbnote "no modules to compile"
     fi

}

kernel_do_configure() {
     # fixes extra + in /lib/modules/2.6.37+
     # $ scripts/setlocalversion . => +
     # $ make kernelversion => 2.6.37
     # $ make kernelrelease => 2.6.37+
     touch 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/linux-odroid_xu-standard-build/.scmversion 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/git/.scmversion

     # Copy defconfig to .config if .config does not exist. This allows
     # recipes to manage the .config themselves in do_configure_prepend().
     if [ -f 
"/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/defconfig" 
] && [ ! -f 
"/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/linux-odroid_xu-standard-build/.config" 
]; then
         cp 
"/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/defconfig" 
"/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/linux-odroid_xu-standard-build/.config"
     fi
     eval oe_runmake_call oldnoconfig || yes '' | oe_runmake oldconfig
     install -m 0644 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/git/arch/arm/configs/odroidxu_ubuntu_defconfig 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/defconfig
     install -m 0644 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/git/arch/arm/configs/odroidxu_ubuntu_defconfig 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/git/.config

}


kernel_do_install() {
     #
     # First install the modules
     #    unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
     if (grep -q -i -e '^CONFIG_MODULES=y$' .config); then
         oe_runmake DEPMOD=echo 
INSTALL_MOD_PATH="/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image" 
modules_install
         rm 
"/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/lib/modules/None/build"
         rm 
"/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/lib/modules/None/source"
         # If the kernel/ directory is empty remove it to prevent QA issues
         rmdir --ignore-fail-on-non-empty 
"/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/lib/modules/None/kernel"
     else
         bbnote "no modules to install"
     fi

     #
     # Install various kernel output (zImage, map file, config, module 
support files)
     #
     install -d 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/boot
     install -d 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/boot
     install -m 0644 arch/arm/boot/uImage 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/boot/uImage-None
     install -m 0644 System.map 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/boot/System.map-None
     install -m 0644 .config 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/boot/config-None
     install -m 0644 vmlinux 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/boot/vmlinux-None
     [ -e Module.symvers ] && install -m 0644 Module.symvers 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/boot/Module.symvers-None
     install -d 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/etc/modules-load.d
     install -d 
/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/etc/modprobe.d

     #
     # Support for external module building - create a minimal copy of the
     # kernel source tree.
     #
kerneldir=/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/image/usr/src/kernel
     install -d $kerneldir

     #
     # Store the kernel version in sysroots for module-base.bbclass
     #

     echo "None" > $kerneldir/kernel-abiversion

     #
     # Store kernel image name to allow use during image generation
     #

     echo 
"uImage--3.4.91+gitrAUTOINC+a26607bfa2-r0-odroid-xu-20140709123549" 
 >$kerneldir/kernel-image-name

     #
     # Copy the entire source tree. In case an external build directory is
     # used, copy the build directory over first, then copy over the source
     # dir. This ensures the original Makefiles are used and not the
     # redirecting Makefiles in the build directory.
     #
     find . -depth -not -name "*.cmd" -not -name "*.o" -not -path 
"./Documentation*" -not -path "./source*" -not -path "./.*" -print0 | 
cpio --null -pdlu $kerneldir
     cp .config $kerneldir
     if [ 
"/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/git" 
!= 
"/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/linux-odroid_xu-standard-build" 
]; then
         pwd="$PWD"
         cd 
"/home/eich/odroid/build/tmp/work/odroid_xu-poky-linux-gnueabi/linux-hardkernel/3.4.91+gitrAUTOINC+a26607bfa2-r0/git"
         find . -depth -not -path "./Documentation*" -not -path "./.*" 
-print0 | cpio --null -pdlu $kerneldir
         cd "$pwd"
     fi

     # Test to ensure that the output file and image type are not actually
     # the same file. If hardlinking is used, they will be the same, and 
there's
     # no need to install.
     ! [ arch/arm/boot/uImage -ef $kerneldir/uImage ] && install -m 0644 
arch/arm/boot/uImage $kerneldir/uImage
     install -m 0644 System.map $kerneldir/System.map-None

     # Dummy Makefile so the clean below works
         mkdir $kerneldir/Documentation
         touch $kerneldir/Documentation/Makefile

     #
     # Clean and remove files not needed for building modules.
     # Some distributions go through a lot more trouble to strip out
     # unecessary headers, for now, we just prune the obvious bits.
     #
     # We don't want to leave host-arch binaries in /sysroots, so
     # we clean the scripts dir while leaving the generated config
     # and include files.
     #
     oe_runmake -C $kerneldir CC="arm-poky-linux-gnueabi-gcc 
-mno-thumb-interwork -marm" LD="arm-poky-linux-gnueabi-ld.bfd  " clean 
_mrproper_scripts

     # hide directories that shouldn't have their .c, s and S files deleted
     for d in tools scripts lib; do
         mv $kerneldir/$d $kerneldir/.$d
     done

     # delete .c, .s and .S files, unless we hid a directory as .<dir>. 
This technique is
     # much faster than find -prune and -exec
     find $kerneldir -not -path '*/\.*' -type f -name "*.[csS]" -delete

     # put the hidden dirs back
     for d in tools scripts lib; do
         mv $kerneldir/.$d $kerneldir/$d
     done

     # As of Linux kernel version 3.0.1, the clean target removes
     # arch/powerpc/lib/crtsavres.o which is present in
     # KBUILD_LDFLAGS_MODULE, making it required to build external modules.
     if [ arm = "powerpc" ]; then
         cp -l arch/powerpc/lib/crtsavres.o 
$kerneldir/arch/powerpc/lib/crtsavres.o
     fi

     # Necessary for building modules like compat-wireless.
     if [ -f include/generated/bounds.h ]; then
         cp -l include/generated/bounds.h 
$kerneldir/include/generated/bounds.h
     fi
     if [ -d arch/arm/include/generated ]; then
         mkdir -p $kerneldir/arch/arm/include/generated/
         cp -flR arch/arm/include/generated/* 
$kerneldir/arch/arm/include/generated/
     fi

     # Remove the following binaries which cause strip or arch QA errors
     # during do_package for cross-compiled platforms
     bin_files="arch/powerpc/boot/addnote arch/powerpc/boot/hack-coff \
                arch/powerpc/boot/mktree scripts/kconfig/zconf.tab.o \
            scripts/kconfig/conf.o scripts/kconfig/kxgettext.o"
     for entry in $bin_files; do
         rm -f $kerneldir/$entry
     done

     # kernels <2.6.30 don't have $kerneldir/tools directory so we check 
if it exists before calling sed
     if [ -f $kerneldir/tools/perf/Makefile ]; then
         # Fix SLANG_INC for slang.h
         sed -i 's#-I/usr/include/slang#-I=/usr/include/slang#g' 
$kerneldir/tools/perf/Makefile
     fi

}





On 09.07.2014 14:29, Sathish Kumar Balasubramaniam -ERS, HCL Tech wrote:
> Sorry, Markus.
> Ignore my previous post. It has error.
>
> I think you need to check the output of "bitbake -e <recipe name>" and see how the .config file is created for your recipe.
> Based on that only we need to update the recipe.
>
> Regards,
> B.Sathish Kumar
>
> -----Original Message-----
> From: Sathish Kumar Balasubramaniam -ERS, HCL Tech
> Sent: Wednesday, July 09, 2014 5:54 PM
> To: Dr. Markus Eich; yocto@yoctoproject.org
> Subject: RE: [yocto] How to select defconfig for kernel build with yocto/bitbake
>
> Ok. Can you try the following instead of the content I gave before
>
> KERNEL_DEFCONFIG = "odroidxu_ubuntu_defconfig"
>
> kernel_do_configure_append() {
> 	install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig
> 	install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${S}/.config
> }
>
>
> Regards,
> B.Sathish Kumar
>
> -----Original Message-----
> From: Dr. Markus Eich [mailto:markus.eich@dfki.de]
> Sent: Wednesday, July 09, 2014 5:39 PM
> To: Sathish Kumar Balasubramaniam -ERS, HCL Tech; yocto@yoctoproject.org
> Subject: Re: [yocto] How to select defconfig for kernel build with yocto/bitbake
>
> Thank you Sathish for the quick answer.
>
> The recipes now copies odroidxu_ubuntu_defconfig to defconfig in the
> workdir, but it still seems to be ignored.
> Maybe I am missing some includes to make the .config from defconfig?
>
> Using "make odroidxu_ubuntu_defconfig" using cross compiling (followed
> by "make zImage") works fine, while bitbake virtual/kernel produces some
> errors which are probably due to the wrong .config.
>
>
> Cheers,
>
> Markus
>
>
>
>
>
> On 09.07.2014 13:33, Sathish Kumar Balasubramaniam -ERS, HCL Tech wrote:
>> Hi Markus,
>>
>> Try adding the following to your recipe file
>>
>> KERNEL_DEFCONFIG = "odroidxu_ubuntu_defconfig"
>>
>> do_configure_prepend() {
>>           install -m 0644 ${S}/arch/${ARCH}/configs/${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig || die "No default configuration for ${MACHINE} / ${KERNEL_DEFCONFIG} available."
>> }
>>
>>
>> Regards,
>> B.Sathish Kumar
>>
>> -----Original Message-----
>> From: yocto-bounces@yoctoproject.org [mailto:yocto-bounces@yoctoproject.org] On Behalf Of Dr. Markus Eich
>> Sent: Wednesday, July 09, 2014 3:09 PM
>> To: yocto@yoctoproject.org
>> Subject: [yocto] How to select defconfig for kernel build with yocto/bitbake
>>
>> Dear all,
>>
>> I work on the process to compile odroid xu kernel with yocto/bitbake
>>
>> In the kernel sources (from hardkernel) I have the corresponding
>> defconfig file, i.e. in the git folder
>> /arch/arm/configs/odroidxu_ubuntu_defconfig.
>>
>> How can I tell bitbake in my recipe to use "odroidxu_ubuntu_defconfig"?
>>
>> My recipe looks as follow:
>>
>> ===
>> require recipes-kernel/linux/linux-yocto.inc
>>
>> KERNEL_IMAGETYPE = "uImage"
>>
>> COMPATIBLE_MACHINE = "odroid-xu"
>>
>> LINUX_VERSION = "3.4.91"
>> LINUX_VERSION_EXTENSION = "-custom"
>>
>> FILESEXTRAPATHS_prepend := "${THISDIR}/linux-hardkernel-3.4:"
>>
>> S = "${WORKDIR}/git"
>>
>> # from where to fetch the kernel
>> KERNEL_REPO_OWNER ??= "hardkernel"
>> KERNEL_REPO_URI ??= "git://github.com/${KERNEL_REPO_OWNER}/linux.git"
>> KBRANCH = "odroidxu-3.4.y"
>>
>> SRCREV = "${AUTOREV}"
>>
>> KV = "3.4.91"
>> PV = "${KV}+gitr${SRCPV}"
>> LOCALVERSION ?= ""
>>
>>
>> SRC_URI = " \
>>      ${KERNEL_REPO_URI};nocheckout=1;branch=${KBRANCH} \
>> "
>>
>> PACKAGES =+ "kernel-headers"
>> FILES_kernel-headers = "${exec_prefix}/src/linux*"
>> ===
>>
>> Cheers,
>>
>> Markus
>>
>>
>>
>>

-- 
Dr.-Ing. Markus Eich

  Senior Researcher
  Marine Inspection Robotics
  Space Robotics
  
  Besuchsadresse der Nebengeschäftstelle:
  DFKI GmbH
  Robotics Innovation Center
  Robert-Hooke-Straße 5
  28359 Bremen, Germany
  
  Postadresse der Hauptgeschäftsstelle Standort Bremen:
  DFKI GmbH
  Robotics Innovation Center
  Robert-Hooke-Straße 1
  28359 Bremen, Germany

  Tel.:     +49 421 178 45-4105
  Zentrale: +49 421 178 45-0
  Fax:      +49 421 178 45-4150 (Faxe bitte namentlich kennzeichnen)
  E-Mail:   markus.eich@dfki.de

  Weitere Informationen: http://www.dfki.de/robotik
  -----------------------------------------------------------------------
  Deutsches Forschungszentrum fuer Kuenstliche Intelligenz GmbH
  Firmensitz: Trippstadter Straße 122, D-67663 Kaiserslautern
  Geschaeftsfuehrung: Prof. Dr. Dr. h.c. mult. Wolfgang Wahlster
  (Vorsitzender) Dr. Walter Olthoff
  Vorsitzender des Aufsichtsrats: Prof. Dr. h.c. Hans A. Aukes
  Amtsgericht Kaiserslautern, HRB 2313
  Sitz der Gesellschaft: Kaiserslautern (HRB 2313)
  USt-Id.Nr.:    DE 148646973
  Steuernummer:  19/673/0060/3
  -----------------------------------------------------------------------



  reply	other threads:[~2014-07-09 12:41 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-09  9:38 How to select defconfig for kernel build with yocto/bitbake Dr. Markus Eich
2014-07-09 11:33 ` Sathish Kumar Balasubramaniam -ERS, HCL Tech
2014-07-09 12:09   ` Dr. Markus Eich
2014-07-09 12:23     ` Sathish Kumar Balasubramaniam -ERS, HCL Tech
2014-07-09 12:29     ` Sathish Kumar Balasubramaniam -ERS, HCL Tech
2014-07-09 12:41       ` Dr. Markus Eich [this message]
2014-07-09 12:44 ` Bruce Ashfield
2014-07-10 11:11   ` Dr. Markus Eich
2014-07-10 15:46     ` Bruce Ashfield
2014-07-11  8:55       ` Dr. Markus Eich
2014-07-11 14:29         ` Bruce Ashfield

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=53BD388B.1050709@dfki.de \
    --to=markus.eich@dfki.de \
    --cc=b-sathishkumar@hcl.com \
    --cc=yocto@yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.