liệt kê tất cả các thành phần của một máy tính ARM trong Linux?


17

Tôi có một máy tính dựa trên ARM có vẻ hoạt động ổn định khi chạy Ubuntu Linux (không phải GUI). Làm thế nào để tôi có được một danh sách tất cả các thành phần trên máy tính này? như loại chip Ethernet, chip Wifi, Bluetooth, CPU, chip quản lý nguồn vv nếu có thể.

Câu trả lời:


11

Sự thay đổi của việc triển khai ARM là quá cao để được bao phủ bởi các công cụ tiêu chuẩn.

Đi sâu xuống /sys/classbạn sẽ tìm thấy tất cả các thành phần của mình, nhưng thật khó để làm điều đó. Bạn không thể sử dụng find /sys/class -name nameđể tìm tất cả các thành phần vì các liên kết tượng trưng. Bạn không thể sử dụng find -Lvì các liên kết vòng tròn.

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

cung cấp cho bạn một số ấn tượng về các thiết bị, nhưng nếu bạn thực sự muốn biết các thiết bị có trình điều khiển được tải thực sự, bạn sẽ phải đọc thủ công thông qua dmesg.


Cảm ơn Phi-líp. Tôi sẽ dành thời gian cho việc này và sẽ báo cáo lại.
Tò mò 101

8

Đối với phần cứng niêm yết trong các thiết bị IOT, thường là các lệnh hữu ích nhất sau dmesgcat /proc/cpuinfolsusb.

Trong hầu hết các thương hiệu IoT, lsusbcho thấy bản thân nó hữu ích, ví dụ sinovoip (chuối) có xu hướng kết nối rất nhiều phần cứng với (các) bộ điều khiển USB (s).

Đối với việc liệt kê TẤT CẢ các thành phần; điều đó sẽ không thể Không có phương pháp đáng tin cậy để liệt kê các thành phần được kết nối thông qua các tiêu chuẩn GPIO hoặc i2c.

Xem ví dụ cho quả mâm xôi:

cat /proc/cpuinfo, bên cạnh việc liệt kê tất cả các lõi / luồng (4 trong số chúng ở đây), liệt kê ở cuối mô hình chipset, sửa đổi và trong một số bảng , số sê-ri. (bạn phải trượt cho đến khi kết thúc để xem nó)

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.

OP đã đề cập đến "chip Ethernet, chip Wifi, Bluetooth, CPU, chip quản lý năng lượng". Tôi sẽ không kết nối bất kỳ ai trong số đó thông qua USB. Ethernet tôi làm chủ yếu với PCIe, WLAN với SDIO hoặc PCIe, Bluetooth với UART và PMIC với I2C / SMbus. Đó là một thế giới phức tạp ở dưới đó ...
Philippos

@Philippos Tôi cũng sẽ không ... Vấn đề là nhiều nhà cung cấp Trung Quốc làm điều đó trong các bản sao rpi do yếu tố chi phí - wifi qua USB là khá phổ biến. Tôi có xu hướng tránh xa các bo mạch triển khai Ethernet và SATA qua USB.
Rui F Ribeiro

1
Thật thú vị, tôi đã không gặp như vậy. Có lẽ bởi vì tôi làm việc với các hệ thống do tôi tự thiết kế. Bây giờ tôi nhớ tôi đã thấy một số mô-đun 802.11ac có cổng USB2 và tự hỏi tại sao ai đó có thể muốn tiêu chuẩn nhanh với phanh tay. (-X
Philippos

Cảm ơn bạn. Tôi sẽ dành thời gian cho những thứ này. Đánh giá cao cuộc thảo luận nhỏ giữa Philippos và Rui về điều này. Nó cung cấp cho tôi một số hiểu biết hữu ích về những gì cần chú ý. Tôi sẽ báo cáo lại sau khi dành thời gian cho việc này.
Tò mò 101

4

Kiến trúc ARM không có bất kỳ bus PCI nào. Họ sử dụng xe buýt AMBA.

AMBA

Sơ đồ khối ARM

Dmesg sẽ cung cấp cho bạn hầu hết các thông tin bạn cần.


1
Tôi không biết bạn đang cho chúng tôi xem thiết bị nào, nhưng có rất nhiều SoC ARM ngoài đó có PCIe. Đáng tiếc là hầu hết các thiết bị ngoại vi như GPU bên trong không sử dụng PCIe, vì vậy chúng sẽ không hiển thị với lspci. Vì vậy, trong khi phần đầu tiên của câu trả lời của bạn là sai, thì phần thứ hai là chính xác: dmesglà cách để đi.
Phi

Không nhiều, không. Chỉ Juno mới có làn PCI. Và bạn sẽ không tìm thấy nó trên bất kỳ thiết bị có sẵn nào của người tiêu dùng, vì nó không bao giờ cất cánh, quá đắt để sản xuất và không đủ phổ biến. Những gì bạn có thể thấy là khe cắm Mini-PCIe. Nhưng chúng được điều khiển bởi USB Hub, không có bus PCI nào cả. Như thế này ! một . Nó sẽ không được nhìn thấy bởi lspci. Nhưng tôi đã sẵn sàng để được chứng minh là sai, hãy tìm cho tôi một người tiêu dùng có sẵn với các làn PCIe.
Simon-Pierre Dubé

Chỉ từ các SoC ARM mà tôi hiện đang làm việc với: Gia đình i.MX6 của Freescale (-> NXP -> Qualcomm), có lẽ là SoC phổ biến nhất trong lớp này, cũng có chip PCIe, cũng như chip Sitara AM57 * và AM5K * của TI và Tegra K1 của Nvidia và Snapdragon 600E của Qualcomm. Người tiêu dùng có thể nhận được bảng phát triển hoặc bảng cộng đồng hoặc thiết bị cuối cùng (như một số chromebook dựa trên K1) với những bảng đó. Vì vậy, tôi không đồng ý: Có, nhiều. Hầu hết trong lớp học này
Philippos

1

Các lshwlệnh đưa ra một danh sách khá đầy đủ về các thành phần của máy tính.

Bạn có thể tải nó trên Ubuntu với apt-get install lshw.


4
Bạn đã không bao giờ chạy lshwtrên một hộp cánh tay, phải không? Tôi chưa bao giờ thấy lshwcung cấp thậm chí một phần ba các thành phần được biết đến với hệ thống thông qua cây thiết bị.
Phi

1

Để liệt kê tất cả các thành phần trên hệ thống Linux, bạn có thể sử dụng:

  • Các inxilệnh với -optionseeinxi -h
  • Các hwinfolệnh tương tự lshwvà nhiều hơn nữa.
  • các /procthư mục chứa tất cả các thông tin về hệ thống, bộ nhớ, thiết bị, phần cứng ....

2
Liệu dmidecodecông việc ngay cả trên ARM? Nó không dựa trên các tiêu chuẩn BIOS PC của IBM sao?
dirkt

1
@dirkt Thậm chí không một chút. Nó chỉ hoạt động trên i386, x86_64 và một số hệ thống ia64.
duskwuff
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.