BACK ..
Advanced Power Management (APM) / Advanced Configuration and Power Interface (ACPI) =================================================================================== Advanced Power Management (APM) ------------------------------- Im eigenen Kernel muss APM durch einen Eintrag wie folgt aktiviert werden: Intel: device apm0 VIA: (VIA VT82C586B,596,686A and VT8233 SMBus controllers) device viapm -------------------------------------------------------------------------------- Der Standard-Kernel (GENERIC) kennt APM, es muss aber erst aktiviert werden. In der GENERIC-Datei ist der APM-Eintrag deaktiviert (device apm0 at nexus? disable flags 0x20). Das APM wird mit dem Standeard-Kernel (ohne einen eigenen zu bauen) in der Datei "/boot/kernel.conf" mit dem Eintrag: enable apm0 sowie in der Datei "/etc/rc.conf" mit dem Eintrag: apm_enable="YES" aktiviert. -------------------------------------------------------------------------------- Jetzt laesst sich der Rechner mit /sbin/halt -p ausschalten oder mit apm -z in den Suspend-Modus versetzen. Siehe "man apm" ################################################################################ Das Advanced Power Management (APM) steuert den Energieverbrauch eines Systems auf Basis der Systemaktivität. Das APM-BIOS wird von dem Hersteller des Systems zur Verfügung gestellt und ist auf die spezielle Hardware angepasst. Der APM-Treiber des Betriebssystems greift auf das APM Software Interface zu, das den Energieverbrauch regelt. Das APM hat hauptsächlich vier Probleme. Erstens läuft die Energieverwaltung unabhängig vom Betriebssystem in einem (herstellerspezifischen) BIOS. Beispielsweise kann das APM-BIOS die Festplatten nach einer konfigurierbaren Zeit ohne die Zustimmung des Betriebssystems herunterfahren. Zweitens befindet sich die ganze APM-Logik im BIOS; das Betriebssystem hat gar keine APM-Komponenten. Bei Problemen mit dem APM-BIOS muss das Flash-ROM aktualisiert werden. Diese Prozedur ist gefährlich, da sie im Fehlerfall das System unbrauchbar machen kann. Zum Dritten ist APM eine Technik, die herstellerspezifisch ist und nicht koordiniert wird. Fehler im BIOS eines Herstellers werden nicht unbedingt im BIOS anderer Hersteller korrigiert. Das letzte Problem ist, dass im APM-BIOS nicht genügend Platz vorhanden ist, um eine durchdachte oder eine auf den Zweck der Maschine zugeschnittene Energieverwaltung zu implementieren. Das Plug and Play BIOS (PNPBIOS) war ebenfalls unzureichend. Das PNPBIOS verwendet eine 16-Bit-Technik. Damit das Betriebssystem das PNPBIOS ansprechen kann, muss es in einer 16-Bit-Emulation laufen. Nachfolger von APM ist ACPI. Advanced Configuration and Power Interface (ACPI) ist ein Standard verschiedener Hersteller, der die Verwaltung von Hardware und Energiesparfunktionen festlegt. Die ACPI-Funktionen können von einem Betriebssystem gesteuert werden. ################################################################################ Advanced Configuration and Power Interface (ACPI) ------------------------------------------------- (http://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/acpi-overview.html) Die APM- und ACPI-Module schliessen sich gegenseitig aus! Es kann also entweder das APM-Modul oder das ACPI-Modul geladen werden. Das bedeutet, es kann nur einen geben... Konfiguration ------------- Es wird dringend emfohlen, die ACPI-Unterstützung nicht in den Kernel einzukompilieren. (Normalerweise bevorzuge ich immer das einkompilieren!) Also laden wir das Modul "acpi.ko". Das hinzuladen des Modul's im laufenden Betrieb ist gefährlich, da dies sogar manchmal fatale Folgen haben kann. Also laden wir es mit dem Kernel zusammen durch den "loader": vi /boot/loader.conf.local acpi_load="YES" Alternativ kann man auch bei jedem Rechnerstart im Loader-Menü mit dem Menüpunkt "2" starten, der lädt das ACPI-Modul auch... Aber sitzt schon beim Startvorgang IMMER vor der Kiste? ;-) APM sollte abgeschaltet sein, und auch nicht im Kernel mit einkompiliert sein. vi /etc/rc.conf apm_enable="NO" apmd_enable="NO" Ob das ACPI-Modul geladen ist, findet man mit "dmesg" raus. z.B.: dmesg | grep -i acpi Preloaded elf module "/boot/kernel/acpi.ko" at 0xc08791f4. acpi0:on motherboard acpi0: Power Button (fixed) Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0 acpi_cpu0: port 0x530-0x537 on acpi0 acpi_tz0: port 0x530-0x537 on acpi0 ... Jetzt funktioniert zum Beispiel "halt -p", der Rechner sollte mit diesm Kommando nicht nur runterfahren sondern auch den Strom abschalten. Weitere Einstellungen können, als root, auf der Kommandozeile mit "acpiconf" vorgenommen werden. Dieses Kommando zeigt die vom System unterstützten ACPI-Funktionen an: sysctl -a | grep hw.acpi. hw.acpi.supported_sleep_state: S3 S4 S5 hw.acpi.power_button_state: S5 hw.acpi.sleep_button_state: S1 hw.acpi.lid_switch_state: S1 hw.acpi.standby_state: S1 hw.acpi.suspend_state: S3 hw.acpi.sleep_delay: 5 hw.acpi.s4bios: 0 hw.acpi.verbose: 0 hw.acpi.disable_on_poweroff: 1 hw.acpi.reset_video: 1 hw.acpi.cpu.cx_supported: C1/0 C2/90 hw.acpi.cpu.cx_lowest: 0 hw.acpi.cpu.cx_history: 38027/0 0/0 hw.acpi.thermal.min_runtime: 0 hw.acpi.thermal.polling_rate: 30 hw.acpi.thermal.tz0.temperature: 3182 hw.acpi.thermal.tz0.active: -1 hw.acpi.thermal.tz0.thermal_flags: 0 hw.acpi.thermal.tz0._PSV: -1 hw.acpi.thermal.tz0._HOT: -1 hw.acpi.thermal.tz0._CRT: -1 hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 hw.acpi.acline: 1 hw.acpi.battery.life: 98 hw.acpi.battery.time: -1 hw.acpi.battery.state: 0 hw.acpi.battery.units: 1 hw.acpi.battery.info_expire: 5