Comando vcgencmd do Raspberry Pi

Cache do Chromium | Selecionar modo de boot por GPIO Raspberry 3BT| ext to speech com Raspberry | Gerar binário a partir do script Python | resolvendo nomes | iniciar programa no boot | Multithread no Raspberry | Compilar programas escritos em Python

Comando vcgencmd

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.

Consulta dos parâmetros disponíveis

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

vcgencmd measure_volts core

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 no nosso newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!

Agregador de Links - Loucuras da Net

Deixe uma resposta