Tìm thông tin phần cứng trên linux mà không cần lspci


15

Tôi có một thiết bị ARM chạy ArchLinux. Thiết bị dường như không có bất kỳ bus PCI nào, mặc dù nó có USB.

[root@alarm ~]# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
[root@alarm ~]# lspci
pcilib: Cannot open /proc/bus/pci
lspci: Cannot find any working access method.
[root@alarm ~]# 

Tôi muốn tìm những gì các chipset khác có. Ví dụ, tôi biết có một soundcard và card màn hình có khả năng HDMI. Một con chip như vậy sẽ không được đặt trên một dòng USB.

Tôi đã xem cấu hình kernel hiện đang hoạt động trên thiết bị tại /proc/config.gz, nó liệt kê điều này:

#
# Bus support
#
CONFIG_ARM_AMBA=y
# CONFIG_PCI_SYSCALL is not set
# CONFIG_ARCH_SUPPORTS_MSI is not set
# CONFIG_PCCARD is not set

Tôi không biết AMBA là gì. Một tìm kiếm kỹ lưỡng của google trả về mục này trong cơ sở dữ liệu kernel nhưng không có lời giải thích thực tế, ngoài việc không sử dụng nó nếu bạn không biết bạn đang làm gì.

Sử dụng lshw cũng không hiển thị nhiều hơn:

[root@alarm ~]# lshw
alarm                     
    description: Computer
    width: 32 bits
  *-core
       description: Motherboard
       physical id: 0
     *-memory
          description: System memory
          physical id: 0
          size: 307MiB
     *-cpu
          physical id: 1
          bus info: cpu@0
          size: 1008MHz
          capacity: 1008MHz
          capabilities: cpufreq
  *-network
       description: Ethernet interface
       physical id: 1
       logical name: eth0
       serial: 00:01:02:03:04:05
       size: 10Mbit/s
       capacity: 100Mbit/s
       capabilities: ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd autonegotiation
       configuration: autonegotiation=off broadcast=yes driver=wemac driverversion=1.01 duplex=half ip=192.168.1.1 link=yes multicast=yes port=MII speed=10Mbit/s
[root@alarm ~]# 

Dường như không có mô-đun nào trong kernel này được tải:

[root@alarm ~]# lsmod
Module                  Size  Used by
[root@alarm ~]# 

Hơn nữa, hwinfo dường như không có sẵn:

[root@alarm ~]# pacman -Syu
:: Synchronizing package databases...
 core is up to date
 extra is up to date
 community is up to date
 alarm is up to date
 aur is up to date
:: Starting full system upgrade...
 there is nothing to do
[root@alarm ~]# pacman -S hwinfo
error: target not found: hwinfo
[root@alarm ~]# hwinfo
-bash: hwinfo: command not found
[root@alarm ~]# 

Tôi cần biết những con chip nào được sử dụng trên hệ thống này để tôi có thể biên dịch đúng các mô-đun trình điều khiển video, làm cách nào để tìm ra cái gì trên hệ thống không có lspci hoạt động?


Nhiều ARM SOC thực sự không có bus PCI. Không chắc chắn tên của xe buýt nội bộ trên các SOC như vậy là gì, hoặc nếu nó được tiêu chuẩn hóa. Bạn có thể lsmodvà hãy xem các mô-đun hiện có của bạn. Ngoài ra nếu bạn có một hạt nhân làm việc đã biết với một configtệp, bạn có thể sử dụng nó để bắt đầu - và tìm kiếm xung quanh, bởi vì nó sẽ có các mô-đun chính xác được chọn. Rất hữu ích với tôi trong việc tạo ra các hạt nhân tùy chỉnh cho Guruplug.
LawrenceC

Đã thêm kết quả của lsmod, về cơ bản là không có gì. Đây là một hạt nhân ARM chung, vì vậy không có mô-đun cụ thể nào được xây dựng. Tôi đang cố gắng tìm hiểu những mô-đun nào tôi nên xây dựng để tôi không làm ngập máy với các mô-đun vô dụng.
tu-Tái lập Monica-dor duh

cat /proc/cpuinfo
Michael Hampton

