このパッケージについて。 これは、機械がBIOSによって初期化される時に、ACPI BIOSによって 初期化されるメモリエリアに存在するテーブルを読むツールです。 これを、makeすると、 acpitblrd aml 二つの実行形式ができます。 acpitblrd これは、/dev/memにアクセスして物理メモリ空間上にある ACPIテーブルを取得するもので、root権限を必要とします。 RTCではなくBIOSコールInt15h:E820HまたはInt15h:E801Hで カーネルがメモリ容量を取得していなければ動作しない 場合があります。 これを実行すると、 Root System Description Table Fixed ACPI Control Table Differentiated System Description Table Firmware ACPI Control Status を認識して、解釈し、その他の認識されないテーブルは、 データ部分を16進ダンプされます。 Root System Description Tableについては、それ自体は 表示されませんが、データ部分を4オクテットに区切って それぞれのポインタにあるヘッダを認識します。 Fixed ACPI Control Tableについては、Firmware ACPI Control Statusと、Differentiated System Description Table の物理アドレスを表示し、それぞれ解釈ルーチンを呼びます。 Firmware ACPI Control Statusは、スリープ状態の一つで使われる、 データを表示します。 Differentiated System Description Table は、データ領域にあるバイト列をAML(ACPI Machine Language) として解釈します。あとは後述するamlと共通です。 aml これは、ファイルの中のバイトストリームをAMLと解釈して、 ACPIのネームスペースツリーを形成し、その後、コマンド インタプリタに移行します。そのコマンドでネームスペース ツリーを動きまわる事が出来ます。ただし、まだCreate??Field 系の物はネームスペースに認識させる事が出来てません。 このプログラムに食わせるデータは、acpitblrdの中にコメント アウトしてあるコードを生かして作る事が出来ます。いじり方は 敢えて言いません。このパッケージにはdsdt.dat,bx6.dsdt.dat, tecra.dsdt.dat,Armada1700の4つの例があります。 dsdt.dat,bx6.dsdt.datは私が生成した物で、 tecra.dsdt.datはDoug Rabson氏が、 Armada1700はSimon Richter氏(ACPI 4 Linux Project)が 生成した物です。 各コマンドは先頭の一文字のみを解釈し、引数はスペースで 区切られます。以下のコマンドがあります。 1.c 自分の下のネームスペースに移動します。 例: >c _SB_ で、自分の下にある_SB_というネームスペースに 移動します。引数が無い場合は何もしません。 無い名前を指定するとエラーを表示して何もしません。 2.p [] 自分自身のオブジェクトまたは自分の下にぶら下がっている 名前のオブジェクトを表示します。 例: >p Method( (_STA) 0 ) { (ENFG) Store( Byte(1 ) (LDN_) ) AND( (OPT1) Byte(2 ) Local0() ) If( LNot( EQ( Local0() Byte(2 ) ) ) ) { If( (ACTR) ) { (EXFG) Return( Byte(f ) ) } Else() { If( LOR( (IOAH) (IOAL) ) ) { (EXFG) Return( Byte(d ) ) } Else() { (EXFG) Return( Byte(0 ) ) } } } Else() { (EXFG) Return( Byte(0 ) ) } } 3.r 自分自身のオブジェクトがBufferであった場合 そのバイトストリームをリソースエンコーディング されたものと解釈してそのリソースを表示します。 例:略 4.R 自分自身の下を再帰的に手繰って自分以下にある ツリーを表示します。 例:略 5.w 自分の今居る場所を表示します 例: >w \_SB_.PCI0.ISA_.LPT_._PRS. 具体的な例は、typescriptと言うファイルを参照して下さい。 その他 これは、Intel/Microsoft/Toshiba三社提案によるACPIスペック Advanced Configration and Power Interface Specification Revision 1.0α Jul.1 1999を参考に実装されました。現在新しい版が出ていますが、 基本的には変更はありません。この新しい版は現在ACPIのホームページ http://www.teleport.com/~acpi/ で手に入ります。 なお、このコード自体は以下の再配布条件で再配布してください。 /*- * Copyright (c) 1999 Takanori Watanabe * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * * $Id: README,v 1.3 1999/07/06 01:32:02 takawata Exp $ */ 渡辺尊紀 神戸大学大学院自然科学研究科D1情報メディア科学専攻。 Public Key Key fingerprint = 2C 51 E2 78 2C E1 C5 2D 0F F1 20 A3 11 3A 62 2A