System is a Dell with a 64-bit 3 GHz Intel Q9650 Core 2 Quad CPU.
It runs Windows 7 Professional (x64) SP1 and shows all 4 cores in Task Manager's Performance tab. Most of the installed Windows programs are 64-bit versions.
Ubuntu 18.04 LTS refuses to install, saying this is is an "i386" processor.
It will not even allow the option to "Try Ubuntu"
This system supports multiple 5 TB drives as a NAS. Also, 16 GB RAM.
64-bit hardware was introduced by Intel in order to support larger amounts of both.
It was never intended to cause people to get stopped as operating systems began to require more-specialized CPU architectures like AMD's "AMD64"
Who is driving this bus? (pardon the pun)
Why aren't all 64 bit processors supported by this 64-bit operating system?
This doesn't make sense.
Your Intel Q9650 64-bit Core 2 Quad CPU is not supported by Windows 10 either. It was released in 2008 and considered too old for modern operating systems.
Looking at your specs on Intel's Website I noticed it doesn't have hyper-threading. Also it doesn't have Turbo-Boost which is probably less of a concern.
More importantly there is the 64-bit instruction set which has evolved over time. Linux tests each CPU during boot to see if certain instructions are supported. I can't find the reference I was looking for but this one outlines the kernel checks:
After we have set up the stack, next step is CPU verification. As we are going to execute transition to the long mode, we need to check that the CPU supports long mode and SSE. We will do it by the call of the verify_cpu
function:
call verify_cpu
testl %eax, %eax
jnz no_longmode
This function defined in the arch/x86/kernel/verify_cpu.S
assembly file and just contains a couple of calls to the cpuid instruction. This instruction is used for getting information about the processor. In our case, it checks long mode and SSE support and returns 0
on success or 1
on fail in the eax
register.
If the value of the eax
is not zero, we jump to the no_longmode
label which just stops the CPU by the call of the hlt
instruction while no hardware interrupt will not happen:
no_longmode:
1:
hlt
jmp 1b
If the value of the eax
register is zero, everything is ok and we are able to continue.
To summarize there are many things your decade-old CPU doesn't support that modern 64-bit processors support.
Collected from the Internet
Please contact [email protected] to delete if infringement.
Comments