lspci없이 리눅스에서 하드웨어 정보 찾기


15

ArchLinux를 실행하는 ARM 장치가 있습니다. 장치에 USB가 있어도 PCI 버스가없는 것 같습니다.

[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 ~]# 

다른 칩셋이 무엇인지 찾고 싶습니다. 예를 들어 HDMI를 지원하는 사운드 카드와 비디오 카드가 있다는 것을 알고 있습니다. 이러한 칩은 USB 라인에 연결되지 않습니다.

현재 /proc/config.gz의 장치에서 작동하는 커널 구성을 살펴보면 다음과 같습니다.

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

AMBA가 무엇인지 모르겠습니다. google을 철저히 검색하면 커널 데이터베이스에이 항목이 반환되지만 실제 작업 내용을 모르는 경우 사용하지 않는 것 외에는 실제 설명이 없습니다.

lshw를 사용하는 것만으로는 더 이상 보이지 않습니다.

[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 ~]# 

이 커널에로드 된 모듈이없는 것 같습니다 :

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

또한 hwinfo는 사용할 수없는 것 같습니다.

[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 ~]# 

올바른 비디오 드라이버 모듈에서 컴파일 할 수 있도록이 시스템에서 어떤 칩이 사용되는지 알아야합니다. lspci가 작동하지 않는 시스템에서 어떤 칩이 있는지 어떻게 알 수 있습니까?


많은 ARM SOC에는 실제로 PCI 버스가 없습니다. 그러한 SOC의 내부 버스 이름이 무엇인지 또는 표준화되었는지 확실하지 않습니다. lsmod기존 모듈을 살펴볼 수 있습니다. 또한 config파일 과 함께 작동하는 알려진 커널이있는 경우, 올바른 모듈이 이미 선택되어 있기 때문에-로 시작하여 검색 할 수 있습니다. Guruplug를위한 커스텀 커널을 만드는 데 유용했습니다.
LawrenceC

기본적으로 아무것도 아닌 lsmod의 결과를 추가했습니다. 이것은 일반적인 ARM 커널이므로 특정 모듈이 작성되지 않았습니다. 쓸만한 모듈을 찾으려고 노력하고 있는데 쓸모없는 모듈로 기계를 넘치지 않습니다.
tu-Reinstate Monica-dor du

cat /proc/cpuinfo
마이클 햄튼

사운드 및 비디오 칩셋과 같은 나머지 하드웨어가 아닌 CPU 정보 제공합니다 .
tu-Reinstate Monica-dor du

사용중인 장치 또는 플랫폼이 무엇입니까?
LawrenceC

답변:


10

내 의견에 답한 후 공식 답변이 있습니다. 나는 이것 중 일부에 대해 틀릴 수 있고 수정을 환영합니다.

인텔이 언제 PCIe (소프트웨어 호환 PCI 확장)를 CPU에 통합하기 시작했는지 잘 모르겠습니다. 그러나 x86이 있었던 대부분의 시간 동안은 그렇지 않았습니다. PCI는 실제로 전체 "PC 플랫폼"의 일부입니다. 여기에는 장치의 표준 ISA 포트 / I / O 주소 / IRQ 및 이와 유사한 것들과 같이 표준적이고 예상되는 여러 가지가 포함됩니다.

ISAPNP를 사용하여 PnP 표준을 도입하려는 시도를 제외하고는 PCI가 등장하기 전에 약간 롤백했습니다. 실제로 일부 장치에서는 "프로브"하지 않았습니다. 일반적으로 사전에 존재한다고 가정해야합니다. 물론 레지스터를 테스트하고 예상대로 응답하는지 확인할 수 없지만 다른 장치가 있으면 문제가 발생하여 중단 될 수 있습니다. 실제로 "스캔"할 방법이 없었습니다. ISA 버스. 또는 실제로 표준화 된 방식으로 PnP 개념을 지원하지 않는 다른 버스.

ACPI가 해결해야했던 것 중 하나는 ISA 장치가 내장 된 것을 알려주는 정보 테이블을 제공하는 것이 었습니다. ACPI 이전에도 시스템에 몇 개의 플로피 드라이브가 있는지 결정하기 위해 BIOS를 참조했습니다. 이것이 플로피가 연결되어 있지 않더라도 구형 시스템에서 BIOS가 있다고 설정되어 있으면 Windows에 A : 드라이브가 표시되는 이유입니다.

