Finding Your Raspberry Pi’s System Information

The Raspberry Pi has a lot of system information available like details about the CPU, the current temperature of the processor, the amount of memory and so on. Not all of the information is available in one place; however, if you know where to look, you can discover quite a lot of interesting data about your Pi.

Besides the “standard” system resource tools like “ps“, “df“, “top” and other useful commands like “htop”, “iotop” and “glances”, system information can be found under the “/proc” filesystem. One of the most useful is the “cpuinfo” file, which contains data on a system’s CPU. To see it type:


The output tells us three things about this Raspberry Pi: It has a processor based on the ARM architecture (rather than Intel as in Windows PCs and Macs), the processor uses the ARMv6 instruction set, and that the processor is the BCM2708, which we know is a processor from Broadcom. The ARMv6 instruction set is one of the older ARM designs. Most modern smartphones and tablets use the ARMv7 architecture, and increasingly the new 64-bit ARMv8 instruction set is becoming more mainstream.

Other files that are worth looking at in the “/proc” filesystem include “/proc/meminfo”, “/proc/partitions” and “/proc/version.” Each can be examined using the “cat” command.

The information found under “/proc” is available on all Linux systems; however, the Raspberry Pi also has a special command available which displays information that is specific to the Raspberry Pi board. The “vcgencmd” tool can access a lot of Raspberry Pi specific information including clock frequencies, various voltages, the CPU temperature, and which hardware codecs are enabled.

Starting with the CPU core temperature, type:

The output is a single line reporting the temperature:

This number is important for those who overclock their Pi’s processor or who have built projects around the Raspberry Pi with limited airflow over the processor.

Talking of overclocking, to see the current CPU frequency along with the minimum and maximum frequencies use:


The numbers output are in kilohertz, so 950000 is 950MHz.

Other clock speeds can also be discovered using “vcgencmd measure_clock CLOCKNAME” where CLOCKNAME is one of h264, isp, v3d, uart, pwm, emmc, pixel, vec, hdmi, or dpi. For example:

The output is in Hertz, so 700000000 is 700MHz.

You can use the following shell script to list all the clock speeds:

Another “vcgencmd” system command that you might find useful is “vcgencmd measure_volts” to find the internal voltages for core, sdram_c, sdram_i, and sdram_p. For example:

The output will look something like this:

The following shell commands will display all the voltages:

To see which hardware codecs have been enabled, use “vcgencmd codec_enabled CODECNAME” where CODECNAME is one of H264, MPG2, WVC1, MPG4, MJPG, or WMV9. For example:

To save time repeating the command for every codec you can use this simple piece of shell script.

To see how the memory is split between the CPU and the GPU use:


Finally, to see how much free memory is available to the system use:

If you have any questions about vcgencmd or any of the other system tools mentioned, please leave a comment below and we will see if we can help.

Gary Sims

Gary has been a technical writer, author and blogger since 2003. He is an expert in open source systems (including Linux), system administration, system security and networking protocols. He also knows several programming languages, as he was previously a software engineer for 10 years. He has a Bachelor of Science in business information systems from a UK University.


  1. On some Raspberry Pis you may need to explicitly specify the path to the command. For example, to get the CPU temperature on mine, I had to use /opt/vc/bin/vcgencmd measure_temp

  2. Interesting article. Thanks.

    But you appear to have an editing error in it. Your home and cell phone numbers are listed in the text below the first picture.

  3. Actually it is better to use command free -m. It outputs one line more: -/+ buffers/cache, where ‘free’ column “shows how much memory is available to applications”.

  4. Thanks for this, really useful. Most of the commands work on my other (Debian-based) systems too.

  5. I used my Pi as a web server so my friend made a sweet status page in PHP! Worked amazing!! I’ve since moved to the Seagate GoFlex Home because I started hosting more sites and a large e-mail server and needed more power :) This is essentially the identical site I was running on the Pi, just had to change some of the commands for arch linux:

    If you need any help getting it running on your Pi just let me know.

    -Jamie M.

Comments are closed.