TennisGeek Posted July 4, 2010 Share Posted July 4, 2010 このトピックは次に書く 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 More sharing options...
blueknight Posted February 22, 2011 Share Posted February 22, 2011 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 More sharing options...
TennisGeek Posted March 2, 2011 Author Share Posted March 2, 2011 ここの記述がよくわかりませんでした。添付していただいた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 More sharing options...
Recommended Posts