Difference between revisions of "Determining Specs"

From FreekiWiki
Jump to navigation Jump to search
(Initial write-up; incomplete)
 
Line 1: Line 1:
 
In order to figure out how to build a laptop, and where it should ultimately go, we need to know what's running under the hood.  The following are some different strategies for figuring this out.  Ideally, we would use a couple of these methods to corroborate the results of another, but that's not always possible.
 
In order to figure out how to build a laptop, and where it should ultimately go, we need to know what's running under the hood.  The following are some different strategies for figuring this out.  Ideally, we would use a couple of these methods to corroborate the results of another, but that's not always possible.
  
 
+
==How to Determine Laptop Specs==
 
{| border="1" fontname="Nimbus Sans" fontsize="12" cellpadding="5" cellspacing="1"
 
{| border="1" fontname="Nimbus Sans" fontsize="12" cellpadding="5" cellspacing="1"
 
|-
 
|-
Line 13: Line 13:
 
!Hardware Identification Tool
 
!Hardware Identification Tool
 
||
 
||
 +
We have a utility on our netboot menu called the Hardware Identification Tool, which displays just about everything you wanted to know about the system in front of you and more.  In order to access the tool, the system you're working on will need to be able to boot from LAN.  Occasionally, this feature will be disabled in the BIOS.  In order to enable it, try looking under BIOS Menu options such as '''Device Options''' or '''Boot Devices'''.  If you find an entry that references a '''Network Device''', cycle through its settings to see if an option labelled '''Enabled w/ PXE''' or something similar is available.
 +
 +
Before booting, make sure you're connected to our LAN with an ethernet cable (there are multiple cables hovering around the workbench).  Most systems will either offer you a boot menu or attempt a network boot if you hit '''F12''' while POSTing.  As with all things BIOS-related, this isn't always the case, so keep an eye out for any alternate means.  Once you've successfully booted from the network, you should be presented with a menu showing the various options available.  Select the '''Hardware Identification Tool''' and it should load almost immediately.
 +
 +
Inside of the '''Hardware Identification Tool''', you should see a list of various parts of the system; '''Processor''' is of particular importance to us.  Select '''Processor''', and look for the '''Model''', '''L2 cache''', and '''Cores''' entries to help
 +
determine which specification the machine should be built towards.
 +
 +
If you have any questions or trouble booting from the network, consult your Instructor for assistance.
 +
|-
 +
!Booting from LiveCD
 +
||
 +
If your machine is unable to boot from the Network for whatever reason, all is not lost!  We can try using a Live CD to get a linux environment and find out the specs from the commandline.  To boot from the Live CD, make sure the system you're working on has an optical drive (an external drive can sometimes work as well), and throw a Live CD in there.  All we really need is a console login, so if possible, try to avoid a graphical environment by selecting recovery mode or dropping to a TTY ('''Ctrl + Alt + F1''') when the CD loads.
 +
 +
As with all things Linux, there are a dozen different ways to get the information we're looking for.  The most reliable, however, is to dig around the <code>/proc</code> directory.  Specifically
 +
 +
$ cat /proc/cpuinfo
 +
 +
will give you a detailed list of information about the processor.  Here's an example of some output from  <code>/proc/cpuinfo</code>
 +
 +
$ cat /proc/cpuinfo
 +
processor : 0
 +
vendor_id : GenuineIntel
 +
cpu family : 6
 +
model : 15
 +
model name : Intel(R) Core(TM)2 Duo CPU    T7100  @ 1.80GHz
 +
stepping : 13
 +
cpu MHz : 800.000
 +
cache size : 2048 KB
 +
physical id : 0
 +
siblings : 2
 +
core id : 0
 +
cpu cores : 2
 +
apicid : 0
 +
initial apicid : 0
 +
fdiv_bug : no
 +
hlt_bug : no
 +
f00f_bug : no
 +
coma_bug : no
 +
fpu : yes
 +
fpu_exception : yes
 +
cpuid level : 10
 +
wp : yes
 +
flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe
 +
nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm ida dts
 +
tpr_shadow vnmi flexpriority
 +
bogomips : 3591.32
 +
clflush size : 64
 +
cache_alignment : 64
 +
address sizes : 36 bits physical, 48 bits virtual
 +
power management:
 +
 +
The fields we're interested in are <code>model name</code>, <code>cache size</code>, and <code>cpu cores</code>.  In this example, we're dealing with a Core 2 Duo, with 2 MB of L2 cache, and two cores.  Nice!  Make this system a [[Laptop_Specs|High-end]]!
 +
 +
Determining how much and what kind of memory is installed can be tricky.  It will pretty much always require root permissions, and a utility such as dmidecode or lshw.  Depending on your Live CD, you may only have access to one or the other.  Try the following commands:
 +
 +
$ sudo dmidecode -t 16,17
 +
 +
$ sudo lshw -C memory
 +
 +
Example output from <code>dmidecode -t 16,17</code>
 +
# dmidecode 2.9
 +
SMBIOS 2.4 present.
 +
 +
Handle 0x002B, DMI type 16, 15 bytes
 +
Physical Memory Array
 +
Location: System Board Or Motherboard
 +
Use: System Memory
 +
Error Correction Type: None
 +
Maximum Capacity: 4 GB
 +
Error Information Handle: Not Provided
 +
Number Of Devices: 2
 +
 +
Handle 0x002C, DMI type 17, 27 bytes
 +
Memory Device
 +
Array Handle: 0x002B
 +
Error Information Handle: 0xFF01
 +
Total Width: 64 bits
 +
Data Width: 64 bits
 +
Size: 1024 MB
 +
Form Factor: SODIMM
 +
Set: None
 +
Locator: DIMM 1
 +
Bank Locator: Bank 0/1
 +
Type: DDR2
 +
Type Detail: Synchronous
 +
Speed: 667 MHz (1.5 ns)
 +
Manufacturer: Not Specified
 +
Serial Number: Not Specified
 +
Asset Tag: Not Specified
 +
Part Number: Not Specified
 +
 +
Handle 0x002D, DMI type 17, 27 bytes
 +
Memory Device
 +
Array Handle: 0x002B
 +
Error Information Handle: 0xFF01
 +
Total Width: 64 bits
 +
Data Width: 64 bits
 +
Size: 1024 MB
 +
Form Factor: SODIMM
 +
Set: None
 +
Locator: DIMM 2
 +
Bank Locator: Bank 2/3
 +
Type: DDR2
 +
Type Detail: Synchronous
 +
Speed: 667 MHz (1.5 ns)
 +
Manufacturer: Not Specified
 +
Serial Number: Not Specified
 +
Asset Tag: Not Specified
 +
Part Number: Not Specified
 +
 +
The interesting bits of information here are <code>Maximum Capacity</code> (invoked with the <code>-t 16</code> option), <code>Size</code>,<code>Type</code>, and <code>Speed</code> fields.  <code>dmidecode</code> provides largely the same information as <code>lshw</code>, except that it formats it nicer and offers a few extra tidbits.  In particular, we now know our High-End laptop is capable of supporting up to 4GB of RAM.
 +
|}
 +
 +
==Example Output==
 +
{| border="1" fontname="Nimbus Sans" fontsize="12" cellpadding="5" cellspacing="1"
 +
|-
 +
|width="15%" align="center"|<h2>Command</h2>
 +
|align="center"|<h2>Output and Notes</h2>
 +
|-
 +
!<code>lshw</code>
 +
||
 +
Example output from <code>lshw -C memory</code>:
 +
*-memory
 +
      description: System Memory
 +
      physical id: 2b
 +
      slot: System board or motherboard
 +
      size: 2GiB
 +
    *-bank:0
 +
          description: SODIMM DDR2 Synchronous 667 MHz (1.5 ns)
 +
          physical id: 0
 +
          slot: DIMM 1
 +
          size: 1GiB
 +
          width: 64 bits
 +
          clock: 667MHz (1.5ns)
 +
    *-bank:1
 +
          description: SODIMM DDR2 Synchronous 667 MHz (1.5 ns)
 +
          physical id: 1
 +
          slot: DIMM 2
 +
          size: 1GiB
 +
          width: 64 bits
 +
          clock: 667MHz (1.5ns)
 +
 +
The interesting things to note here are how many <code>banks</code> appear, and the <code>size</code> and the <code>clock</code> in each of them.  In this example, we have two banks (or two DIMM slots), each with a 1 GB stick of DDR2-667 (PC2-5300).
 +
|-
 +
!<code>dmidecode</code>

Revision as of 01:30, 15 September 2011

In order to figure out how to build a laptop, and where it should ultimately go, we need to know what's running under the hood. The following are some different strategies for figuring this out. Ideally, we would use a couple of these methods to corroborate the results of another, but that's not always possible.

How to Determine Laptop Specs

Methods

Notes and Detailed Instructions

BIOS

Since you should be making a stop in the BIOS anyway, it makes sense to start here. Unfortunately, not all systems will display the information we are looking for. If you don't see any mention of the processor on the main screen, try looking for an option that says something like System Information. It's always a good idea to double-check whatever the BIOS tells you with another method.

Hardware Identification Tool

We have a utility on our netboot menu called the Hardware Identification Tool, which displays just about everything you wanted to know about the system in front of you and more. In order to access the tool, the system you're working on will need to be able to boot from LAN. Occasionally, this feature will be disabled in the BIOS. In order to enable it, try looking under BIOS Menu options such as Device Options or Boot Devices. If you find an entry that references a Network Device, cycle through its settings to see if an option labelled Enabled w/ PXE or something similar is available.

Before booting, make sure you're connected to our LAN with an ethernet cable (there are multiple cables hovering around the workbench). Most systems will either offer you a boot menu or attempt a network boot if you hit F12 while POSTing. As with all things BIOS-related, this isn't always the case, so keep an eye out for any alternate means. Once you've successfully booted from the network, you should be presented with a menu showing the various options available. Select the Hardware Identification Tool and it should load almost immediately.

Inside of the Hardware Identification Tool, you should see a list of various parts of the system; Processor is of particular importance to us. Select Processor, and look for the Model, L2 cache, and Cores entries to help determine which specification the machine should be built towards.

If you have any questions or trouble booting from the network, consult your Instructor for assistance.

Booting from LiveCD

If your machine is unable to boot from the Network for whatever reason, all is not lost! We can try using a Live CD to get a linux environment and find out the specs from the commandline. To boot from the Live CD, make sure the system you're working on has an optical drive (an external drive can sometimes work as well), and throw a Live CD in there. All we really need is a console login, so if possible, try to avoid a graphical environment by selecting recovery mode or dropping to a TTY (Ctrl + Alt + F1) when the CD loads.

As with all things Linux, there are a dozen different ways to get the information we're looking for. The most reliable, however, is to dig around the /proc directory. Specifically

$ cat /proc/cpuinfo

will give you a detailed list of information about the processor. Here's an example of some output from /proc/cpuinfo

$ cat /proc/cpuinfo 
processor	: 0
vendor_id	: GenuineIntel
cpu family	: 6
model		: 15
model name	: Intel(R) Core(TM)2 Duo CPU     T7100  @ 1.80GHz
stepping	: 13
cpu MHz		: 800.000
cache size	: 2048 KB
physical id	: 0
siblings	: 2
core id		: 0
cpu cores	: 2
apicid		: 0
initial apicid	: 0
fdiv_bug	: no
hlt_bug		: no
f00f_bug	: no
coma_bug	: no
fpu		: yes
fpu_exception	: yes
cpuid level	: 10
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe
nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm lahf_lm ida dts 
tpr_shadow vnmi flexpriority
bogomips	: 3591.32
clflush size	: 64
cache_alignment	: 64
address sizes	: 36 bits physical, 48 bits virtual
power management:

The fields we're interested in are model name, cache size, and cpu cores. In this example, we're dealing with a Core 2 Duo, with 2 MB of L2 cache, and two cores. Nice! Make this system a High-end!

Determining how much and what kind of memory is installed can be tricky. It will pretty much always require root permissions, and a utility such as dmidecode or lshw. Depending on your Live CD, you may only have access to one or the other. Try the following commands:

$ sudo dmidecode -t 16,17
$ sudo lshw -C memory

Example output from dmidecode -t 16,17

# dmidecode 2.9
SMBIOS 2.4 present.

Handle 0x002B, DMI type 16, 15 bytes
Physical Memory Array
	Location: System Board Or Motherboard 
	Use: System Memory 
	Error Correction Type: None
	Maximum Capacity: 4 GB
	Error Information Handle: Not Provided
	Number Of Devices: 2

Handle 0x002C, DMI type 17, 27 bytes
Memory Device
	Array Handle: 0x002B
	Error Information Handle: 0xFF01
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 1024 MB
	Form Factor: SODIMM
	Set: None
	Locator: DIMM 1
	Bank Locator: Bank 0/1
	Type: DDR2
	Type Detail: Synchronous
	Speed: 667 MHz (1.5 ns)
	Manufacturer: Not Specified
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified

Handle 0x002D, DMI type 17, 27 bytes
Memory Device
	Array Handle: 0x002B
	Error Information Handle: 0xFF01
	Total Width: 64 bits
	Data Width: 64 bits
	Size: 1024 MB
	Form Factor: SODIMM
	Set: None
	Locator: DIMM 2
	Bank Locator: Bank 2/3
	Type: DDR2
	Type Detail: Synchronous
	Speed: 667 MHz (1.5 ns)
	Manufacturer: Not Specified
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified

The interesting bits of information here are Maximum Capacity (invoked with the -t 16 option), Size,Type, and Speed fields. dmidecode provides largely the same information as lshw, except that it formats it nicer and offers a few extra tidbits. In particular, we now know our High-End laptop is capable of supporting up to 4GB of RAM.

Example Output

Command

Output and Notes

lshw

Example output from lshw -C memory:

*-memory
      description: System Memory
      physical id: 2b
      slot: System board or motherboard
      size: 2GiB
    *-bank:0
         description: SODIMM DDR2 Synchronous 667 MHz (1.5 ns)
         physical id: 0
         slot: DIMM 1
         size: 1GiB
         width: 64 bits
         clock: 667MHz (1.5ns)
    *-bank:1
         description: SODIMM DDR2 Synchronous 667 MHz (1.5 ns)
         physical id: 1
         slot: DIMM 2
         size: 1GiB
         width: 64 bits
         clock: 667MHz (1.5ns)

The interesting things to note here are how many banks appear, and the size and the clock in each of them. In this example, we have two banks (or two DIMM slots), each with a 1 GB stick of DDR2-667 (PC2-5300).

dmidecode