"kernel support x86 64 CPU but detected i686"
Just retrieved this from ask Ubuntu
in relation to this question "What is the meaning of 'i686' in Ubuntu?"
i686 means that you're using 32 bit OS.
28
As various posters have said, your kernel is 32-bit. The meaning of i686 deserves a little more explanation, however.
When compiling the Linux kernel (something that end-users don't generally need to do these days - the good people behind Ubuntu supply the kernel ready compiled), there are various options that you can tweak. One important option is CPU feature support.
All x86 CPUs are compatible with the original Intel 80386 (abbreviated i386), so if you want a kernel that's compatible with all x86 CPUs, you would compile an i386 kernel.
However, modern CPUs have many additional features (integrated floating point unit, MMX, etc.), which Linux can use if it is configured to do so. As a balance between backwards compatibility and performance, Ubuntu's kernel is compiled with support for the features that were available on the Intel Pentium II (sometimes abbreviated as i686), which is why the kernel shows up as i686.
This also partly explains why applications compiled for 64-bit processors are sometimes faster. The i686 first appeared in 1997, and modern processors have many features that were not available on the i686 (SSE, extra registers, etc.), but applications need to be compiled with support for these features, which might break compatibility with older systems. By contrast, x86_64 CPUs first appeared in 2003, so applications can be compiled with support for some of the features introduced between 1997 and 2003, without fear of compatibility issues.
This is a bit from Wikipedia
The
P6 microarchitecture is the sixth-generation
Intel x86 microarchitecture, implemented by the
Pentium Pro microprocessor that was introduced in November 1995. It is frequently referred to as
i686. It was succeeded by the
NetBurst microarchitecture in 2000, but eventually revived in the
Pentium M line of microprocessors