Điều đó mang lại cho tôi chỉ thông tin CPU, không phải là phần còn lại của phần cứng, chẳng hạn như âm thanh và video chipset.
tu-Tái lập Monica-dor duh

Thiết bị hoặc nền tảng bạn đang sử dụng là gì?
LawrenceC

Câu trả lời:


10

Đây là câu trả lời chính thức của tôi sau khi bạn trả lời ý kiến ​​của tôi. Tôi có thể khá sai về một số điều này và hoan nghênh sửa chữa.

Tôi không chắc chắn khi Intel bắt đầu kết hợp PCIe (một phần mở rộng tương thích với phần mềm của PCI) vào CPU của họ. Tuy nhiên, nó không phải là cách này trong phần lớn thời gian x86 đã xuất hiện. PCI thực sự là một phần của toàn bộ "nền tảng PC" bao gồm một số thứ khác là tiêu chuẩn và được mong đợi, như cổng ISA / địa chỉ I / O / IRQ tiêu chuẩn cho các thiết bị và những thứ tương tự.

Quay trở lại một chút trước khi PCI xuất hiện - về cơ bản, ngoại trừ nỗ lực hủy bỏ để giới thiệu tiêu chuẩn PnP với ISAPNP, bạn đã không thực sự "thăm dò" một số thiết bị. Bạn thường sẽ cần phải giả định rằng chúng tồn tại trước. Tất nhiên, bạn có thể kiểm tra các thanh ghi và những gì không thấy nếu mọi thứ phản hồi như mong đợi, nhưng sau đó bạn gặp rắc rối nếu có một thiết bị khác ở đó, có thể dẫn đến treo máy, v.v. Thực sự không có cách nào để "quét" xe buýt ISA. Hoặc thực sự là bất kỳ xe buýt nào khác không hỗ trợ các khái niệm PnP theo cách tiêu chuẩn hóa.

Một trong những điều mà ACPI cần phải giải quyết là cung cấp một số bảng thông tin cho bạn biết các thiết bị ISA được tích hợp sẵn. Ngay cả trước khi ACPI, BIOS sẽ được tư vấn để quyết định có bao nhiêu ổ đĩa mềm trong hệ thống. Đây là lý do tại sao trên các hệ thống cũ hơn, ngay cả khi bạn không có kết nối đĩa mềm, bạn sẽ thấy ổ A: trong Windows nếu bạn cài đặt BIOS để nói rằng có một ổ đĩa.

Vì vậy, bạn có thể hỏi cách xác định hoặc giao diện của hệ điều hành hiện đại với chipset PCI. Hầu hết thời gian chipset xuất hiện dưới dạng một thiết bị trên chính bus PCI. Giao diện PCI đăng ký "tồn tại trước" tại các vị trí tiêu chuẩn đã biết trong nền tảng PC. Có thể quét lập trình thông qua tất cả các khe cắm thiết bị và chức năng trong không gian PCI. Không có gì giống như vậy tồn tại cho ISA. Nếu thiết bị ở trên xe buýt có ISA, các thanh ghi sẽ phản hồi khi được tải / lưu trữ và đó là thiết bị. Bạn thực sự không thể nói chuyện với xe buýt.

Ngẫu nhiên, chipset PCI thậm chí có thể có khả năng điều khiển cầu nối "PCI-ISA" và mang một số chức năng PnP lên bus (hoặc bây giờ, LPC). Về phần mình, ISA nói rằng bạn tự mình làm.

Không có nền tảng tiêu chuẩn như vậy cho ARM. Chưa, dù sao đi nữa. Có nhiều nền tảng độc đáo mà CPU ARM chạy trên. Các bus PCI, I2C và SDIO (và có thể nhiều hơn tôi không biết) là điểm chung giữa một số trong số chúng, nhưng một lần nữa, có những nền tảng ARM không có cái nào trong số đó. ACPI không được triển khai trên ARM AFAIK ngoại trừ trên Microsoft Surface RT. Không làm việc với một chiếc xe buýt được tiêu chuẩn hóa hỗ trợ một số khái niệm về PnP, thực sự không có cách nào để "thăm dò" bất cứ điều gì. Bạn cần có sự biết trước bên ngoài hệ thống phần cứng được cho là có ở đó. U-Boot là một bộ tải khởi động ARM thường được sử dụng, yêu cầu hỗ trợ và được xây dựng cho nền tảng cụ thể mà nó có nghĩa là để chạy. Đó là một cái gì đó giống như một tiêu chuẩn, nhưng ngay cả sau đó, nó '

