This week my old Linux box refused to boot: for a few times when clicking the power button, I was confronted with a black screen and an annoying beeping. Luckily, after a few tries my computer wound up booting up and as of today it works flawlessly.

Still this incident got me thinking: the beeping was warning me of some kind of issue with the hardware that might reappear soon, it is an old machine after all, and hardware failures are to be expected at some point. It would be a good idea, therefore, to do some research to be prepared if it happens again.

I needed to find out what the beep codes of the BIOS stood for, and for that I needed to know my motherboard model … I knew it was a Gigabyte, but I could not remember the exact model.

An easy way to find out my exact memory board model would be to simply open the case and look at the sticker in the motherboard:-) Even easier would be to use one of the many programs available for Linux that query the system for hardware information.

One of such programs is dmidecode; dmidecode reports a variety of information about the system hardware:

Dmidecode reports information about your system’s hardware as described in your system BIOS according to the SMBIOS/DMI standard. This information typically includes system manufacturer, model name, serial number, BIOS version, asset tag as well as a lot of other details of varying level of interest and reliability depending on the manufacturer. This will often include usage status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory module slots, and the list of I/O ports (e.g. serial, parallel, USB).

So I proceed to install the package:

apt-get install dmidecode

Running the dmidecode command on the console produced an extended amount of information, including the mother board model – which was what I was trying to find out.

If we run the dmidecode with the –help switch, though, we will find ways to check for more specific information:

dmidecode --help

The output:

Usage: dmidecode [OPTIONS]
Options are:
 -d, --dev-mem FILE     Read memory from device FILE (default: /dev/mem)
 -h, --help             Display this help text and exit
 -q, --quiet            Less verbose output
 -s, --string KEYWORD   Only display the value of the given DMI string
 -t, --type TYPE        Only display the entries of given type
 -u, --dump             Do not decode the entries
     --dump-bin FILE    Dump the DMI data to a binary file
     --from-dump FILE   Read the DMI data from a binary file
 -V, --version          Display the version and exit

From the above options the ones of interest if we want to query the system for a specific item (memory, motherboard, cpu, etc) are –string, and –type.

Run –string without any arguments to find the possible string values:

dmidecode --string

Output:

dmidecode: option '--string' requires an argument
String keyword expected
Valid string keywords are:
  bios-vendor
  bios-version
  bios-release-date
  system-manufacturer
  system-product-name
  system-version
  system-serial-number
  system-uuid
  baseboard-manufacturer
  baseboard-product-name
  baseboard-version
  baseboard-serial-number
  baseboard-asset-tag
  chassis-manufacturer
  chassis-type
  chassis-version
  chassis-serial-number
  chassis-asset-tag
  processor-family
  processor-manufacturer
  processor-version
  processor-frequency

If I am looking for the motherboard model the string I need to use is baseboard-product-name:

dmidecode --string baseboard-product-name

Which produces, in my case, this output:

P67A-D3-B3

Notice that in this example I queried the system for very specific information. I was not only interested in information about the motherboard, but the only thing that I cared about was the specific model.

If I had wanted instead to print all the information regarding the motherboard I could have used the –type switch. Let’s have a look at the available –type values:

dmidecode --type

Output:

dmidecode: option '--type' requires an argument
Type number or keyword expected
Valid type keywords are:
  bios
  system
  baseboard
  chassis
  processor
  memory
  cache
  connector
  slot

As you see we can get information on various components of the system.

Anyway, having found out my original motherboard model, I could google for information about the beep codes, or download the specific motherboard manual from the Gigabyte‘s site.

Next time my ancient Linux box starts acting up I will be ready :-). That’s all, thanks for reading. If you found this information useful, you can subscribe to my blog (click at the “follow” button at the bottom) to be notified of new posts.

Advertisements