ACPI-Support auf dem Extensa 4101WLMi

Zunächst möchte ich erst einmal beschreiben was man unter ACPI versteht. Das Advanced Configuration and Power Interface (ACPI) ist ein offener Industriestandard für die Energieverwaltung in Desktop-Computern, Notebooks und Servern. Er wird federführend von den Firmen Hewlett-Packard, Intel, Microsoft, Phoenix und Toshiba entwickelt und stellt diue Schnittstellen zur Hardware-Erkennung, Gerätekonfiguration und ein Energiemanagement zur Verfügung. Die Kontrolle über das Energiemanagement liegt dabei, anders als beim älteren APM-Standard, komplett in den Händen des Betriebssystems, das einen besseren Überblick über den momentanen Leistungsbedarf und die Sparmöglichkeiten in einem Rechner hat als das hardwareorientierte BIOS. Mit ACPI ist das BIOS des Rechners nur noch für die Details der Kommunikation mit der Hardware verantwortlich, die Kontrolle liegt aber beim Betriebssystem. Gegenüber APM werden weitergehende Möglichkeiten zum Energiesparen angeboten.

Systembeschreibungs-Tabellen

BIOS und Chipsatz stellen nun eine Reihe von Tabellen zur Verfügung, die das System und seine Komponenten beschreiben oder Routinen anbieten, welche das Betriebssystem aufrufen kann. Sie sind teilweise in Form eines speziellen Bytecodes hinterlegt, der ACPI Machine Language (AML). Sie können mit einem Compiler und einem Disassembler zwischen dieser maschinenlesbaren Form und der menschenlesbaren ACPI Source Language (ASL) hin- und herübersetzt werden. Die benötigten Software-Tools werden kostenlos zum Download von Intel oder Microsoft angeboten, so dass es für Leute mit ASL-Kenntnissen möglich ist, fehlerhafte Tabellen, hier vor allem die so genannte DSDT (Differentiated System Description Table) selbst zu reparieren. Fehlerhafte Tabellen führen besonders unter alternativen Betriebssystem wie LINUX oder xBSD zu Problemen, da einige Hauptplatinenhersteller ihre Tabellen nur unter Microsoft Windows testen. Die Microsoft-ACPI-Implementation ist dafür bekannt, an einigen Stellen nicht buchstabengetreu den Standard zu befolgen, so dass eventuelle Probleme den Herstellern nicht auffallen. Die zwei häufigsten Fehler sind, dass die Tabellen davon ausgehen, dass die Hauptplatine in jedem Fall nur unter Microsoft Windows laufen wird oder sie in bestimmten Funktionen keinen Wert zurückgeben (impliziter Return). Die ACPI-Implementationen der freien Betriebssysteme müssen um diese Fehler herumarbeiten.

Folgende Tabellen existieren:

  • RSDP (Root System Description Pointer)
  • RSDT (Root System Description Table)
  • DSDT (Differentiated System Description Table)
  • XSDT (Extended System Description Table)
  • FADT (Fixed ACPI Description Table)
  • FACS (Firmware ACPI Control Structure)
  • SBST (Smart Battery Table)
  • ECDT (Embedded Controller Boot Resources Table)
  • SRAT (System Resource Affinity Table)
  • SLIT (System Locality Distance Information Table)

Eigenen Kernel mit ACPI-Support bauen

Wie man einen Kernel unter Debian GNU/Linux kompiliert habe unter dem Thema "Kernel kompilieren" beschrieben. Und hierauf werde ich das weitere Vorgehen auch aufbauen.

 

 

IT-LINUXMAKER


70376 Stuttgart
James-F.-Byrnes-Strasse 9

fon: +49(0)7 11 - 806 31 12
fax: +49(0)7 11 - 806 31 69

Aktualisiert am 02.12.2007

 

Corporate Identity Left

Corporate Identity Right