Wie lässt sich unter PetaLinux 2024.2 die CPU-Taktfrequenz eines ZynqMP (Mars XU3) per Shell-Skript auslesen?

Antwort

Um unter PetaLinux 2024.2 die aktuelle CPU-Taktfrequenz eines ZynqMP (z. B. Mars XU3) per Shell-Skript zu ermitteln, kannst du die Informationen aus dem sysfs-Dateisystem auslesen. Die CPU-Frequenz steht für jede CPU in einer Datei wie: ``` /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq ``` Falls das cpufreq-Subsystem nicht aktiv ist, kannst du alternativ die Taktquelle direkt abfragen: ``` /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq ``` Oder, falls diese Dateien nicht existieren, kannst du die Taktinformationen aus dem device tree oder aus `/proc/cpuinfo` extrahieren, wobei letzteres meist nur die maximale Frequenz anzeigt. **Beispiel-Skript:** ```sh #!/bin/sh CPUFREQ_PATH="/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq" if [ -f "$CPUFREQ_PATH" ]; then freq_khz=$(cat $CPUFREQ_PATH) freq_mhz=$((freq_khz / 1000)) echo "Aktuelle CPU-Frequenz: $freq_mhz MHz" else echo "CPU-Frequenzdatei nicht gefunden. Prüfe, ob cpufreq aktiviert ist." fi ``` **Hinweise:** - Die Frequenz wird in kHz ausgegeben, daher die Umrechnung in MHz. - Bei Multi-Core-CPUs kannst du die Zahl hinter `cpu` (z. B. `cpu1`, `cpu2`, ...) anpassen. - Falls die Datei nicht existiert, ist das cpufreq-Subsystem evtl. nicht aktiviert oder nicht im Kernel konfiguriert. **Weitere Infos:** - [PetaLinux Dokumentation](https://docs.xilinx.com/r/en-US/ug1144-petalinux-tools-reference-guide) - [Mars XU3 Board (Enclustra)](https://www.enclustra.com/en/products/system-on-chip-modules/mars-xu3/) **Zusammenfassung:** Die CPU-Taktfrequenz eines ZynqMP unter PetaLinux lässt sich am einfachsten per `cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq` auslesen. Ein Shell-Skript kann dies automatisieren und die Ausgabe formatieren.

KI fragen