9
Vcgencmd’nin Temel Kullanımı
Komutun saat hızlarını, sıcaklıkları, voltajları vb Bunu yapmazsak CSV dosyasındaki verileri temizlememiz gerekecek, ancak şu anda bunların kaldırılmasını otomatik hale getirebiliriz Bu bir CSV dosyası olmalıdır, ancak ad sizin seçiminiz olabilir Bu, bir bit modeli döndürecektir; kodu çözmek için lütfen tabloya bakın 1000V
7
sudo apt update && sudo apt install stress2 Listeden istediğiniz değeri bulun ve argüman olarak ekleyin
echo "Cool down data for 60 seconds" for i in 1 Son olarak CPU’nun soğuduğunu göstermek için boşta kalma süresini 60 saniye boyunca tekrarlıyoruz Hala for döngüsünün içindeyken bir saniye duraklayın ve ardından for döngüsünü kapatın Önceki for döngüsünü tekrarlıyoruz, sadece 60’ı 300’e değiştirin ve ardından aynı sıcaklığı, CPU hızını ve gaz kelebeği durumunu değişkenlere kaydedin ve ardından CSV dosyasına yazınResim 1 ile ilgili 3
(İmaj kredisi: Tom’un Donanımı) (İmaj kredisi: Tom’un Donanımı) (İmaj kredisi: Tom’un Donanımı)Kod Listesini Tamamlayın
#!/bin/bash echo "Tom's Hardware Benchmark Tool" output_file="benchmark 60; do timestamp=$(date +"%Y-%m-%d %H:%M:%S") echo "$timestamp" cpu_temp=$(vcgencmd measure_temp | cut -d= -f2 | cut -d\' -f1) echo "$cpu_temp" cpu_clock_speed=$(($(vcgencmd measure_clock arm | awk -F= 'print $2') / 1000000)) echo "$cpu_clock_speed" throttled_status=$(vcgencmd get_throttled) echo "$throttled_status" echo "################" echo "$timestamp,$cpu_temp,$cpu_clock_speed,$throttled_status" >> "$output_file" # Sleep for 1 second sleep 1 done Ana Raspberry Pi masaüstü menüsünden Programlama >> Geany’yi seçin echo "Timestamp,CPU Temperature (°C),CPU Clock Speed (MHz),CPU Throttled" > "$output_file"6 Bu, CSV dosyasındaki ve e-tablodaki sütun başlıklarını ayarlayacaktır
echo "Tom's Hardware Benchmark Tool" output_file="benchmark Geçerli saati bir değişkene yazın, ardından zaman damgasını kabuğa yazdırın 60; do8 300; do timestamp=$(date +"%Y-%m-%d %H:%M:%S") echo "$timestamp" cpu_temp=$(vcgencmd measure_temp | cut -d= -f2 | cut -d\' -f1) echo "$cpu_temp" cpu_clock_speed=$(($(vcgencmd measure_clock arm | awk -F= 'print $2') / 1000000)) echo "$cpu_clock_speed" throttled_status=$(vcgencmd get_throttled) echo "$throttled_status" echo "################" echo "$timestamp,$cpu_temp,$cpu_clock_speed,$throttled_status" >> "$output_file" # Sleep for 1 second sleep 1 done echo "Stress test complete, 60 second cool down period" echo "Cool down data for 60 seconds" for i in 1
sleep 1 done15 Bunları inceleyelim ve her komutun nasıl kullanıldığını ve çıktısının bir örneğini görelim sh
22 Daha sonra sıcaklığı kabuğa yansıtın Bu, terminal penceresinde yazdırıldığında verilerin bölümlere ayrılmasına yardımcı olacaktır Bu, boşta kalma süresiyle aynı döngüdür Bu, CPU’yu serin tutmak amacıyla hızını azaltır
Senaryo üç bölüme ayrılmıştır
Yatay kaydırmak için kaydırınSistem yapılandırmasını döndürür | vcgencmd get_config int | arm_64bit=1 arm_boost=1 arm_freq=2400 arm_freq_min=1000 arm_peri_high=1 audio_pwm_mode=2 auto_initramfs=1 kamera_auto_detect=1 core_freq=910 core_freq_min=500 devre dışı bırak_commandline_tags=2 devre dışı bırak_fw_kms_setup=1 devre dışı bırak_l2cache=1 devre dışı_overscan =1 display_auto_detect=1 display_default_lcd=-1 display_hdmi_rotate =-1 display_lcd_rotate=-1 dvfs=4 Enable_gic=1 Enable_uart=-1 Force_eeprom_read=1 Force_pwm_open=1 Framebuffer_length=16 Framebuffer_ignore_alpha=1 Framebuffer_swap=1 gpu_freq_min=500 hdmi_enable_4kp60=1 hevc_freq =910 hevc_freq_min=50 0 görmezden_lcd=-1 init_uart_clock= 0x2dc6c00 isp_freq=910 isp_freq_min=500 mask_gpu_interrupt1=16418 max_framebuffers=2 over_voltage_avs=0x20404 Pause_burst_frames=1 program_serial_random=1 total_mem=8192 usb_max_current_enable=1 v3d_freq=960 v3d_freq_ min=500 vpred=8921 hdmi_force_cec_address:0=65535 hdmi_force_cec_address:1=65535 |
Arm CPU için bellek bölünmesini döndürür | vcgencmd get_mem kolu | kol=1020M |
GPU için bellek bölünmesini döndürür | vcgencmd get_mem grafik işlemcisi | gpu=4M Not: Pi 5 için bu dinamik olarak tahsis edilmiş gibi görünüyor
chmod +x benchmark 60; do
# Get current timestamp
timestamp=$(date +"%Y-%m-%d %H:%M:%S")
echo "$timestamp"
# Get CPU temperature in degrees Celsius
cpu_temp=$(vcgencmd measure_temp | cut -d= -f2 | cut -d\' -f1)
echo "$cpu_temp"
# Get CPU clock speed in MHz
cpu_clock_speed=$(($(vcgencmd measure_clock arm | awk -F= 'print $2') / 1000000))
echo "$cpu_clock_speed"
# Check if the CPU is throttled
throttled_status=$(vcgencmd get_throttled)
echo "$throttled_status"
echo "################"
# Append data to CSV file
echo "$timestamp,$cpu_temp,$cpu_clock_speed,$throttled_status" >> "$output_file"
# Sleep for 1 second
sleep 1
done
19 “&” komutu arka plana yerleştirecek ve betiğimizin çalışmasını engellemeyecektir echo "Stress data for 300 seconds"17 CSV dosyası için bir başlık oluşturun ve dosyaya yazın 000’e bölmemiz gerekir Ancak birkaç ekstra seçenek/argümanla birçok farklı bileşen için canlı CPU sıcaklık verilerini, voltajlarını, saat hızlarını ve çok daha fazlasını alabiliriz Varsayılan olarak çıktı, standart çıktıya (terminal) yönlendirilir, ancak bir kanal kullanılarak çıktı, karşılaştırma için bir dosyaya yönlendirilebilir 3 |
Vcgencmd ile Basit Bir Karşılaştırma Komut Dosyası
Vcgencmd ve Bash komut dosyası oluşturma bilgimizle, her 60 saniyede bir CPU sıcaklığı, hız ve gaz durumu okuması yapacak ve ardından ayrıntıları bir CSV dosyasında saklayacak basit bir kıyaslama aracı yapabiliriz
#!/bin/bash4
for i in 1 Uygulamanın 60 saniye boyunca boşta kalacağını belirten bir mesaj çıktısı alın Kodu ana dizininize kıyaslama cpu_temp=$(vcgencmd measure_temp | cut -d= -f2 | cut -d\' -f1) echo "$cpu_temp"10
echo "################"13 264 blok hızını alın
Gerilimleri Ölçme
Vcgencmd’yi kullanarak VideoCore yongasının, RAM’in voltajlarını ve Güç Yönetimi IC (PMIC) dahil olmak üzere birçok güç kaynağında kullanılan voltajları ve akımları ölçebiliriz
Yatay kaydırmak için kaydırınVideoCore voltajını alın | vcgencmd tedbir_volts çekirdeği | volt=0,7200V | ||
RAM çekirdek voltajını alın | vcgencmd ölçü_volts sdram_c | volt=0,6000V | ||
RAM G/Ç voltajını alın | vcgencmd tedbir_volts sdram_i | volt=0,6000V | ||
RAM Phy voltajını alın | vcgencmd ölçü_volts sdram_p | volt=1 | vcgencmd get_throttled | kısılmış=0x0 |
Satır 1 – Hücre 0 | Satır 1 – Hücre 1 | Satır 1 – Hücre 2 |
Sistem Gaz Kelebeği Durumu Bit Tablosu
Yatay kaydırmak için kaydırınDüşük voltaj algılandı | 0 | 0x1 |
Etkinleştirme frekansı sınırlandı | 1 | 0x2 |
Şu anda kısıtlanmış | 2 | 0x4 |
Yumuşak sıcaklık sınırı etkin | 3 | 0x8 |
Düşük voltaj oluştu | 16 | 0x10000 |
Etkinleştirme sıklığı sınırı oluştu | 17 | 0x20000 |
Kısıtlama meydana geldi | 18 | 0x40000 |
Yumuşak sıcaklık sınırı oluştu | 19 | 0x80000 |
Vcgencmd ile Sistem Yapılandırma Bilgisi
Vcgencmd mevcut sistem yapılandırmasını incelemek ve dökümünü almak için kullanılabilir Terminalden kodu çalıştırın ve kıyaslamanın tamamlanmasını bekleyin Hızı MHz cinsinden elde etmek için, komutun çıktısından hızı dilimlememiz ve ardından 1 /benchmark Vcgencmd’yi kullanarak mevcut CPU hızını MHz cinsinden alın, bir değişkene kaydedin ve ardından hızı kabuğa yazdırın Bir terminal açın ve yazılım havuzlarını güncelleyin ve ardından stresi yükleyin Geçerli CPU sıcaklığını almak, sıcaklık dışındaki tüm bilgileri kesmek ve bir değişkene kaydetmek için vcgencmd’yi kullanın csv" echo "Timestamp,CPU Temperature (°C),CPU Clock Speed (MHz),CPU Throttled" > "$output_file" echo "Idle data for 60 seconds" for i in 1 Kabuğa # dizisini yankılayın
echo "$timestamp,$cpu_temp,$cpu_clock_speed,$throttled_status" >> "$output_file"14 CPU Gigahertz’de çalışıyor olabilir, ancak bilgisayarınızın bazı bölümleri çok daha düşük hızlarda çalışıyor olacaktır Daha sonra çıktı dosyasının adını saklayacak bir değişken oluşturun CPU’nun kısılıp kısılmadığını kontrol edin, verileri bir değişkene kaydedin ve kabuğa yazdırın ölçmek için birden fazla seçeneği vardır CSV dosyasını bir e-tabloya aktarın ve bulgularınızın grafiklerini/tablolarını oluşturmak için kullanın
Bu scripti Raspberry Pi 5’e yazacağız fakat aynı script Raspberry Pi’nin tüm modellerinde çalışacak Bir terminalde dosyayı yürütülebilir hale getirin 60; do timestamp=$(date +"%Y-%m-%d %H:%M:%S") echo "$timestamp" cpu_temp=$(vcgencmd measure_temp | cut -d= -f2 | cut -d\' -f1) echo "$cpu_temp" cpu_clock_speed=$(($(vcgencmd measure_clock arm | awk -F= 'print $2') / 1000000)) echo "$cpu_clock_speed" throttled_status=$(vcgencmd get_throttled) echo "$throttled_status" echo "################" echo "$timestamp,$cpu_temp,$cpu_clock_speed,$throttled_status" >> "$output_file" # Sleep for 1 second sleep 1 done stress --cpu 4 -t 300 & echo "Stress data for 300 seconds" for i in 1
Yatay kaydırmak için kaydırınSistemin gaz kelebeği durumunu bir bit modeli olarak döndürür İkinci kısım, dört çekirdeğin tümünü beş dakika boyunca zorlamak için stres kullanan stres testinin kendisidir Stres testinin şimdi başladığını belirten bir mesajı yankılayın (yazdırın) Vcgencmd komutunun izleme seçenekleri vardır
Yatay kaydırmak için kaydırın
Sistem Kısma DurumuRaspberry Pi yaklaşık 80 santigrat dereceye ulaştığında termal kısma girecektir For döngüsündeki kod, CSV dosyasına boşta kalma süresinin saniyesi başına bir olmak üzere 60 okuma yazacaktır Kullanıcıyı uygulamanın ne yapacağı konusunda bilgilendiren kabuğa bir mesaj gönderin throttled_status=$(vcgencmd get_throttled) echo "$throttled_status"12 stress --cpu 4 -t 300 &16 000 Ahududu Pi sistem Bu, keskin (#) ve bang (!) kelimelerinin birleşiminden oluşan “shabang” adını taşır Vcgencmd uzun yıllardan beri Raspberry Pi işletim sisteminin derinlerine gömülmüştü, ancak Ahududu Pi 5 onu gerçekten sevmeyi öğrenmemiz için sh olarak kaydedin Bu nasıl yapılır, komutun temel kullanımını tanıtacağız ve ardından herhangi bir şeyi kıyaslayacak özel bir Bash betiği yazacağız Karşılaştırmaları çalıştırırken bir CPU’nun kısılıp kısılmadığını bilmemiz gerekir ve vcgencmd bize bunu bildirecek komuta sahiptir Saat Hızlarını ÖlçmeHer bilgisayarın birden fazla saat hızı vardır 1 for i in 120 Other Articles
|