wyświetlić wszystkie elementy komputera ARM w systemie Linux?

18

Mam komputer oparty na architekturze ARM, który wydaje się działać poprawnie z systemem Ubuntu Linux (bez GUI). Jak uzyskać listę wszystkich składników znajdujących się na tym komputerze? jak typ układu Ethernet, układ Wi-Fi, Bluetooth, procesor, układ zarządzania energią itp., jeśli to możliwe.

Curious101
źródło

Odpowiedzi:

11

Różnorodność implementacji ARM jest zbyt duża, aby można ją było objąć standardowymi narzędziami.

Podczas kopania /sys/classznajdziesz wszystkie swoje komponenty, ale jest to uciążliwe. Nie można użyć find /sys/class -name namedo znalezienia wszystkich składników z powodu dowiązań symbolicznych. Nie możesz używać z find -Lpowodu linków koła.

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

daje pewne wyobrażenie o urządzeniach, ale jeśli naprawdę chcesz poznać urządzenia z faktycznie załadowanymi sterownikami, będziesz musiał ręcznie przeczytać je dmesg.

Philippos
źródło
Dzięki Philippos. Spędzę z tym trochę czasu i zdam relację.
Curious101
8

Aby wyświetlić listę sprzętu w urządzeniach IoT, zwykle najbardziej przydatnymi poleceniami po dmesgcat /proc/cpuinfoi lsusb.

W większości marek Internetu lsusbRzeczy okazuje się przydatny, ponieważ na przykład sinovoip (banan) ma tendencję do podłączania dużej ilości sprzętu do kontrolerów USB (s).

Co do wyszczególnienia WSZYSTKICH składników; to nie będzie możliwe. Nie ma wiarygodnych metod, aby wyświetlić listę komponentów połączonych za pomocą standardów GPIO lub i2c.

Zobacz przykłady malin:

cat /proc/cpuinfo, oprócz wykazów wszystkich rdzeni / wątków (tutaj 4), na końcu podaje model chipsetu, wersję, a na niektórych płytach numer seryjny. (musisz przesuwać do końca, aby to zobaczyć)

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

I 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
źródło
OP wspomniał o „układzie Ethernet, układzie Wi-Fi, Bluetooth, procesorze, układzie zarządzania energią”. Nie podłączałbym żadnego z nich przez USB. Ethernet Robię głównie z PCIe, WLAN z SDIO lub PCIe, Bluetooth z UART i PMIC z I2C / SMbus. Tam jest złożony świat ...
Philippos
@Filippos też nie chciałbym ... Problemem jest to, że wielu chińskich dostawców robi to w klonach rpi ze względu na czynniki kosztowe - Wi-Fi przez USB jest dość powszechne. Zwykle trzymam się z daleka od kart, które implementują Ethernet i SATA przez USB.
Rui F Ribeiro
1
Co ciekawe, takich nie spotkałem. Może dlatego, że pracuję z systemami, które sam zaprojektowałem. Teraz pamiętam, że widziałem niektóre moduły 802.11ac z portem USB2 i zastanawiałem się, dlaczego ktoś może chcieć szybkiego standardu z hamulcem ręcznym USB. (-X
Philippos
Dziękuję Rui. Poświęcę na to trochę czasu. Doceń mini rozmowę między Philippos i Rui na ten temat. Zapewniło mi to przydatny wgląd w to, na co uważać. zgłoś się po spędzeniu trochę czasu na tym.
Ciekawy 101
4

Architektura ARM nie ma magistrali PCI. Używają magistrali AMBA.

AMBA

Schemat blokowy ARM

Dmesg dostarczy Ci najwięcej potrzebnych informacji.

Simon-Pierre Dubé
źródło
1
Nie wiem, które urządzenie nam pokazujesz, ale istnieje wiele układów ARM z PCIe. Niestety większość urządzeń peryferyjnych, takich jak wewnętrzny procesor graficzny, nie korzysta z PCIe, więc nie będą się wyświetlać lspci. Tak więc, chociaż pierwsza część twojej odpowiedzi jest błędna, druga jest poprawna: dmesgjest droga.
Philippos
Nie wielu, nie. Tylko Juno mają linie PCI. I nie znajdziesz go na żadnym urządzeniu dostępnym dla konsumentów, ponieważ nigdy nie wystartował, jest zbyt drogi w produkcji i mało popularny. To, co możesz zobaczyć, to gniazda Mini-PCIe. Ale są napędzane przez koncentrator USB, w ogóle nie ma magistrali PCI. Lubię to ! jeden . Nie zobaczy tego lspci. Ale jestem gotowy, aby udowodnić, że się mylę, znajdź konsumenta dostępnego z liniami PCIe.
Simon-Pierre Dubé
Tylko z układów ARM SoC, z którymi obecnie współpracuję: Rodzina i.MX6 firmy Freescale (-> NXP -> Qualcomm), prawdopodobnie najbardziej rozpowszechniony SoC w tej klasie, ma PCIe, a także układy Tara Sitara AM57 * i AM5K * oraz Tegra K1 Nvidii i Snapdragon 600E Qualcomm. Konsumenci mogą za ich pomocą uzyskać tablice rozwojowe, tablice społecznościowe lub urządzenia końcowe (takie jak niektóre Chromebooki oparte na K1). Więc nie zgadzam się: tak, wielu. Większość w tej klasie
Philippos
1

lshwKomenda daje dość pełną listę komponentów komputera.

Możesz go pobrać na Ubuntu za pomocą apt-get install lshw.

Julie Pelletier
źródło
4
Nigdy nie biegłeś lshwpo ramieniu, prawda? Nigdy nie widziałem lshwdostarczenia nawet jednej trzeciej komponentów znanych systemowi za pośrednictwem drzewa urządzeń.
Philippos
1

Aby wyświetlić listę wszystkich komponentów w systemie Linux, możesz użyć:

  • inxiKomenda z -optionApostolskąinxi -h
  • hwinfoPolecenia podobny do lshwbardziej SZCZEGÓŁOWY.
  • /prockatalog, który zawiera wszystkie informacje o systemie, pamięci, urządzeń, sprzętu ....
GAD3R
źródło
2
Czy działa dmidecodenawet na ARM? Czy to nie opiera się na standardach IBM PC BIOS?
bezpośrednio
1
@dirkt Ani trochę. Działa tylko w systemach i386, x86_64 i niektórych systemach ia64.
duskwuff