Yesterday’s Kubuntu: BIOS Information and Features article was the result of some intense hardware investigation.

I was trying to determine whether or not a server would support a 64-bit OS.

I have a workstation running a 64-bit Kubuntu 10.10 and the performance difference between 32-bit and 64-bit is noticeable, even over the Big-Mem kernels. I wanted to try and utilize the 64-bit architecture on a spare server.

The server’s motherboard is a Tyan Tiger i7501R (S2735-8M). I knew ahead of time, the motherboard would support up to 12GB of RAM. I also knew the motherboard had 64-bit pci slots on-board. So, I figured, the server was capable of utilizing a 64-bit OS.

tyan-tiger-i7501r-s2735-8m

In my situation, it didn’t even matter if the motherboard is 64-bit capable. The CPU was not.

All processors register feature flags in Kubuntu so its abilities can be identified. So all I needed to do was identify the 64-bit flag and find it in the flag list of my CPU.

I went to my workstation first, as I know it is running a 64-bit OS, already. I opened Konsole and typed:

cat /proc/cpuinfo | grep flags

The output looked something like this:

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 aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dts tpr_shadow vnmi flexpriority


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 aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 xsave lahf_lm dts tpr_shadow vnmi flexpriority

There are two sets of flags, because this system has a dual-core processor.

The flag I’m looking for is the lm (Long Mode) flag. This signifies a CPU is 64-bit capable. As you can see the “lm” clearly exists on both flag sets.

When I tested my server, the lm flag was not present on any of the flag sets.

This flag information is the same information displayed in the processor flags when you run:

sudo lshw

This command will result in many lines of information. However, towards the top, you will find information similar to this:


description: Computer
width: 64 bits
capabilities: vsyscall64 vsyscall32
*-core
description: Motherboard
physical id: 0
*-memory
description: System memory
physical id: 0
size: 3895MiB
*-cpu
product: Intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz
vendor: Intel Corp.
physical id: 1
bus info: cpu@0
width: 64 bits

Notice the width: 64 bits line underneath the CPU section?

This means the CPU is 64-bit capable. Neither method showed a 64-bit capable processor in my server.

There is hope: Once I verify what 64-bit processors the motherboard will support, I can probably locate a couple cheap ones on eBay.