перечислить все компоненты компьютера ARM в Linux?


18

У меня есть компьютер на базе ARM, который, кажется, работает нормально под управлением Ubuntu Linux (без графического интерфейса). Как я могу получить список всех компонентов, которые находятся на этом компьютере? как тип чипа Ethernet, чип Wi-Fi, Bluetooth, CPU, чип управления питанием и т. д., если это возможно.

Ответы:


11

Разнообразие реализаций ARM слишком велико, чтобы его можно было покрыть стандартными инструментами.

Копая, /sys/classвы найдете все свои компоненты, но это сложно. Вы не можете использовать, find /sys/class -name nameчтобы найти все компоненты из-за символических ссылок. Вы не можете использовать find -Lиз-за круга ссылки.

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

дает вам некоторое представление об устройствах, но если вы действительно хотите узнать устройства с фактически загруженными драйверами, вам придется читать их вручную dmesg.


Спасибо Филиппос. Я проведу некоторое время с этим и сообщу.
Curious101

8

Для перечисления аппаратного обеспечения в устройствах IoT обычно наиболее полезными командами dmesgявляются: cat /proc/cpuinfoи lsusb.

В большинстве брендов IoT он lsusbоказывается полезным, так как, например, sinovoip (банан) имеет тенденцию подключать большое количество оборудования к контроллеру (ам) USB (ов).

Что касается перечисления ВСЕХ компонентов; это не будет возможно. Не существует надежных методов для перечисления компонентов, подключенных через стандарты GPIO или i2c.

Смотрите примеры для малины:

cat /proc/cpuinfoкроме перечисления всех ядер / потоков (4 из них здесь), в конце перечисляет модель чипсета, ревизию, а на некоторых платах и серийный номер. (Вы должны скользить до конца, чтобы увидеть это)

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

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

В ОП упоминалось «Чип Ethernet, чип Wifi, Bluetooth, процессор, чип управления питанием». Я бы не стал подключать их через USB. Ethernet я делаю в основном с PCIe, WLAN с SDIO или PCIe, Bluetooth с UART и PMIC с I2C / SMbus. Там сложный мир ...
Филиппос

@Philippos Я бы тоже не стал ... Проблема в том, что многие китайские производители делают это в клонах rpi из-за факторов стоимости - Wi-Fi через USB довольно распространен. Я стараюсь держаться подальше от плат, которые реализуют Ethernet и SATA через USB.
Руи Ф. Рибейро

1
Интересно, я не встречал таких. Возможно, потому что я работаю с системами, которые я проектировал сам. Теперь я помню, что видел несколько модулей 802.11ac с портом USB2 и удивлялся, почему кому-то нужен быстрый стандарт с ручным тормозом USB. (-X
Филиппос

Спасибо, Руи. Я потрачу некоторое время на них. Оцените эту мини-дискуссию между Филиппосом и Руи. Это дало мне некоторую полезную информацию о том, что нужно искать. я доложу, потратив некоторое время на это.
Curious101

4

Архитектура ARM не имеет шины PCI. Они используют автобус AMBA.

AMBA

Блок-схема ARM

Dmesg предоставит вам всю необходимую информацию.


1
Я не знаю, какое устройство вы нам показываете, но есть много ARM SoC с PCIe. К сожалению, большинство периферийных устройств, таких как внутренний графический процессор, не используют PCIe, поэтому они не будут отображаться lspci. Итак, хотя первая часть вашего ответа неверна, вторая верна: dmesgэто путь.
Филиппос

Не много, нет. Только у Juno есть PCI-линии. И вы не найдете его ни на одном доступном для потребителя устройстве, так как оно никогда не было популярным, слишком дорогим в производстве и недостаточно популярным. То, что вы видите, это слоты Mini-PCIe. Но они управляются концентратором USB, шины PCI вообще нет. Как это ! один . Это не увидит lspci. Но я готов оказаться неправым, найдите мне доступного потребителя с линиями PCIe.
Симон-Пьер Дубе

Только из ARM SoC, с которыми я в настоящее время работаю: Семейство i.MX6 от Freescale (-> NXP -> Qualcomm), вероятно, самое распространенное SoC в этом классе, имеет PCIe, а также чипы Sitara AM57 * и AM5K * от TI. и Tegra K1 от Nvidia и Snapdragon 600E компании Qualcomm. Потребители могут получить доски для разработчиков, доски сообщества или конечные устройства (например, некоторые Chromebook на базе K1) вместе с ними. Поэтому я не согласен: да, многие. Больше всего в этом классе
Филиппос

1

Команда lshwдает довольно полный список компонентов вашего компьютера.

Вы можете получить его на Ubuntu с apt-get install lshw.


4
Ты никогда не бегал lshwна ручном ящике? Я никогда не видел, чтобы lshwдаже треть компонентов была известна системе через дерево устройств.
Филиппос

1

Чтобы перечислить все компоненты в системе Linux, вы можете использовать:

  • Команда inxiс -optionсм.inxi -h
  • Команда hwinfoпохожа lshwи более детализирована.
  • /procкаталог , который содержит всю информацию о системе, памяти, устройства, аппаратные средства ....

2
Работает ли dmidecodeдаже на ARM? Разве это не зависит от стандартов IBM PC BIOS?
dirkt

1
@dirkt Даже немного. Он работает только на i386, x86_64 и некоторых системах ia64.
сумерки
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.