Yesterday’s Kubuntu: BIOS Information and Features guide 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 very noticeable; even over the Big-Mem kernel. 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.
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, by finding it in the flag list of my CPU.
I know my workstation is running a 64-bit OS, already. To find the related flags on your workstation, type:
cat /proc/cpuinfo | grep flags
then press the [enter] key.
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 type:
then press the [enter] key.
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.
FYI: These steps should also work for Ubuntu.