Purpose: Suppose you are given a system with no labels, stickers, product information. All you know that it is a Pentium class computer and you would like to know whether the given CPU/system  (and not OS) is 32-bit or 64-bit capable? There are many different ways to find out without looking into BIOS and without trying a 64-bit kernel. I am going to list some of the methods below. All you need to do is run a generic x86 Linux kernel which is pretty much the default kernel in almost all Linux distribution.

Method 1: /proc

# cat /proc/cpuinfo | grep flags

and look for the word “lm” in the output. For example:

# cat /proc/cpuinfo | grep flags
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts rep_good pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm ida
#

The word “lm” stands for “Long Mode”. If you do see “lm” that means your system is 64-bit capable.

Method 2: lshw

# apt-get install lshw
# lshw > lshw.txt
# less lshw.txt

You should be able to something like this in the beginning of the output if your machine is 64-bit capable:

*-cpu:0
description: CPU
product: Genuine Intel(R) CPU                  @ 2.20GHz
vendor: Intel Corp.
physical id: 4
bus info: cpu@0
version: 6.15.9
serial: 0000-06F9-0000-0000-0000-0000
slot: U2E1
size: 2200MHz
capacity: 4096MHz
width: 64 bits
capabilities: boot fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx x86-64 constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm ida

That it. So even though we were running a 32-bit (386) kernel, we were still able to find out if the CPU is 64-bit capable or not.

Hope one of the methods works for you.

Be Sociable, Share!