Jump to content

PCI 情報/DSDTテーブルの取得方法


TennisGeek
 Share

3 posts in this topic

Recommended Posts

このトピックは次に書く DSDT の編集方法への前準備ともいえます。

 

まず、何故 DSDT を編集するのかということから簡単に触れておきます。

ACPI で定義されている DSDT は、マザーボード上にあるデバイスの一覧と、 ACPI イベント(スリープなど)へのデバイスの対応を記述しています。 MacOS では、 EFI を使ってデバイスの一覧やドライバのローディングの情報源として使うのですが、 Chameleon が DSDT / EFI への変換/パッチを行ってくれます。

 

アップルは、自分でハードウェアを作っているので正しい ACPI テーブルを提供しているのですが、多くの PC ハードウェアの ACPI は、 MacOS X が必要とする項目が ACPI テーブルの中に無かったり、また完全に間違っている場合もあります。

ACPI テーブルの間違いは、はっきり言って蔓延していて Linux や FreeBSD などの OS でも問題になることがよくあります。

このため Linux / FreeBSD などでも DSDT テーブルの置き換える方法が存在します。 OSx86 の場合は、 Chameleon がこの面倒を見てくれます。

 

というわけで、未知のマザーボードを使う場合、まず最初にすることは DSDT テーブルを見て、 MacOS X とそのドライバーが必要としている情報がそろっていることを調べます。

 

例えば HDAEnabler.kext などは、 EFI に対して AppleHDA.kext がロードできるのに必要な EFI 情報を書き込むことで、 AppleHDA がロードできます。 DSDT を変更して DSDT.aml (ACPI の DSDT の置き換え)を /Extra/DSDT.aml においておくことで、 Chameleon がブート時に DSDT を置き換えることで HDAEnabler.kext は不要になるということになります。

 

と、長い前置きでした。

 

● 用意するもの

 Ubuntu の live CD をダウンロードして焼く

 [オプション] ここに添付してある Python スクリプトを USB メモリなどにコピーしておく。(Ubuntu live CD が動作している間にダウンロードできるので、必ずしもコピーする必要は無い)

 取得した ACPI を保存する場所 (USB メモリなり、ネットワークのNASなど)

 インターネット ー いくつかの Ubuntu パッケージをインストールするので必ず必要

 

● 手順

 

1.Ubuntu をブートする

 

2.System / Administration / Software Sources 起動して Ubuntu Software タブの

 

Canonical-supported (main)

Community-maintained (universe)

Proprietary (restricted)

Software restricted by copyright (multiverse)

Source code

 

をすべて選択する。 Close ボタンを押すとダイアログが「The iformatio about available software is out-of-date」と出るので、 "Reload" を選ぶ

 

3.Terminal で以下のコマンドを実行

 

sudo aptitude update

sudo aptitude install acpidump

sudo aptitude install zip

 

sudo python acpi-dump.py

 

これで ACPI-Tables-日付.zip が作成される

この zip ファイルにダンプされた ACPI テーブルが全部入っている

このファイルを USB メディアなどにコピーする

 

Ubuntu は USB フラッシュメモリなど自動的にマウントしてくれるので新しいウィンドウが開いた後、Places/Home Folder などからもう一つウィンドウを開いてコピーすればおしまい。

 

ついでに

sudo lspci -vvv -n > pci-list.txt

として pci-list.txt も保存しておきましょう。

PCI デバイスの一覧です.

 

また、

sudo aptitude install pnputils

lspnp -vv > pnp-list.txt

 

で ISA PNP の情報もとっておきます。(ついでだし) パワーボタンなどや HPET の有る無しなどもわかるので、後々必要になる場合があります。(私はありました。)

 

この3つの情報があれば、ハードウェアの情報はすべてカバーできているはずです.

 

-- TG

acpi_dump.py.zip

Link to comment
Share on other sites

  • 7 months later...
sudo python acpi-dump.py

 

ここの記述がよくわかりませんでした。

添付していただいたacpi-dump.pyに

acpidumpの出力を流し込むのだろうと推察しました。

 

acpdump | python acpi-dump.py

ACPI-Tables-2011-02-22-20-17.zip

が作成されました。

Link to comment
Share on other sites

  • 2 weeks later...
ここの記述がよくわかりませんでした。

添付していただいたacpi-dump.pyに

acpidumpの出力を流し込むのだろうと推察しました。

 

acpdump | python acpi-dump.py

ACPI-Tables-2011-02-22-20-17.zip

が作成されました。

 

sudo python acpi-dump.py

 

だけで動作します。

 

スクリプトは dmesg を呼び出して acpi table のアドレスとサイズを取り出して、それを元に複数回 acpidump を呼び出して、個別の acpi テーブルを取り出して、ディレクトリに書き出します。

 

-- TG

Link to comment
Share on other sites

 Share

×
×
  • Create New...