Manual
do
Maker
.
com
Entre as tantas coisas que temos no Raspberry Pi, quase sempre passa despercebido algo que nem é tão raro, mas sempre tão pouco falado, que é o comando vcgencmd. Apesar de existir referências claras e de fácil acesso (consultando o próprio comando), acredito que valha a pena fazer uma referência exclusiva porque e comando varia conforme versão do sistema.
O propósito inicial era outro, e esse outro gerará mais um post simples, por isso sequer farei referência ao assunto, mas vamos agora ao uso dessa belezinha.
Para fazer uma rápida consulta dos parâmetros disponíveis, simplemente digite:
vcgencmd commands
Exibir-se-á uma linha semelhante a esta:
commands="vcos, ap_output_control, ap_output_post_processing, vchi_test_init, vchi_test_exit, pm_set_policy, pm_get_status, pm_show_stats, pm_start_logging, pm_stop_logging, version, commands, set_vll_dir, led_control, set_backlight, set_logging, get_lcd_info, arbiter, cache_flush, otp_dump, test_result, codec_enabled, get_camera, get_mem, measure_clock, measure_volts, scaling_kernel, scaling_sharpness, get_hvs_asserts, measure_temp, get_config, hdmi_ntsc_freqs, hdmi_adjust_clock, hdmi_status_show, hvs_update_fields, pwm_speedup, force_audio, hdmi_stream_channels, hdmi_channel_map, display_power, read_ring_osc, memtest, dispmanx_list, get_rsts, schmoo, render_bar, disk_notify, inuse_notify, sus_suspend, sus_status, sus_is_enabled, sus_stop_test_thread, egl_platform_switch, mem_validate, mem_oom, mem_reloc_stats, file, vctest_memmap, vctest_start, vctest_stop, vctest_set, vctest_get"
E destes, diversos comandos podem ser testados sem impacto.
Nesse outro post mostrei como configurar a câmera do RPi, só que não falei a respeito dessa verificação; você pode ver se é suportada e se ela foi detectada digitando simplesmente:
vcgencmd get_camera
No meu caso (uma RPi 2, que não está com a câmera) esse comando retornou:
supported=1 detected=0
E uma série de testes podem ser executados seguindo essa linha de comando vcgencmd. Alguns dos mais importantes são o memtest, version e um dos mais legais:
vcgencmd measure_clock <clock>
Esse comando aceita uma série e parâmetros, dentre os quais:
arm, core, h264, isp, v3d, uart, pwm, emmc, pixel, vec, hdmi, dpi
Um dos poucos parâmetros que utilizei em posts anteriores está o utilíssimo:
vcgencmd measure_temp
Que devolve a temperatura nesse formato:
temp=38.5'C
E se quiser saber por exemplo, quais codecs estão habilitados no seu sistema, você pode utilizar:
vcgencmd codec_enabled <codec>
Dentre os quais:
H264, MPG2, WVC1, MPG4, MJPG, WMV9
Expliquei de outro modo como desligar e ligar o monitor por linha de comando nesse post. Com o comando vcgencmd fica um pouco mais simples:
vcgencmd display_power 0
vcgencmd display_power 1
O parâmetro '1' liga, o parâmetro '0' desliga. Só achei um pouco mais lento do que como referido no post acima, mas funciona sim.
Você pode também ver como está particionada a memória entre video e sistema. Essa é uma informação que considero bastante relevante.
vcgencmd get_mem arm
vcgencmd get_mem gpu
Para memória do sistema 'arm' e para a gpu...bem, você sabe. Pode ser útil chamar os dois quando você não sabe (ou não lembra) a quantidade total de memória do sistema.
Para pegar as configurações do sistema que utilizam variáveis do tipo inteiro, o comando é o seguinte:
vcgencmd get_config int
Que deve devolver algo como:
arm_freq=900
audio_pwm_mode=1
audio_sdm_mod_order=2
config_hdmi_boost=5
disable_commandline_tags=2
disable_l2cache=1
emmc_pll_core=1
force_eeprom_read=1
force_pwm_open=1
framebuffer_ignore_alpha=1
framebuffer_swap=1
hdmi_drive=2
hdmi_force_cec_address=65535
hdmi_force_hotplug=1
hdmi_group=2
hdmi_mode=4
hdmi_safe=1
init_uart_clock=0x2dc6c0
lcd_framerate=60
over_voltage_avs=0x1b774
overscan_bottom=16
overscan_left=24
overscan_right=24
overscan_top=16
pause_burst_frames=1
program_serial_random=1
sdram_freq=450
temp_limit=85
Por fim, o último comando que me interessou foi o:
vcgencmd measure_volts <tipo>
Onde o tipo pode ser:
core, sdram_c, sdram_i, sdram_p
E daí por diante.
Esse não é o artigo que mudará sua vida, mas com certeza lhe será útil em ao menos 1 de seus parâmetros, ainda que seja temperatura apenas, mas não deixa de ser útil, certo? Espero que tenha gostado desse post simplista, mas digitado com o mesmo prazer que os artigos mais complexos.
Inscreva-se em nosso canal Dobitaobyte no Youtube.
Próximo post a caminho!
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.