Wie prüft ein Programm, ob es auf einem 512MB RPi läuft?


12

Haben die 512-MB-RPIs eine andere Board-Revision?

/proc/cpuinfoKannst du dir also die Revision in ansehen, um festzustellen, ob du ein 512MB RPi hast?

Ansonsten, was ist der einfachste Weg zu überprüfen?


Beachten Sie, dass Sie letztendlich nicht viel mit dem Wissen anfangen können, es sei denn, Sie schreiben ein Tool zum Ändern der Startdateien oder möchten dem Benutzer lediglich mitteilen, über welche Startdateien er verfügt oder ob seine aktuelle Startkonfiguration die Hardware voll ausnutzt. Ein Anwendungsprogramm auf dem ARM unter dem Linux-Kernel kann den zusätzlichen Speicher nur nutzen, wenn er vom GPU-Startcode gewährt wurde.
Chris Stratton

Antworten:


10

Wie Sie sagten, cat /proc/cpuinfo | grep Revisiongibt Ihnen der Befehl die Board-Revision. Bitte beachten Sie, dass die Revision ein Hexadezimalwert ist. Führen Sie diesen Befehl aus printf '%d\n' 0x#, #um das Dezimaläquivalent anzuzeigen. Dabei handelt es sich um den Hexadezimalwert, der mit dem vorherigen Befehl angezeigt wurde.

Gemäß der folgenden Tabelle stehen die Codes 13 , 14 und 15 für die 512-MB- Karte .

Model and revision                                          Decimal code(s)     Hexadecimal equivalent
Model B Revision 1.0                                        2                   0x2
Model B Revision 1.0 + ECN0001 (no fuses, D14 removed)      3                   0x3
Model B Revision 2.0                                        4, 5, 6             0x4, 0x5, 0x6
Model B Revision 2.0 (512 MB)                               13, 14, 15          0xd, 0xe, 0xf

Quelle: Dokumentation der Element14-Community


1
Denken Sie daran, dass sich dies in Zukunft ändern kann. Ich bin sicher, dass die Codes 13, 14, 15 immer bedeuten, dass Sie 512 MB RAM haben, aber es können auch andere sein. Und dann ist es keine gute Idee anzunehmen, dass alle Codes> 13 512 MB haben, da wir nur nicht wissen, ob das wahr ist. Es sollte also nicht in Skripten usw. verwendet werden
Krzysztof Adamski

1
Mein Pi kam in einer Box mit einem Aufkleber mit der Aufschrift "512 MB RAM" in großen Buchstaben, /proc/cpuinfosagt aber Revision : 0005. Ich 2012-09-18-wheezy-raspbian.ziphttp://www.raspberrypi.org/downloads
boote

@ RedGrittyBrick: Gleiches für mich. Ich habe gestern meinen Pi erhalten und laut offiziellem Blog habe ich eine 512 MB RAM-Version (auf dem Chip ist "4G" zu sehen). cat /proc/cpuinfoGibt aber die Revision 5 zurück. Ist die Revision im SoC nicht festgeschrieben? Benötigt Raspian ein Update, um die 512-MB-RAM-Version zu "erkennen"?
Morgan Courbet

@Morgan: Wie bei Ihnen ist der oberste Chip (RAM) auf der CPU meines Pi mit Samsung K4P4G324EB gekennzeichnet, und laut Samsung ist dies "128Mx32" = 4 GBit = 512 MB. Ich habe irgendwo in einem Forum einen Artikel gelesen, der vorschlug, dass ein Firmware-Update erforderlich ist (ich denke, dies ist eine der Dateien auf der SD-Karte)
RedGrittyBrick

@ RedGrittyBrick: Ich habe jetzt Revision: 000f. Vermutlich ein neuer dist-upgrade.
Morgan Courbet

7

In einem modernen Betriebssystem wie Linux müssen Sie wirklich prüfen, wie viel Speicher für die allgemeine Verwendung verfügbar ist. Das ist möglicherweise weniger als die physikalisch installierte Gesamtmenge. Ein 512-MB-Pi, auf dem eine für 256 MB bestimmte Installation ausgeführt wird, stellt Ihnen diesen Speicher nicht zur Verfügung.

Dann gibt es auf der pi das weitere Problem der Aufteilung von CPU- und GPU-Speicher - etwas, das wesentlich geringer ist, als der derzeitige Speicher, der zum Zeitpunkt des Starts von Linux für die Verwendung der ARM-CPU zur Verfügung steht, da der GPU-Startvorgang bereits ausgeführt wurde beanspruchte eine erhebliche Menge als die verwendete start.elf-Datei bestimmt.

Um die direkte Frage zu beantworten, sollten Sie in der ersten Zeile /proc/meminfooder im freeBefehl erfahren, wie viel physischer Speicher für Linux insgesamt verfügbar ist.

Wie viel Speicher für eine bestimmte Anwendung verfügbar ist, ist wiederum komplizierter - der Kernel, die Puffer und andere Anwendungen beanspruchen Speicher. Und obwohl dies mit einer SD-Karte als einziger "Festplatte" vielleicht nicht üblich ist, könnte eine Swap-Partition dazu führen, dass der verfügbare virtuelle Speicher den physischen RAM überschreitet.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.