elencare tutti i componenti di un computer ARM in Linux?


18

Ho un computer basato su ARM che sembra funzionare bene con Ubuntu Linux (non GUI). Come posso ottenere un elenco di tutti i componenti presenti su questo computer? come il tipo di chip Ethernet, chip Wifi, Bluetooth, CPU, chip di gestione dell'alimentazione ecc. se possibile.

Risposte:


11

La variazione delle implementazioni ARM è troppo elevata per essere coperta con gli strumenti standard.

Scavando /sys/classtroverai tutti i tuoi componenti, ma è una seccatura farlo. Non è possibile utilizzare find /sys/class -name nameper trovare tutti i componenti a causa dei collegamenti simbolici. Né è possibile utilizzare a find -Lcausa dei collegamenti cerchio.

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

ti dà un'idea dei dispositivi, ma se vuoi veramente conoscere i dispositivi con driver effettivamente caricati, dovrai leggere manualmente i tuoi dmesg.


Grazie Philippos. Trascorrerò del tempo con questo e riferirò indietro.
Curious101,

8

Per elencare l'hardware nei dispositivi IoT, di solito i comandi più utili dopo dmesgsono cat /proc/cpuinfoe lsusb.

Nella maggior parte dei marchi IoT, si lsusbrivela utile, poiché ad esempio sinovoip (banana) tende a collegare gran parte dell'hardware ai controller USB.

Per quanto riguarda l'elenco di TUTTI i componenti; questo non sarà possibile. Non esistono metodi affidabili per elencare i componenti collegati tramite gli standard GPIO o i2c.

Vedi esempi per il lampone:

cat /proc/cpuinfo, oltre a elencare tutti i core / thread (4 di questi qui), elenca alla fine il modello di chipset, la revisione e, in alcune schede , il numero di serie. (devi scorrere fino alla fine per vederlo)

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

E 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.

L'OP ha menzionato "Chip Ethernet, chip Wifi, Bluetooth, CPU, chip di gestione dell'alimentazione". Non collegherei nessuno di questi tramite USB. Ethernet I principalmente con PCIe, WLAN con SDIO o PCIe, Bluetooth con UART e PMIC con I2C / SMbus. È un mondo complesso laggiù ...
Philippos,

@Philippos Non lo farei troppo ... Il problema è che molti venditori cinesi lo fanno in cloni rpi a causa di fattori di costo - il wifi via USB è abbastanza comune. Tendo a stare lontano dalle schede che implementano Ethernet e SATA via USB.
Rui F Ribeiro,

1
Interessante, non l'ho incontrato. Forse perché lavoro con i sistemi che ho progettato da solo. Ora ricordo di aver visto alcuni moduli 802.11ac con porta USB2 e mi chiedevo perché qualcuno potesse desiderare lo standard veloce con freno a mano USB. (-X
Philippos,

Grazie Rui. Trascorrerò del tempo su questi. Apprezzo la mini discussione tra Philippos e Rui su questo. Mi ha fornito alcune informazioni utili su cosa cercare. riferirò dopo aver trascorso del tempo su questo.
Curious101,

4

L'architettura ARM non ha alcun bus PCI. Usano il bus AMBA.

AMBA

Schema a blocchi ARM

Dmesg ti fornirà la maggior parte delle informazioni di cui hai bisogno.


1
Non so quale dispositivo ci stai mostrando, ma ci sono molti SoC ARM là fuori con PCIe. Purtroppo la maggior parte delle periferiche come la GPU interna non usano PCIe, quindi non verranno visualizzate lspci. Quindi, mentre la prima parte della tua risposta è sbagliata, la seconda è corretta: dmesgè la strada da percorrere.
Philippos,

Non molti, no. Solo i Juno hanno corsie PCI. E non lo troverai su alcun dispositivo disponibile per il consumatore, poiché non è mai decollato, troppo costoso da produrre e non abbastanza popolare. Quello che puoi vedere sono gli slot Mini-PCIe. Ma sono guidati dall'hub USB, non esiste alcun bus PCI. Come questo ! uno . Non sarà visto da lspci. Ma sono pronto per essere smentito, trovami un consumatore disponibile con corsie PCIe.
Simon-Pierre Dubé,

Solo dai SoC ARM con cui lavoro attualmente: la famiglia i.MX6 di Freescale (-> NXP -> Qualcomm), probabilmente il SoC più diffuso in questa classe, ha PCIe, così come i chip Sitara AM57 * e AM5K * di TI e Nvidia Tegra K1 e Qualcomm Snapdragon 600E. I consumatori possono ottenere schede di sviluppo o community board o dispositivi finali (come alcuni Chromebook basati su K1) con quelli. Quindi non sono d'accordo: sì, molti. La maggior parte in questa classe
Philippos,

1

Il lshwcomando fornisce un elenco abbastanza completo dei componenti del tuo computer.

Puoi scaricarlo su Ubuntu con apt-get install lshw.


4
Non hai mai corso lshwsu una scatola da braccio, vero? Non ho mai visto lshwfornire nemmeno un terzo dei componenti noti al sistema tramite l'albero dei dispositivi.
Philippos,

1

Per elencare tutti i componenti su un sistema Linux è possibile utilizzare:

  • Il inxicomando con -optionvediinxi -h
  • Il hwinfocomando simile lshwe più dettagliato.
  • la /procdirectory che contiene tutte le informazioni su sistema, memoria, dispositivi, hardware ....

2
Funziona dmidecodeanche su ARM? Non si basa sugli standard BIOS del PC IBM?
Dirkt,

1
@dirkt Neanche un po '. Funziona solo su i386, x86_64 e alcuni sistemi ia64.
duskwuff,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.