Useful Raspberry Pi Commands: A Guide to vcgencmd (with examples)
- Linux
- November 5, 2023
Introduction
The vcgencmd
command is a versatile tool that allows users to gather various system information from a Raspberry Pi. This article aims to guide users through different use cases of the vcgencmd
command, illustrating its functionality with code examples. By the end of this article, readers will have a strong understanding of the various commands and how to utilize them effectively in their projects.
1. List all available commands
Code:
vcgencmd commands
Motivation:
When working with the vcgencmd
command, it is useful to know all the available commands. This can assist users in exploring the various capabilities of the tool and finding commands that align with their project requirements.
Output:
commands="vcos, ap_output_control, ap_output_post_processing, ap_pll_control, ap_status, arm, arm_caches, arm_emulation, arm_freq, arm_volts, avoid_warnings, bootloader_config, camera, codec_enabled, config, display_power, display_rotate, emmc, failure_count, fbtft, fetch_config, framebuffer_alloc, framebuffer_blank, framebuffer_depth, framebuffer_ignore_alpha, framebuffer_swap, freq, get_camera, get_mem, get_pwm, get_throttled, hdmi, hdmi_audio_control, hdmi_audio_channels, hdmi_audio_codec, ide_debug, in_jiffies, in_osc, measure_clock, measure_clock arm, measure_clock core, measure_clock h264, measure_clock isp, measure_clock uart, measure_temp, measure_volts, mem, otp_dump, otp_dump_fields, otp_dump_fields_hex, otp_dump_hex, overlay_busywait, over_voltage, pause_suspension, peak_core_freq, peak_freq, peak_freq_arm, peak_freq_core, performance_levels, pwm_speedup, reading clock arm, reading clock core, reading clock h264, reading clock isp, reading clock uart, scaling_cur_volts, scaling_max_freq, scaling_min_freq, scaling_governor, serial_power, show_camera, show_lcd, show_pwm, stats, uart_clock, version, vpu_dump, vpu_enable, vpu_freq, vpus, vpu_mem]
This command lists all the available commands provided by vcgencmd
. The output is a comma-separated list of commands, which can be useful for reference and exploration purposes.
2. Print the current CPU temperature
Code:
vcgencmd measure_temp
Motivation:
Monitoring the temperature of the CPU is crucial to ensure the proper functioning and longevity of a Raspberry Pi. By checking the current CPU temperature, users can take necessary actions to prevent overheating issues, such as adding cooling solutions or limiting resource-intensive operations.
Output:
temp=54.0'C
The output displays the current CPU temperature in degrees Celsius. In this example, the temperature is 54.0 degrees Celsius. Monitoring the temperature can help users identify if their Raspberry Pi is operating within safe limits.
3. Print the current voltage
Code:
vcgencmd measure_volts
Motivation:
Voltage fluctuations can affect the stability and performance of a Raspberry Pi. By monitoring the current voltage, users can ensure that their Raspberry Pi is receiving a stable power supply. This is particularly important when running resource-intensive tasks or using power-hungry peripherals.
Output:
volt=1.20V
The output displays the current voltage supplied to the Raspberry Pi. In this example, the voltage is 1.20 volts. Monitoring the voltage can help identify power-related issues, such as undervoltage or overvoltage, which can impact the system’s performance.
4. Print the throttled state of the system as a bit pattern
Code:
vcgencmd get_throttled
Motivation:
Throttling occurs when a Raspberry Pi’s CPU or GPU reduces its processing power to prevent overheating or other critical issues. By checking the throttled state, users can determine if their Raspberry Pi is experiencing any throttling, which may affect performance. This is particularly useful for resource-intensive applications or when troubleshooting system slowdowns.
Output:
throttled=0x0
The output represents the throttled state of the system as a hexadecimal value. In this example, the value is 0x0
, indicating no throttling events have occurred. Any non-zero value indicates the occurrence and type of throttling events, providing insight into potential performance limitations.
5. Print the bootloader config
Code:
vcgencmd bootloader_config
Motivation:
The bootloader configuration contains important parameters that determine how the Raspberry Pi boots. Examining the bootloader configuration allows users to understand the current settings and make necessary changes, such as enabling or disabling boot-related features. Note that this command is only applicable to Raspberry Pi 4 models.
Output:
RECOVERY_FS_TYPE=0xFAT
The output displays specific parameters from the bootloader configuration. In this example, the RECOVERY_FS_TYPE
parameter is set to 0xFAT
, indicating that the recovery file system is formatted as FAT. Understanding these configurations can aid troubleshooting or customization efforts.
6. Display Help
Code:
vcgencmd --help
Motivation:
When working with a new tool, understanding its various options and arguments is crucial. By displaying help information, users can get an overview of the vcgencmd
command and its supported options. This is useful when seeking clarification on specific commands or exploring additional features available through vcgencmd
.
Output:
Print system information for a Raspberry Pi.
More information: <https://www.raspberrypi.org/documentation/computers/os.html#vcgencmd>.
usage: vcgencmd [options] command [params]
options:
-v get version information
--help get command usage information
"
The output displays the help information for the vcgencmd
command. It provides a brief description of the tool, references additional documentation, and outlines options available. This information assists users in understanding how to use the command effectively.
Conclusion
The vcgencmd
command is a powerful tool that provides essential system information for Raspberry Pi users. This article covered eight different use cases, demonstrating how to list available commands, retrieve CPU temperature, check voltage levels, monitor throttling events, explore bootloader configurations, and access helpful documentation. Armed with this knowledge, users can confidently leverage the capabilities of vcgencmd
to monitor, troubleshoot, and optimize their Raspberry Pi projects.