Raspberry pi 3 B mit Ubuntu 18.04 Server arm64: welche pi Version

8

Wie kann ich mit Ubuntu 18.04 Server für arm64 herausfinden, welchen Chip ich habe (welche Version von Himbeer-Pi)? Welche Datei kann ich überprüfen oder welchen Befehl kann ich ausführen? / proc / cpuinfo enthält keine nützlichen Informationen, nur einige allgemeine Details ohne Erwähnung des Pi.

Rechnung
quelle
Das cat /proc/cpuinfosollte eine Revisionsnummer erzeugen, die der Karte entspricht. Siehe: raspberrypi.org/documentation/hardware/raspberrypi/…
Terrance
Zumindest für den Ubuntu 18.04-Server nicht. Es heißt nur "Revision: 4".
anvoice
Dies könnte zu einer Sackgasse führen, da das RP kein SMBIOS oder DMI unterstützt, das das Lesen von Board-Informationen ermöglicht. Möglicherweise müssen Sie auch einen Fehler melden, um die Revision in der CPU lesen zu können.
Terrance
Ich denke, Sie haben Recht, dass es sich um einen Fehler handelt. Ich habe jedoch nur mindestens eine Problemumgehung gefunden. Es ist kurz, aber ich werde es als Antwort einfügen, nur für den Fall, dass die Leute es hilfreich finden.
anvoice
Es sieht so aus, als ob Ihre eigentliche Frage lautete: "Auf welchem ​​Raspberry Pi laufe ich?"; in der Erwägung, dass Ihr Titel zu fragen scheint: "Welche CPU hat mein Raspberry Pi?"; daher die Verwirrung in den Antworten. Ich schlage vor, dass Sie Ihre Frage bearbeiten, um den Titel zu ändern.
Roger Lipscombe

Antworten:

10

Zumindest auf dem Ubuntu 18.04-Server für arm64 und mit einem Raspberry Pi 3 B gibt der folgende Befehl das Board einschließlich der Revision:

lshw

Eine weniger ausführliche Ausgabe, die leichter zu lesen ist, ist gegeben durch:

lshw -short

Das gab mir mein Board als "Raspberry Pi 3 B Rev 1.2", was genau das war, was in diesem Fall benötigt wurde.

Rechnung
quelle
9

Der Befehl lscpuist das, wonach Sie suchen. Hier ist eine Beispielausgabe des Befehls (aufgenommen auf meinem Raspberry Pi 3B +):

lscpu

welches die folgende Ausgabe erzeugt:

Architecture:          armv7l
Byte Order:            Little Endian
CPU(s):                4
On-line CPU(s) list:   0-3
Thread(s) per core:    1
Core(s) per socket:    4
Socket(s):             1
Model:                 4
Model name:            ARMv7 Processor rev 4 (v7l)
CPU max MHz:           1200,0000
CPU min MHz:           600,0000
BogoMIPS:              38.40
Flags:                 half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32

Eine weitere Option ist der inxiBefehl (möglicherweise müssen Sie ihn installieren, wenn er nicht vorhanden ist sudo apt install inxi). Verwenden Sie die Flagge -Cwie folgt:

inxi -C

welches die folgende Ausgabe erzeugt:

CPU:       Quad core ARMv7 rev 4 (v7l) (-MCP-) (ARM) 
           clock speeds: max: 1200 MHz 1: 1200 MHz 2: 1200 MHz 3: 1200 MHz 4: 1200 MHz

Um festzustellen, welchen Chip Ihr ​​Board hat, können Sie den Chip auf dem Board sowie die Website des Herstellers auf Informationen und die verschiedenen Verkaufsstellen überprüfen, um technische Details zu erhalten.

Videonauth
quelle
Vielen Dank, das gibt definitiv zusätzliche Informationen. Der Modellname beim Ausführen von lscpu wird jedoch als Cortex A-53 aufgeführt, der sich meiner Meinung nach sowohl auf pi 2 als auch auf pi 3 befindet. Kennen Sie zufällig einen spezifischeren Befehl / eine spezifischere Datei, die zwischen diesen beiden Karten unterscheiden kann?
anvoice
Normalerweise wird der Board-Typ und die Revision auch auf das Board gedruckt, sodass Sie dies möglicherweise überprüfen können, da ich sonst keine Ahnung habe.
Videonauth
Aha. Ich weiß, was mein Board ist, aber ein Bibliotheksverwalter benötigt diese Informationen, um seine Bibliothek an meine Hardware und Software anzupassen. Versucht inxi, gibt es auch nur generische Ausgabe. Ich weiß die Hilfe wirklich zu schätzen.
anvoice
1
Für die Bibliothek, die Sie verwenden möchten, gibt es nur eine Frage. Gibt es eine Bibliothek, die dieselbe Funktion bietet, die Sie benötigen oder nicht? Dies sind die Informationen, die Sie in Bezug auf Ihr Maschinenprogramm erhalten können. Auf Desktop-Computern gibt es möglicherweise mehr Informationen über die CPU-Version. Der Himbeere fehlt diesbezüglich ein wenig, da das Einfügen all dieser Informationen in einige Chips die Kosten erhöht.
Videonauth
1
Das aktuelle inxi (3.0.xx) bietet eine weitaus bessere ARM-Unterstützung als das ältere inxi (2.xx.yy), was Sie meiner Meinung nach in 18-4 finden. Dies wird sein Bestes geben, um einige Informationen über das eigentliche SBC-Gerät selbst zu erhalten. Auf rasberry pi 3 ist das einzige, was es nicht fängt, das mmc-WLAN-Gerät, das zu kompliziert ist, um Daten zu erfassen, aber ansonsten ist der Bericht für pi 3 in neuem Inxi ziemlich vollständig. Legacy Inxi hatte nur rudimentäre ARM-Unterstützung. Vergleichen Sie inxi -Fxxx oder -v7 mit Legacy und Current auf jedem Pi-Gerät und Sie werden sehen, was ich meine.
Lizardx
2

Ich habe versucht, pigpio auf Debian arm64 zu portieren. Am Ende ist mein Versuch fehlgeschlagen, weil ich festgestellt habe, dass der Debian arm64-Kernel die Userbox-Mailbox-Schnittstelle, auf die pigpio angewiesen ist, nicht unterstützt. Dabei habe ich einige Untersuchungen durchgeführt, wie Pis erkannt werden kann Ausführen von Debian arm64-Kerneln. Ich vermute, dass dies auch für Ubuntu Arm64 funktioniert.

Wie Sie festgestellt haben, enthält / proc / cpuinfo nur CPU-Kerninformationen zu diesen Kerneln. Glücklicherweise finden Sie die Informationen an anderer Stelle in / proc

Um zu überprüfen, ob das Gerät ein Pi ist oder nicht, habe ich / proc / device-tree / model überprüft. Diese enthält eine Textzeichenfolge, die das Gerät beschreibt, sodass Fehlalarme unwahrscheinlich sind.

Um den von mir verwendeten Revisionscode / proc / device-tree / system / linux, revision, zu erhalten, enthält dieser den Revisionscode als binäre Ganzzahl im Big-Endian. Es muss also als binäre Ganzzahl aus der Datei ausgelesen und dann in Little-Endian konvertiert werden (ich habe dafür ntohl verwendet).

Sie können meinen Code unter https://github.com/joan2937/pigpio/pull/255/commits/2e229d667fde8a2a881d5aa8482b2bb936b09f26 sehen

Peter Green
quelle
Danke, das habe ich wirklich gesucht.
anvoice