setpci

Autres langues

Langue: ja

Autres versions - même langue

Version: 04 January 2003 (fedora - 25/11/07)

Section: 8 (Commandes administrateur)

名前

setpci - PCI デバイスを設定する

書式

setpci [options] devices operations...

説明

setpci は PCI デバイスの情報を取得したり設定したりするユーティリティである。

全ての数値は 16 進数表記で入力される。

オプション

-v
setpci に情況を詳細に報告させ、設定空間アクセスの詳細な情報を表示させる。
-f
(デバイスが選択されなかったり) 何もすることがなくても、 setpci にエラーを表示させない。 このオプションは広く配布されている設定スクリプトで使うことを意図している。 この設定スクリプトでは、問題としているデバイスが マシンに存在するか否かが確かでないためである。
-D
「デモモード」 -- 実際に実行しないで設定空間アクセスをシミュレートする。 setpci -vD を試してみると、実際に実行する前に どれだけ複雑な setpci 操作のシーケンスが実行されるかを見ることができて、役に立つ。
--version
setpci のバージョンを表示する。 このオプションは単独で使用すべきである。

デバイスの選択

操作のシーケンスの前に、操作の対象としたいデバイスを選択する必要がある。

-s [[<bus>]:][<slot>][.[<func>]]
指定されたバス (bus)・スロット (slot)・機能 (func) のデバイスを選択する。 デバイスの指定の各要素は省略可能で、また "*" は「任意の値」を意味する。 全ての数値は 16 進数で入力する。 例えば、"0:" はバス 0 の全てのデバイスを、 "0" は全てのバスのデバイス 0 で全ての機能を意味し、 "0.3" は全てのバスのデバイス 0 で 3 番目の機能を選択し、 ".4" は各デバイスの 4 番目の機能を選択する。
-d [<vendor>]:[<device>]
指定されたベンダ ID とデバイス ID を持つデバイスを選択する。 両 ID とも 16 進で与えられる。省略も可能である。 また、「任意の値」を意味する "*" を指定することも可能である。

操作

設定レジスタの値を取得するには、単に名前を指定すること (名前を入力してもよいし、 レジスタのアドレスを入力してもよい。 レジスタのアドレスには、オプションとして .B, .W, .L というバイト・ワード・ロングワードのレジスタ長を指定する サフィックスを付けることもできる)。

レジスタを設定するには reg=values と書くこと。 ここで reg はレジスタの情報を取得するのに使ったのと同じ書式であり、 values は指定したアドレスを開始点として書き込むコンマ区切りの値のリストである。

レジスタ名

setpci は以下の設定レジスタ名を認識する。 これらの正確な意味については、PCI バスの仕様を参照するか、 /usr/include/linux/pci.h にあるいくつかのコメントを見よ。

 VENDOR_ID
 DEVICE_ID
 COMMAND
 STATUS
 REVISION
 CLASS_PROG
 CLASS_DEVICE
 CACHE_LINE_SIZE
 LATENCY_TIMER
 HEADER_TYPE
 BIST
 BASE_ADDRESS_0
 BASE_ADDRESS_1
 BASE_ADDRESS_2
 BASE_ADDRESS_3
 BASE_ADDRESS_4
 BASE_ADDRESS_5
 CARDBUS_CIS
 SUBSYSTEM_VENDOR_ID
 SUBSYSTEM_ID
 ROM_ADDRESS
 INTERRUPT_LINE
 INTERRUPT_PIN
 MIN_GNT
 MAX_LAT
 PRIMARY_BUS
 SECONDARY_BUS
 SUBORDINATE_BUS
 SEC_LATENCY_TIMER
 IO_BASE
 IO_LIMIT
 SEC_STATUS
 MEMORY_BASE
 MEMORY_LIMIT
 PREF_MEMORY_BASE
 PREF_MEMORY_LIMIT
 PREF_BASE_UPPER32
 PREF_LIMIT_UPPER32
 IO_BASE_UPPER16
 IO_LIMIT_UPPER16
 BRIDGE_ROM_ADDRESS
 BRIDGE_CONTROL
 CB_CARDBUS_BASE
 CB_CAPABILITIES
 CB_SEC_STATUS
 CB_BUS_NUMBER
 CB_CARDBUS_NUMBER
 CB_SUBORDINATE_BUS
 CB_CARDBUS_LATENCY
 CB_MEMORY_BASE_0
 CB_MEMORY_LIMIT_0
 CB_MEMORY_BASE_1
 CB_MEMORY_LIMIT_1
 CB_IO_BASE_0
 CB_IO_BASE_0_HI
 CB_IO_LIMIT_0
 CB_IO_LIMIT_0_HI
 CB_IO_BASE_1
 CB_IO_BASE_1_HI
 CB_IO_LIMIT_1
 CB_IO_LIMIT_1_HI
 CB_SUBSYSTEM_VENDOR_ID
 CB_SUBSYSTEM_ID
 CB_LEGACY_MODE_BASE
 
 

PCILIB オプション

PCI utilities は PCI カードとやりとりをするために PCILIB (PCI 設定空間にアクセスするための機能を提供する、 プラットフォームに依存せず移植性の高いライブラリ) を用いている。 デフォルトでは、PCILIB はアクセス方法で可能なもののうち最初のものを用い、 何らデバッグメッセージを表示しない。 各々のスイッチには、そのスイッチに対応している ハードウェア/ソフトウェアの設定リストが付随する。
-P <dir>
/proc/bus/pci の代わりに、 <dir> を使った Linux /proc/bus/pci スタイルの設定でアクセスを行わせる。 (Linux 2.1 またはそれ以降でのみ有効)
-H1
インテル設定メカニズム 1 (Intel configuration mechanism 1) を使って、 ハードウェアに直接アクセスする。(i386 及びその互換でのみ有効)
-H2
インテル設定メカニズム 2 (Intel configuration mechanism 2) を使って、 ハードウェアに直接アクセスする。 警告: この方法では各バスの最初の 16 デバイスしか扱えず、 多くの場合殆んど信頼できない。(i386 及びその互換でのみ有効)
-S
PCI アクセスシステムコールを使う。(Alpha/Linux と UltraSparc でのみ有効)
-F <file>
lspci -x の実行結果を格納しているファイルから、全ての情報を取り出す。 ユーザーから提供されたバグ報告の解析に役立つ。 なぜならば、さらなるダンプをユーザーに要求する事なく、 ハードウェアの設定をあなたの好きなやり方で表示する事ができる。 (全てのシステムで有効)
-G
ライブラリのデバッグレベルを上げる。(全てのシステムで有効)

`setpci -d *:* latency_timer=40' レイテンシタイマを 64 (16 進数の 40) に設定する。

`setpci -s 0 device_id vendor_id' 全てのバスのスロット 0 にある デバイスの ID をリストする。

`setpci -s 12:3.4 3c.l=1,2,3' バス 12・スロット 3・機能 4 のデバイスの レジスタ 3c にロングワード 1、レジスタ 3d に 2、 レジスタ 3e に 3 を書き込む。

関連項目

lspci(8)

著者

Linux PCI Utilities は Martin Mares <mj@ucw.cz> に よって保守されている。