daftar semua komponen komputer ARM di Linux?

18

Saya memiliki komputer berbasis ARM yang tampaknya berfungsi dengan baik menjalankan Ubuntu Linux (non GUI). Bagaimana cara saya mendapatkan daftar semua komponen yang ada di komputer ini? seperti jenis chip Ethernet, chip Wifi, Bluetooth, CPU, chip manajemen daya dll jika memungkinkan.

Curious101
sumber

Jawaban:

11

Variasi implementasi ARM terlalu tinggi untuk ditutupi dengan alat standar.

Menggali /sys/classAnda akan menemukan semua komponen Anda, tetapi sulit untuk melakukannya. Anda tidak dapat menggunakan find /sys/class -name nameuntuk menemukan semua komponen karena tautan simbolik. Anda tidak dapat menggunakan find -Lkarena tautan lingkaran.

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

memberi Anda kesan tentang perangkat, tetapi jika Anda benar-benar ingin tahu perangkat dengan driver yang benar-benar dimuat, Anda harus membaca secara manual melalui dmesg.

Filipos
sumber
Terima kasih Philippos. Saya akan menghabiskan waktu dengan ini dan akan melaporkan kembali.
Curious101
8

Untuk daftar perangkat keras di perangkat IoT, biasanya perintah yang paling berguna setelah dmesgadalah cat /proc/cpuinfodan lsusb.

Dalam sebagian besar merek IoT, lsusbmengungkapkan dirinya berguna, seperti misalnya sinovoip (pisang) cenderung menghubungkan banyak perangkat keras ke pengontrol USB.

Adapun daftar SEMUA komponen; itu tidak mungkin. Tidak ada metode yang dapat diandalkan untuk mendaftar komponen yang terhubung melalui standar GPIO atau i2c.

Lihat contoh untuk raspberry:

cat /proc/cpuinfo, selain daftar semua inti / utas (4 di sini), daftar di akhir model chipset, revisi, dan di beberapa papan , nomor seri. (Anda harus meluncur sampai akhir untuk melihatnya)

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

Dan 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
sumber
OP menyebutkan "chip Ethernet, chip Wifi, Bluetooth, CPU, chip manajemen daya". Saya tidak akan menghubungkan semua itu melalui USB. Ethernet I dilakukan terutama dengan PCIe, WLAN dengan SDIO atau PCIe, Bluetooth dengan UART dan PMIC dengan I2C / SMbus. Ini adalah dunia yang kompleks di bawah sana ...
Philippos
@ Pilipos Saya tidak akan terlalu ... Masalahnya adalah bahwa banyak vendor Cina melakukannya di klon rpi karena faktor biaya - wifi melalui USB cukup umum. Saya cenderung menjauh dari papan yang mengimplementasikan Ethernet dan SATA melalui USB.
Rui F Ribeiro
1
Menarik, saya tidak bertemu seperti itu. Mungkin karena saya bekerja dengan sistem yang saya rancang sendiri. Sekarang saya ingat saya melihat beberapa modul 802.11ac dengan port USB2 dan bertanya-tanya mengapa seseorang bisa menginginkan standar cepat dengan rem tangan USB. (-X
Philippos
Terima kasih Rui. Saya akan meluangkan waktu untuk ini. Hargai diskusi mini antara Philippos dan Rui yang satu ini. Ini memberi saya beberapa wawasan bermanfaat tentang apa yang harus diwaspadai. saya akan melaporkan kembali setelah menghabiskan waktu untuk hal ini.
Curious101
4

Arsitektur ARM tidak memiliki bus PCI. Mereka menggunakan bus AMBA.

AMBA

Diagram Blok ARM

Dmesg akan memberi Anda sebagian besar informasi yang Anda butuhkan.

Simon-Pierre Dubé
sumber
1
Saya tidak tahu perangkat mana yang Anda tunjukkan kepada kami, tetapi ada banyak ARM SoC di luar sana dengan PCIe. Sayangnya sebagian besar periferal seperti GPU internal tidak menggunakan PCIe, sehingga tidak akan terlihat lspci. Jadi, sementara bagian pertama dari jawaban Anda salah, yang kedua benar: dmesgadalah cara untuk pergi.
Philippos
Tidak banyak, tidak. Hanya Juno yang memiliki jalur PCI. Dan Anda tidak akan menemukannya di perangkat konsumen yang tersedia, karena tidak pernah lepas landas, terlalu mahal untuk diproduksi dan tidak cukup populer. Yang bisa Anda lihat adalah slot Mini-PCIe. Tetapi mereka didorong oleh USB Hub, tidak ada bus PCI sama sekali. Seperti ini ! satu . Itu tidak akan terlihat oleh lspci. Tetapi saya siap untuk terbukti salah, temukan saya konsumen yang tersedia dengan jalur PCIe.
Simon-Pierre Dubé
Hanya dari ARM SoC yang saat ini saya bekerja dengan: Keluarga i.MX6 oleh Freescale (-> NXP -> Qualcomm), mungkin SoC paling luas di kelas ini, memiliki PCIe, juga chip Sitara AM57 * dan AM5K * TI dan Tegra K1 Nvidia dan Snapdragon 600E Qualcomm. Konsumen bisa mendapatkan papan pengembangan atau papan komunitas atau perangkat akhir (seperti beberapa Chromebook berbasis K1) dengan itu. Jadi saya tidak setuju: Ya, banyak. Paling banyak di kelas ini
Filipi
1

The lshwperintah memberikan daftar yang cukup lengkap komponen komputer Anda.

Anda bisa mendapatkannya di Ubuntu dengan apt-get install lshw.

Julie Pelletier
sumber
4
Anda tidak pernah berlari lshwdengan kotak lengan, bukan? Saya tidak pernah melihat lshwbahkan memberikan sepertiga dari komponen yang dikenal ke sistem melalui pohon perangkat.
Philippos
1

Untuk membuat daftar semua komponen pada sistem Linux, Anda dapat menggunakan:

  • The inxiperintah dengan -optionlihatinxi -h
  • The hwinfoperintah yang mirip dengan lshwdan lebih detailled.
  • yang /procdirektori yang berisi semua informasi tentang sistem, memori, perangkat, hardware ....
GAD3R
sumber
2
Apakah dmidecodebahkan bekerja pada ARM? Bukankah itu bergantung pada standar IBM PC BIOS?
dirkt
1
@ Simpt Bahkan tidak sedikit. Ini hanya bekerja pada i386, x86_64, dan beberapa sistem ia64.
duskwuff