i can build a 32 bit version.
Now i am trying build 64 bit kernel, but got some issues:
After run "bitbake virtual/kernel -c menuconfig"
i choose [*]64 bit kernel and save
then copy the configuration file to the Edison build directory
then run "bitbake edison-image" again, but i get an error.
i find the log under /out/linux64/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/temp/log.do_compile.6126 :
————————————————————————————-
DEBUG: Executing shell function do_compile
NOTE: make -j 4 bzImage CC=i586-poky-linux-gcc LD=i586-poky-linux-ld.bfd
GEN /home/marcus/src/edison/edison-src/out/linux64/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/linux-edison-standard-build/Makefile
scripts/kconfig/conf –silentoldconfig Kconfig
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_32.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_64.h
SYSHDR arch/x86/syscalls/../include/generated/uapi/asm/unistd_x32.h
SYSTBL arch/x86/syscalls/../include/generated/asm/syscalls_32.h
SYSHDR arch/x86/syscalls/../include/generated/asm/unistd_32_ia32.h
SYSHDR arch/x86/syscalls/../include/generated/asm/unistd_64_x32.h
SYSTBL arch/x86/syscalls/../include/generated/asm/syscalls_64.h
GEN /home/marcus/src/edison/edison-src/out/linux64/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/linux-edison-standard-build/Makefile
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CC scripts/mod/empty.o
HOSTCC scripts/selinux/genheaders/genheaders
/home/marcus/src/edison/edison-src/out/linux64/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/linux/scripts/mod/empty.c:1:0: error: code model 'kernel' not supported in the 32 bit mode
/* empty file to figure out endianness / word size */
^
/home/marcus/src/edison/edison-src/out/linux64/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/linux/scripts/mod/empty.c:1:0: sorry, unimplemented: 64-bit mode not compiled in
make[3]: *** [scripts/mod/empty.o] Error 1
make[2]: *** [scripts/mod] Error 2
make[2]: *** Waiting for unfinished jobs….
HOSTCC scripts/selinux/mdp/mdp
make[1]: *** [scripts] Error 2
make[1]: *** Waiting for unfinished jobs….
make: *** [sub-make] Error 2
ERROR: oe_runmake failed
WARNING: exit code 1 from a shell command.
ERROR: Function failed: do_compile (log file is located at /home/marcus/src/edison/edison-src/out/linux64/build/tmp/work/edison-poky-linux/linux-yocto/3.10.17-r0/temp/log.do_compile.6126)
————————————————————————————————–
Any idea about the issues ? Thanks~
Link Copied
Hi,
This link may also be helpful /thread/57334 https://communities.intel.com/thread/57334 . Keep us updated of your progress.
-Sergio
It says "sorry, unimplemented:".
Don't you have to implement and code missing 64-bit drivers and programs first?
I try to edit the edison.conf file
add
DEFAULTTUNE ?= "core2-64"
before
include conf/machine/include/tune-atom.inc
and build again but now i got this error
| x86_64-poky-linux-ld.bfd: skipping incompatible /home/marcus/Documents/Project/edison/edison-src/out/linux64/build/tmp/sysroots/edison/usr/lib/x86_64-poky-linux/4.9.1/libgcc.a when searching for -lgcc
| x86_64-poky-linux-ld.bfd: cannot find -lgcc
| make[2]: *** [examples/standalone/hello_world] Error 1
| make[1]: *** [examples/standalone] Error 2
| make: *** [examples] Error 2
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /home/marcus/Documents/Project/edison/edison-src/out/linux64/build/tmp/work/edison-poky-linux/u-boot/2014.04-1-r0/temp/log.do_compile.28011)
ERROR: Task 449 (/home/marcus/Documents/Project/edison/edison-src/meta-intel-edison/meta-intel-edison-bsp/recipes-bsp/u-boot/u-boot_2014.04.bb, do_compile) failed with exit code '1
it seems use wrong gcc lib which is incompatible with m64 build
but i dont know how can fix it.....
Is 64-bit kernel really can run on the edison? it seems no one success build 64bit.
The standard Yocto image in the BSP is meant to be built as a 32 bit. You can build Yocto for a 64 bit system, however you'd have to port some 32 bit packages which are needed to make this work. There's no documentation with these instructions.
It is important to mention that the Edison's SoC is 64-bit, but the module is wired internally with other components so it's designed to work as 32-bits.
Because of this, we recommend you to build a 32 bit image for the Edison.
Source: /message/386032# 386032 https://communities.intel.com/message/386032# 386032
-Sergio
For more complete information about compiler optimizations, see our Optimization Notice.