Jump to content

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


  • Please log in to reply
2 replies to this topic

#1
TennisGeek

TennisGeek

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 127 posts
  • Gender:Male
  • Location:Boston 'burb, born in Japan
  • Interests:Tennis, Computer, Mac
このトピックは次に書く 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

Attached Files



#2
blueknight

blueknight

    InsanelyMac Protégé

  • Members
  • Pip
  • 12 posts

sudo python acpi-dump.py


ここの記述がよくわかりませんでした。
添付していただいたacpi-dump.pyに
acpidumpの出力を流し込むのだろうと推察しました。

acpdump | python acpi-dump.py

ACPI-Tables-2011-02-22-20-17.zip
が作成されました。

#3
TennisGeek

TennisGeek

    InsanelyMac Geek

  • Members
  • PipPipPip
  • 127 posts
  • Gender:Male
  • Location:Boston 'burb, born in Japan
  • Interests:Tennis, Computer, Mac

ここの記述がよくわかりませんでした。
添付していただいた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





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

© 2014 InsanelyMac  |   News  |   Forum  |   Downloads  |   OSx86 Wiki  |   Mac Netbook  |   PHP hosting by CatN  |   Designed by Ed Gain  |   Logo by irfan  |   Privacy Policy