PHP: CPU Daten auslesen

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo Leute,

    ich bin gerade dabei in einer kleinen Webanwendung ein paar Betriebsdaten vom Pi zu verarbeiten. Dazu möchte ich unteranderem mit PHP die aktuelle CPU Frequenz auslesen:

    [code=php]$cpuSpeed = round(file_get_contents("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq") / 1000) . "MHz";[/php]

    Jedoch ist die Datei nicht lesbar: Permission Denied.

    Wenn ich mir aber z.B. Raspcontrol herunterlade und installiere werden während der Installation keine Rechte gesetzt. Innerhalb des Tools wird aber die gleiche Zeile verwendet um die aktuelle CPU-Frequenz einzulesen.

    Wie muss die Rechtesetzun erfolgen bzw. wie kann man das Problem lösen?

    Gruß

  • Forumsuche nach: cpu.php
    1.Treffer. Letzte offizielle Version 0.8 in Beitrag#28

    Das auslesen der /sys/ Dateien darf aber eigentlich jeder. Rechte zu ändern bringt nur bis zum nächsten Reboot etwas, da /sys/ ein vom Kernel erzeugtes virtuelles Dateisystem ist.

    Poste mal bitte die Ausgabe folgenden Befehls:

    Code
    ls -la /sys/devices/system/cpu/cpu0/cpufreq/
    
    
    sudo -u www-data cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
    sudo -u www-data cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
  • Nimm mal als Teiler 1024 statt 1000

    [font="Courier New"]
    +--------------------------------+
    1*Raspberry PiB+ > Arch Linux
    1*Raspberry Pi2 > Arch Linux/XFCE
    1*Banana Pi > Arch Linux/XFCE
    +--------------------------------+
    [/font]


  • Nimm mal als Teiler 1024 statt 1000

    Das ist Quatsch da es sich weder um Arbeitsspeicher noch um Festplattenplatz o.ä. handelt.

    Die CPU Freq. / Temperatur durch 1000 zu teilen, um aus "39007" einen Wert von "39,007" zu kriegen, ist absolut korrekt!

    Code
    root@strudel:~# cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
    700000
    root@strudel:~# cat /sys/class/thermal/thermal_zone0/temp
    39007
    root@strudel:~#
  • Folgende Ausgabe erhalte ich bei dem Befehl:

    total 0
    drwxr-xr-x 2 root root 0 Apr 19 08:14 .
    drwxr-xr-x 5 root root 0 Apr 19 08:14 ..
    -r--r--r-- 1 root root 4096 Apr 19 09:19 affected_cpus
    -r-------- 1 root root 4096 Apr 19 09:19 cpuinfo_cur_freq
    -r--r--r-- 1 root root 4096 Apr 19 09:19 cpuinfo_max_freq
    -r--r--r-- 1 root root 4096 Apr 19 09:19 cpuinfo_min_freq
    -r--r--r-- 1 root root 4096 Apr 19 09:19 cpuinfo_transition_latency
    -rw-r--r-- 1 root root 4096 Apr 19 09:19 debug_mask
    -r--r--r-- 1 root root 4096 Apr 19 09:19 related_cpus
    -r--r--r-- 1 root root 4096 Apr 19 09:19 scaling_available_governors
    -r--r--r-- 1 root root 4096 Apr 19 09:19 scaling_cur_freq
    -r--r--r-- 1 root root 4096 Apr 19 09:19 scaling_driver
    -rw-r--r-- 1 root root 4096 Apr 19 08:14 scaling_governor
    -rw-r--r-- 1 root root 4096 Apr 19 09:19 scaling_max_freq
    -rw-r--r-- 1 root root 4096 Apr 19 09:19 scaling_min_freq
    -rw-r--r-- 1 root root 4096 Apr 19 09:19 scaling_setspeed
    -r--r--r-- 1 root root 4096 Apr 19 09:19 user_event_notify

  • Kannst du bitte Ausgaben in CODE posten und auch die anderen Befehle ausführen? Am besten den Beitrag bearbeiten!


    PS: Vielleicht erkennst du jetzt schon den Unterschied. Die Datei cpuinfo_cur_freq besitzt nur Leserechte für den Besitzer, also root, wohingegen die Datei scaling_cur_freq Leserechte für Besitzer, Gruppe und Andere besitzt - zudem steht hier die aktuelle Freq. drin, in der anderen nur die Standardtaktung.

  • @ meigraf:

    Ups, hast natürlich recht, Denkfehler, blamabel

    [font="Courier New"]
    +--------------------------------+
    1*Raspberry PiB+ > Arch Linux
    1*Raspberry Pi2 > Arch Linux/XFCE
    1*Banana Pi > Arch Linux/XFCE
    +--------------------------------+
    [/font]

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!