Determining Specs

From FreekiWiki
Jump to navigation Jump to search

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.

Template:TOC limit

Methods

Method

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, including the model, speed, number of cores, and cache size. 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:

$ lscpu

This is an alternative to /proc/cpuinfo that is more spartan in its output (not evening printing out the name of the processor), but tends to be easier to glance over for details such as the number of cores, speed, cache size, etc.

Determining the traits of memory can be tricky. Without opening up the system and inspecting the sticks yourself, you'll be relegated to using either of a couple of utilities that can (usually) determine the speed, size, and other qualities of the system's RAM with root access. Try the following:

$ sudo lshw -C memory

Tends to be more the more common of the two commands amongst distros, although it's also rougher in its output and options.

$ sudo dmidecode -t 4,7,16,17

This command shows more information than lshw, in a neater and more human-readable format. See the next section for example output from each of these commands!

Google-fu

One of the most important skills you can have working in Laptop Build is how to effectively use Google and other internet search engines to look up the answers to the questions that plague you. A great first step in any evaluation is to look for a model number on the laptop, and plugging that into Google. Ideally, you'll find either a digital copy of a Service Manual provided by the manufacturer, or some other kind of page that details the range of components available to the model.

If you're curious to know what speed RAM you've got, and there's no indication on the stick itself, try plugging in parts of the serial number into Google and seeing what turns up. If nothing conclusive comes up, or if there isn't even a S/N label on the stick, you can try Googling the memory modules part numbers (the small little black boxes located on the stick) to see if a parts retailer or component manufacturer has any information posted. Oftentimes, you can infer what the size and speed of the RAM is based on it.


Examples

The following are examples of some of the commands mentioned above under Live CD.

Command

Output and Notes

/proc/cpuinfo

Example of 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!

lscpu
$ lscpu
Architecture:          i686
CPU op-mode(s):        32-bit, 64-bit
CPU(s):                2
Thread(s) per core:    1
Core(s) per socket:    2
CPU socket(s):         1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 15
Stepping:              13
CPU MHz:               800.000
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              2048K

As mentioned above, lspcu doesn't name the processor, but it does show useful tidbits suchs as whether the processor supports Virtualization, Hyper Threading, whether it's 32 or 64-bit, L2 cache size, and so forth. Think of all the time you'll save with those extra keystrokes you're avoiding!

lshw

Example output from lshw:

$ sudo 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

Example output from dmidecode

$ sudo dmidecode -t 4,7,16,17
# dmidecode 2.9
SMBIOS 2.4 present.

Handle 0x0006, DMI type 4, 35 bytes
Processor Information
	Socket Designation: None
	Type: Central Processor
	Family: Other
	Manufacturer: GenuineIntel
	ID: FD 06 00 00 FF FB EB BF
	Version: Intel(R) Core(TM)2 Duo CPU     T7100  @ 1.80GHz
	Voltage: 1.3 V
	External Clock: 200 MHz
	Max Speed: 1800 MHz
	Current Speed: 1800 MHz
	Status: Populated, Enabled
	Upgrade: None
	L1 Cache Handle: 0x000A
	L2 Cache Handle: 0x000C
	L3 Cache Handle: Not Provided
	Serial Number: Not Specified
	Asset Tag: Not Specified
	Part Number: Not Specified

Handle 0x000A, DMI type 7, 19 bytes
Cache Information
	Socket Designation: Internal L1 Cache
	Configuration: Enabled, Socketed, Level 1
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 64 KB
	Maximum Size: 64 KB
	Supported SRAM Types:
		Synchronous
	Installed SRAM Type: Synchronous
	Speed: Unknown
	Error Correction Type: Single-bit ECC
	System Type: Instruction
	Associativity: 8-way Set-associative

Handle 0x000B, DMI type 7, 19 bytes
Cache Information
	Socket Designation: Internal L1 Cache
	Configuration: Enabled, Socketed, Level 1
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 64 KB
	Maximum Size: 64 KB
	Supported SRAM Types:
		Synchronous
	Installed SRAM Type: Synchronous
	Speed: Unknown
	Error Correction Type: Single-bit ECC
	System Type: Data
	Associativity: 8-way Set-associative

Handle 0x000C, DMI type 7, 19 bytes
Cache Information
	Socket Designation: Internal L2 Cache
	Configuration: Enabled, Socketed, Level 2
	Operational Mode: Write Back
	Location: Internal
	Installed Size: 2048 KB
	Maximum Size: 2048 KB
	Supported SRAM Types:
		Burst
	Installed SRAM Type: Burst
	Speed: Unknown
	Error Correction Type: Single-bit ECC
	System Type: Unified
	Associativity: 8-way Set-associative

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 primary difference between dmidecode and lshw is essentially more information, presented in a nicely formatted, more human-readable way. With the -t 4,7,16,17 options, we are presented with information on the processor and its various cache sizes, the maximum supported memory, and how many DIMM slots along with the speed and size of any installed RAM are present on the motherboard. Whew! This is definitely overkill in terms of information, but sometimes you just absolutely have to know!