Linuxで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のカスタムカーネルを作成するのに役立ちました。
ローレンス

lsmodの結果を追加しましたが、基本的には何もありません。これは汎用ARMカーネルであるため、特定のモジュールは構築されていません。どのモジュールを構築する必要があるかを見つけようとしていますが、無駄なモジュールでマシンをあふれさせることはありません。
tu-Reinstate Monica-dor du

cat /proc/cpuinfo
マイケルハンプトン

これによりCPU情報のみが得られ、サウンドやビデオチップセットなどのハードウェアの残りの部分は得られません。
tu-Reinstate Monica-dor

使用しているデバイスまたはプラットフォームは何ですか?
ローレンス

回答:


10

あなたが私のコメントに答えた後、ここに私の公式の答えがあります。私はこれのいくつかについてかなり間違っている可能性があり、修正を歓迎します。

IntelがいつPCIe(PCIのソフトウェア互換拡張機能)をCPUに組み込み始めたかはわかりません。ただし、x86が使用されているほとんどの時間は、この方法ではありませんでした。PCIは、実際には「PCプラットフォーム」全体の一部であり、デバイス用の標準ISAポート/ I / Oアドレス/ IRQなど、標準および予想される他の多くのものが含まれています。

PCIが登場する前に少しロールバックしました-基本的に、ISAPNPでPnP標準を導入しようとする中途半端な試みを除き、一部のデバイスでは実際に「プローブ」しませんでした。通常、それらは事前に存在していると想定する必要があります。もちろん、レジスタをテストしたり、期待どおりに応答するかどうかを確認したりすることはできますが、別のデバイスが存在すると問題が発生し、ハングなどが発生する可能性があります。実際に「スキャン」する方法はありませんISAバス。または、実際に標準化された方法でPnPの概念をサポートしない他のバス。

ACPIが解決すべきことの1つは、どのISAデバイスが組み込まれているかを示す情報の表を提供することでした。ACPIの前でさえ、BIOSを調べて、システムにあるフロッピードライブの数を決定します。古いシステムでは、フロッピーが接続されていなくても、WindowsにA:ドライブが表示され、BIOSが設定されていると表示されるのはこのためです。

そのため、最新の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 du


特に、間違ったアーキテクチャを指定するとデバイスが破損する可能性があるため、すべてのアーキテクチャに同等のものがあることを期待していました!特定の質問に答えているので、今のところこれを受け入れていますが、カーネルとソフトウェアでこれらのことを機能させるための情報を見つける方法に関する新しい質問があると思います。
tu-Reinstate Monica-dor du 14年

1

試すことができhwinfoます。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
私はそれがこんなに簡単だったことを望みます。質問を更新しました。少なくともリポジトリの問題がない限り、hwinfoは利用できないようです。さらに、archlinux.org / packagesはARMをリストせず、i686とx86_64のみをリストします。
tu-Reinstate Monica-dor du

raspberry pi / raspianでhwinfoとlshwを試しました-どちらもビデオアダプターを表示しないため、表示できない可能性が高くなります。
ジャーニーマンオタク

0

dmesgはいくつかの情報を提供できます

そして

cat /proc/devices
find /proc

lshwは再構築する価値があります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.