Một số Googling ngắn gọn tiết lộ rằng thiết bị này có chipset video "Mali 400". Tìm kiếm thêm mang đến trang web mã nguồn trình điều khiển GPU Mali . Tôi hơi bất tỉnh về chữ C của mình, nhưng tôi đã nhìn nó. Có vẻ như những gì bạn phải làm là, khi bạn xây dựng trình điều khiển, hãy nói cho nó biết địa chỉ cần đánh để nói chuyện với GPU. Tôi thực sự đã không đắm mình vào nguồn quá sâu nhưng điều đó sẽ không làm tôi ngạc nhiên nếu nó không nói chuyện với xe buýt, mà chỉ tải / lưu trữ trực tiếp từ I / O được ánh xạ bộ nhớ.

Vì vậy, tôi không nghĩ rằng có một câu trả lời chung cho tất cả các nền tảng ARM, thật không may.


Đó là một câu trả lời sâu sắc tuyệt vời. Bạn có biết AMBA là gì không? Tôi không thể tìm thấy bất kỳ tài liệu tham khảo nào bên ngoài nguồn kernel. Nó được liệt kê dưới xe buýt, tho, vì vậy nó phải là một loại xe buýt.
tu-Tái lập Monica-dor duh

@tudor: AMBA có thể có nghĩa là Kiến trúc Bus Vi điều khiển Nâng cao
mpy

Tôi đã hy vọng rằng sẽ có một sự tương đương trên tất cả các kiến ​​trúc, đặc biệt là vì bạn có thể làm hỏng thiết bị nếu bạn chỉ định sai! Tôi đang chấp nhận điều này ngay bây giờ vì nó trả lời câu hỏi cụ thể, tuy nhiên tôi nghĩ rằng một câu hỏi mới là về cách tìm thông tin để làm cho những thứ này hoạt động được nhân và phần mềm.
tu-Tái lập Monica-dor duh

1

Bạn có thể thử hwinfo. Đó là trong repos Arch.

$ hwinfo --gfxcard
08: PCI 02.0: 0300 VGA compatible controller (VGA)              
[Created at pci.318]
Unique ID: _Znp.jjHn_gm8Jz5
SysFS ID: /devices/pci0000:00/0000:00:02.0
SysFS BusID: 0000:00:02.0
Hardware Class: graphics card
Model: "Intel VGA compatible controller"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x0162 
SubVendor: pci 0x1849 "ASRock Incorporation"
SubDevice: pci 0x0162 
Revision: 0x09
Driver: "i915"
Driver Modules: "drm"
Memory Range: 0xf7800000-0xf7bfffff (rw,non-prefetchable)
Memory Range: 0xe0000000-0xefffffff (ro,non-prefetchable)
I/O Ports: 0xf000-0xf03f (rw)
IRQ: 57 (6 events)
Module Alias: "pci:v00008086d00000162sv00001849sd00000162bc03sc00i00"
Driver Info #0:
Driver Status: i915 is active
Driver Activation Cmd: "modprobe i915"
Config Status: cfg=new, avail=yes, need=no, active=unknown

Primary display adapter: #8

1
Tôi rất thích nó đã được đơn giản này. Đã cập nhật câu hỏi. Có vẻ như hwinfo không có sẵn cho tôi, ít nhất, trừ khi tôi gặp vấn đề về kho lưu trữ. Ngoài ra, archlinux.org/packages không liệt kê ARM, chỉ có i686 và x86_64.
tu-Tái lập Monica-dor duh

Đã thử hwinfo và lshw trên raspberry pi / raspian - không hiển thị bộ điều hợp video nên rất có thể bạn sẽ không thể nhìn thấy nó.
Journeyman Geek

0

dmesg có thể cung cấp một số infos

cat /proc/devices
find /proc

lshw nên đáng để thử xây dựng lại

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.