Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all
名前
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> によって保守されている。