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"
-- _______________________________________________ yocto mailing list yocto@yoctoproject.org https://lists.yoctoproject.org/listinfo/yocto