따라서 최신 OS가 PCI 칩셋을 결정하거나 인터페이스하는 방법을 물을 수 있습니다. 대부분의 경우 칩셋은 PCI 버스 자체의 장치로 나타납니다. PCI 인터페이스는 PC 플랫폼의 알려진 표준 위치에 "기존"을 등록합니다. PCI 공간의 모든 장치 및 기능 슬롯을 통한 프로그래밍 방식 스캔이 여기에서 가능합니다. ISA에는 그런 것이 없습니다. 장치가 ISA로 버스에 있으면 레지스터는로드 / 저장 될 때 레지스터가 응답합니다. 버스 자체와는 실제로 대화 할 수 없습니다.

또한 PCI 칩셋은 "PCI-ISA"브리지를 제어하고 PnP 기능 중 일부를 ISA (또는 현재 LPC) 버스로 가져 오는 기능도 제공 할 수 있습니다. ISA는 자체적으로 자신이 있다고 말합니다.

ARM에는 이러한 표준 플랫폼이 없습니다. 어쨌든. ARM CPU에서 실행되는 고유 한 플랫폼이 많이 있습니다. PCI, I2C 및 SDIO 버스 (그리고 아마도 내가 모르는 것)는 그들 사이의 공통점이지만, 그 중 하나도없는 ARM 플랫폼이 있습니다. ACPI는 Microsoft Surface RT를 제외하고 ARM AFAIK에서 구현되지 않습니다. PnP의 개념을 지원하는 표준화 된 버스를 사용하지 않으면 실제로 "프로브"할 방법이 없습니다. 거기에 있어야 할 하드웨어 시스템 외부에 대한 지식이 있어야합니다. U-Boot는 일반적으로 사용되는 ARM 부트 로더이며, 실행하려는 특정 플랫폼을 지원하고 빌드해야합니다. 그것은 표준과 같지만 그때조차도

간단한 인터넷 검색에 따르면이 기기에는 "Mali 400"비디오 칩셋이 있습니다. 추가 검색은 Mali GPU 드라이버 소스 코드 사이트를 제공합니다. 나는 C를 조금 녹슬었지만, 나는 그것을 보았다. 드라이버를 빌드 할 때 GPU와 통신하기 위해 적중해야 할 주소를 알려주는 것입니다. 나는 실제로 소스에 너무 깊이 몰두하지 않았지만 버스와 통신하지 않고 메모리 매핑 I / O에서 직접로드 / 저장하는 경우 놀라지 않을 것입니다.

불행히도 모든 ARM 플랫폼에 대한 일반적인 대답은 없다고 생각합니다.


그것은 대단한 답변입니다. AMBA가 무엇인지 아십니까? 커널 소스 외부에서 이에 대한 참조를 찾을 수 없습니다. 버스 아래에 나열되어 있으므로 일종의 버스 여야합니다.
tu-Reinstate Monica-dor duh


나는 모든 아키텍처에 동등한 것이 있기를 바랐다. 특히 잘못된 것을 지정하면 장치가 손상 될 수 있기 때문에! 특정 질문에 대답하기 때문에 지금은 이것을 받아들이고 있지만, 커널과 소프트웨어에서 작동하는 정보를 찾는 방법에 관한 새로운 질문이라고 생각합니다.
tu-Reinstate Monica-dor du

1

시도해 볼 수 있습니다 hwinfo. 아치 저장소에 있습니다.

$ 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
나는 이것이 간단했던 것을 좋아합니다. 질문을 업데이트했습니다. 적어도 저장소 문제가 없으면 hwinfo를 사용할 수없는 것으로 보입니다. 또한 archlinux.org/packages 에는 ARM이 표시되지 않으며 i686 및 x86_64 만 나열됩니다.
tu-Reinstate Monica-dor du

raspberry pi / raspian에서 hwinfo와 lshw를 사용해 보았습니다. 비디오 어댑터도 표시되지 않으므로 비디오 어댑터를 볼 수 없습니다.
Journeyman Geek

0

dmesg는 몇 가지 정보를 제공 할 수 있습니다

cat /proc/devices
find /proc

lshw는 재건 될 가치가있다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.