Alle Komponenten eines ARM-Computers unter Linux auflisten?

17

Ich besitze einen ARM-basierten Computer, auf dem Ubuntu Linux (keine grafische Benutzeroberfläche) ordnungsgemäß ausgeführt wird. Wie erhalte ich eine Liste aller Komponenten, die sich auf diesem Computer befinden? wie Art des Ethernet-Chips, des Wifi-Chips, des Bluetooths, der CPU, des Energieverwaltungs-Chips usw., wenn möglich.

Curious101
quelle

Antworten:

11

Die Variation der ARM-Implementierungen ist zu groß, um mit den Standardwerkzeugen abgedeckt zu werden.

Wenn /sys/classSie nach unten graben, werden Sie alle Ihre Komponenten finden, aber es ist mühsam, dies zu tun. find /sys/class -name nameAufgrund der symbolischen Verknüpfungen können Sie nicht alle Komponenten finden. Sie können find -Lwegen der Kreisverknüpfungen auch nicht verwenden.

cat /sys/class/*/*/device/*/{,*/,*/*/}name */*/device/*/name|sort -u

gibt Ihnen einen Eindruck von den Geräten, aber wenn Sie die Geräte mit den tatsächlich geladenen Treibern wirklich kennen wollen, müssen Sie Ihre manuell durchlesen dmesg.

Philippos
quelle
Danke Philippos. Ich werde etwas Zeit damit verbringen und werde zurück berichten.
Curious101
8

Für die Auflistung Hardware in IoT - Geräten, in der Regel die wichtigsten Befehle nach dmesgsind cat /proc/cpuinfound lsusb.

In den meisten IoT-Marken lsusbzeigt sich dies als nützlich, da beispielsweise Sinovoip (Banane) dazu neigt, einen Großteil der Hardware an die USB-Controller anzuschließen.

Wie für die Auflistung aller Komponenten; das wird nicht möglich sein. Es gibt keine zuverlässigen Methoden, um Komponenten aufzulisten, die über die GPIO- oder i2c-Standards verbunden sind.

Siehe Beispiele für die Himbeere:

cat /proc/cpuinfoNeben der Auflistung aller Kerne / Threads (4 davon hier) werden am Ende das Chipsatzmodell, die Revision und in einigen Boards die Seriennummer aufgeführt. (Sie müssen bis zum Ende schieben, um es zu sehen)

pi@raspberrypi:~ $ cat /proc/cpuinfo
processor   : 0
model name   : ARMv7 Processor rev 4 (v7l)
BogoMIPS   : 38.40
Features   : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer   : 0x41
CPU architecture: 7
CPU variant   : 0x0
CPU part   : 0xd03
CPU revision   : 4

processor   : 1
model name   : ARMv7 Processor rev 4 (v7l)
BogoMIPS   : 38.40
Features   : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer   : 0x41
CPU architecture: 7
CPU variant   : 0x0
CPU part   : 0xd03
CPU revision   : 4

processor   : 2
model name   : ARMv7 Processor rev 4 (v7l)
BogoMIPS   : 38.40
Features   : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer   : 0x41
CPU architecture: 7
CPU variant   : 0x0
CPU part   : 0xd03
CPU revision   : 4

processor   : 3
model name   : ARMv7 Processor rev 4 (v7l)
BogoMIPS   : 38.40
Features   : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32 
CPU implementer   : 0x41
CPU architecture: 7
CPU variant   : 0x0
CPU part   : 0xd03
CPU revision   : 4

Hardware   : BCM2709
Revision   : a02082
Serial      : 00000000xxxxxxxx

Und lsusb:

$ lsusb
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 005: ID 05dc:a781 Lexar Media, Inc.
Rui F Ribeiro
quelle
Das OP erwähnte "Ethernet-Chip, Wifi-Chip, Bluetooth, CPU, Power-Management-Chip". Ich würde keine davon über USB anschließen. Ethernet mache ich hauptsächlich mit PCIe, WLAN mit SDIO oder PCIe, Bluetooth mit UART und PMIC mit I2C / SMbus. Es ist eine komplexe Welt dort unten ...
Philippos
@Philippos würde ich auch nicht ... Das Problem ist, dass viele chinesische Anbieter es aus Kostengründen in RPI-Klonen machen - WLAN via USB ist ziemlich verbreitet. Ich neige dazu, mich von Boards fernzuhalten, die Ethernet und SATA über USB implementieren.
Rui F Ribeiro
1
Interessant, ich habe solches nicht getroffen. Vielleicht, weil ich mit Systemen arbeite, die ich selbst entworfen habe. Jetzt erinnere ich mich, dass ich einige 802.11ac-Module mit USB2-Anschluss gesehen und mich gefragt habe, warum jemand den schnellen Standard mit USB-Handbremse haben möchte. (-X
Philippos
Vielen Dank, Rui. Ich werde etwas Zeit damit verbringen. Schätzen Sie die Minidiskussion zwischen Philippos und Rui in diesem Fall. Es gab mir einige nützliche Einblicke, wonach ich Ausschau halten sollte. Ich melde mich wieder, nachdem ich einige Zeit damit verbracht habe.
Curious101
4

Die ARM-Architektur hat keinen PCI-Bus. Sie nutzen den AMBA-Bus.

AMBA

ARM-Blockdiagramm

Dmesg gibt Ihnen die meisten Informationen, die Sie benötigen.

Simon-Pierre Dubé
quelle
1
Ich weiß nicht, welches Gerät Sie uns zeigen, aber es gibt viele ARM-SoCs mit PCIe. Leider verwenden die meisten Peripheriegeräte wie die interne GPU kein PCIe, sodass sie nicht mit angezeigt werden lspci. Während also der erste Teil Ihrer Antwort falsch ist, ist der zweite richtig: dmesgist der Weg zu gehen.
Philippos
Nicht viele, nein. Nur die Juno haben PCI-Lanes. Und Sie werden es nicht auf Geräten finden, die für Endverbraucher erhältlich sind, da es nie auf den Markt kam, zu teuer in der Herstellung und nicht populär genug ist. Was Sie sehen können, sind Mini-PCIe-Steckplätze. Sie werden jedoch vom USB-Hub angetrieben, es gibt überhaupt keinen PCI-Bus. So was ! eins . Es wird von lspci nicht gesehen. Aber ich bin bereit, mich zu irren. Finden Sie mir einen Consumer mit PCIe-Lanes.
Simon-Pierre Dubé
Nur von den ARM-SoCs, mit denen ich derzeit arbeite: Die i.MX6-Familie von Freescale (-> NXP -> Qualcomm), wahrscheinlich der am weitesten verbreitete SoC in dieser Klasse, verfügt über PCIe sowie die Sitara AM57 * - und AM5K * -Chips von TI und Nvidias Tegra K1 und Qualcomms Snapdragon 600E. Verbraucher können damit Entwicklungsboards oder Community-Boards oder Endgeräte (wie einige K1-basierte Chromebooks) erhalten. Also stimme ich nicht zu: Ja, viele. Die meisten in dieser Klasse
Philippos
1

Der lshwBefehl enthält eine ziemlich vollständige Auflistung der Komponenten Ihres Computers.

Sie können es auf Ubuntu mit bekommen apt-get install lshw.

Julie Pelletier
quelle
4
Du bist doch noch nie lshwauf einer Armbox gelaufen , oder? Ich habe noch nie gesehen, lshwdass ein Drittel der dem System bekannten Komponenten über den Gerätebaum bereitgestellt wird.
Philippos
1

Um alle Komponenten auf einem Linux-System aufzulisten, können Sie Folgendes verwenden:

  • Der inxiBefehl mit -optionseheninxi -h
  • Der hwinfoBefehl ähnlich lshwund detaillierter.
  • Das /procVerzeichnis, das alle Informationen über das System, den Speicher, die Geräte und die Hardware enthält.
GAD3R
quelle
2
Funktioniert das dmidecodeüberhaupt mit ARM? Verlässt es sich nicht auf IBM PC BIOS-Standards?
Dirkt
1
@dirkt Nicht mal ein bisschen. Es funktioniert nur auf i386-, x86_64- und einigen ia64-Systemen.
Duskwuff