[yocto] kernel/ libc compatibility problems
Paul Roy
pauroy2 at gmail.com
Mon May 15 02:52:36 PDT 2017
Hi
I´m using Yocto to create a new machine definition for a Gedeon-LX board. I
can compile the kernel and all the rootfs binaries, but kernel boot crashes
exactly at the /sbin/init load moment. It seems a problem with some
mismatch among kernel and libc library present in my rootfs, because if I
copy the /libs directory from my previous (old,and working) version, boot
process is successful. I think i´ve narrowed the problem down to libc.so
library not been compatible with my kernel, so some problem happens just
when the kernel has to prepare the right loading enviroment (ld-linux.so /
libc etc) for first user space program (init).
Also, I have NO problems creating my Linux system with same Yocto
enviroment/recipes for other platforms, so I think the problem is I´m not
correctly telling Yocto with libc version to use for my "new" machine.
Trying to change from -march=gedeon to -march=i686 for all the compilation
flags does not change result.
How can I know where exactly is this mismatch? Where do I set specific
librart version for my compilations?
My machine definition:
DEFAULTTUNE ?= "x86"
TARGET_FPU ?= "soft"
TUNE_PKGARCH = "${TUNE_PKGARCH_tune-${DEFAULTTUNE}}"
# ELF32 ABI
TUNEVALID[m32] = "IA32 ELF32 standard ABI"
TUNECONFLICTS[m32] = "m64 mx32"
TUNE_ARCH .= "${@bb.utils.contains("TUNE_FEATURES", "m32", "i586", "" ,d)}"
#TUNE_CCARGS .= "${@bb.utils.contains("TUNE_FEATURES", "m32", " -m32", "",
d)}"
#Add our tunning for this processor
TUNEVALID[geode] = "Optimizations for Geode LX"
TUNE_CCARGS .="-Os -pipe -march=geode -mmmx -m3dnow -fomit-frame-pointer"
# Another try with no success
# TUNE_CCARGS .="-Os -pipe -march=geode -mno-mmx -mno-sse -mno-sse2
-mno-3dnow -fomit-frame-pointer"
# TUNE_CCARGS .="-Os -pipe -march=i386 -mtune=pentium3
-DU_HAVE_GCC_ATOMICS=0"
# TUNE_CCARGS .="-Os -pipe -march=i686"
# Add our machine in case we want to override with _geode
MACHINEOVERRIDES =. "geode"
# Default Tune configurations
AVAILTUNES += "x86"
TUNE_FEATURES_tune-x86 = "m32"
BASE_LIB_tune-x86 = "lib"
TUNE_PKGARCH_tune-x86 = "x86"
PACKAGE_EXTRA_ARCHS_tune-x86 = "${TUNE_PKGARCH_tune-x86}"
# All this is based on x86-atom-64.conf
#TARGET_ARCH = "i586"
TARGET_ARCH = "i686"
BINARY_LOCALE_ARCHES =. " geode"
PREFERRED_PROVIDER_virtual/xserver ?= "xserver-xorg"
PREFERRED_PROVIDER_virtual/libgl ?= "mesa"
KERNEL_IMAGETYPE = "bzImage"
PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto"
GLIBC_ADDONS = "nptl"
GLIBC_EXTRA_OECONF = "--with-tls"
# GLIBC_EXTRA_OECONF = "--with-tls --with-cpu=geode"
IMAGE_FSTYPES ?= "ext2.gz"
MACHINE_FEATURES = "kernel26 serial screen keyboard pci usbhost acpi ext2
x86"
MACHINE_EXTRA_RRECOMMENDS = " kernel-modules"
BASE_PACKAGE_ARCH = "i586"
require conf/toolchain/i585-glibc-linux.conf
require conf/mvl-lsb.conf --> It contains DISTROOVERRIDES .=
":linuxstdbase"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.yoctoproject.org/pipermail/yocto/attachments/20170515/0a927616/attachment.html>
More information about the yocto
mailing list