ACPI steht für Advanced Configuration and Power Interface. APIC ist ein Advanced Programmable Interrupt Controller.
So weit, so gut ..
wenn mein Notebook einen APIC hätte, hätte ich wohl keine Probleme.
Laptops mit APIC (oder aktiviertem APIC) sind recht selten ;-)
Kurze Erklärung was ich bisher über ACPI rausfinden konnte: ACPI arbeitet streng mit dem BIOS zusammen
ACPI stellt einen Teil des BIOS dar. Man muss sich das so vorstellen, dass im BIOS ein Commando-Interpreter integriert ist, welcher einen speziellen ACPI-Code in sehr kryptischer Form zur Laufzeit interpretieren kann.
z.B. bei mir NoteBIOS von Phoenix in der Version 4.0 Release 6.0. Im BIOS steht welcher Interrupt dem Device zugeiesen wurde, das ist bie mir IRQ 10 für NIC, Sound, PCMCIA und diverse andere Geräte. richtig gelesen immer der gleiche für fast alles.
Was im BIOS zugewiesen wird, hat meist nur wenig damit zu tun, was das PnP-fähige Betriebssystem hinterher daraus macht. Die PnP Tabelle kann ja von einem entsprechendem Betriebssystem beliebig überschrieben werden.
Hintergrund: Die Hardwarehersteller mussten sich was einfallen lassen um all die vilen Geräte mit Interrupts zu versorgen. So hat man sich ein System erdacht die 16 Stücker so oft wie möglich zu teilen, per Software !
Das ist nicht ganz richtig. IRQ-Sharing ist seit Erfindung des PCI-Busses ein wesentlicher Bestandteil von PCI-Systemen, und seit PCI 2.1 mandatory für PCI-Systeme. Trotzdem gibt es immer noch Device-Hersteller, die sich nicht dran halten. Gutes Beispiel hierfür sind Framegrabber-Karten mit älteren Brooktree-Chips drauf. Vergleicht man Geräte nun mit und ohne ACPI, dann wird man feststellen, dass Geräte ohne ACPI versuchen über den PnP Mechanismus alle PCI-Devices möglichst über den gesammten verfügbaren Bereich zu verteilen. ACPI Konfigurationen dagegen fassen alle Devices unter einem Interrupt zusammen. Laut ACPI-Specification ist das übrigens IRQ 9. Das hat den Hauptzweck, dass alle Device über den zugehörigen IRQ9-Handler geführt werden. So kann der ACPI-Mechanismus die Kontrolle über das System haben, ohne sich in jeden einzelnen Handler einzeln einklinken zu müssen. Schliesslich sind für ACPI bestimmte Schittstellen im Handler (Treiber) definiert, damit ACPI überhaupt funktionieren kann. Diese Vorgaben sind penibel einzuhalten, sonst passiert es schon mal, dass ein System schlafen geschickt wird, aber nicht wieder aufwacht.
ACPI ist Teil des LINUX Kernels, funktioniert aber leider bei mir nicht.
Was nicht unbedingt am Linux-Kernel liegen muss. Nicht jede ACPI-Implementierung im BIOS ist vollständig oder überhaupt lauffähig. Die einschlägigen Tests in den verschiedenen Zeitschriften zeigen ja regelmässig ein entsprechendes Bild.
(Übrigens der neue ALDI-Rechner basiert auch auf ACPI)
Jedes aktuelle Board behauptet derzeit von sich, ACPI zu unterstützen, die wenigsten allerdings bieten eine vollständige Implemantation aller Sx-Modes ;-) Bei der Komplexität der ganzen Thematik ist es eigentlich auch fast gar nicht möglich, in einem modularen System wie einem PC mit Einsteckkarten einen vollständigen Support zu realisieren. Das geht eigentlich mit vertretbarem Aufwand nur in geschlossenen Systemen.
Hab schon versucht die Interrupts per TweakBIOS händisch zu setzen. Die wirkung ist verherrend.
;-) Best Jens