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:
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: 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:
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: 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.