ACPI/ja

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page ACPI and the translation is 100% complete.
Resources

ACPI (Advanced Configuration and Power Management Interface) は、BIOS の一部である電源管理システムです。

インストール

カーネル

ACPIでは、次のカーネルオプションをアクティブにする必要があります:

カーネル
Power management and ACPI options  --->
    [*] Power Management support
        [*] ACPI (Advanced Configuration and Power Interface) Support  --->
オプションのドライバー
オプション モジュール 推奨 詳細
Deprecated /proc/acpi files - No procfs ファイルシステム内に非推奨のファイルを作成します。これらは、現在では sysfs ファイルシステム内のファイルによって置き換えられています。
Deprecated power /proc/acpi directories - No procfs ファイルシステム内に非推奨のファイルを作成します。これらは、現在では sysfs ファイルシステム内のファイルによって置き換えられています。
EC read/write access through /sys/kernel/debug/ec ec-debugfs No 組み込みコントローラー用のデバッグインターフェース。
Deprecated /proc/acpi/event support - No procfs ファイルシステム内に非推奨のファイルを作成します。これらは、現在では 入力レイヤーや netlink イベントによって置き換えられています。
AC Adapter ac Laptops システムが AC に接続されているか示すファイルを作成します。
Battery battery Laptops システムがバッテリーによって動作しているか示すファイルを作成します。
Button button - 電源ボタン、スリープボタン、カバーに関するイベントを処理します。
Video video - ビデオカードに関する基本的な操作をサポートします。
Fan fan - ACPI ファンデバイスをサポートし、ユーザーモードアプリケーションがファンの基本的な制御(オン、オフ、状況確認)を扱えるようにします。
Dock dock - ACPI 制御のドックステーションやリムーバブルドライブベイをサポートします。acpi dockの記事を参照してください。
Processor processor - ACPI をLinux のアイドルハンドラとしてインストールし、ACPI C2・C3プロセッサーステートを使用して電力を節約します。
Processor Aggregator processor-aggregator - 特定のプロセッサーを設定したり制御するための ACPI 4.0 の機能。
Thermal Zone thermal Yes ACPI サーマルゾーンをサポートし、プロセッサーを過熱から保護します。
NUMA support - -
Debug Statements - No
PCI slot detection driver pci-slot No PCI バスアドレスを物理スロットと相関させます
Container and Module Devices container - ACPI コンテナや、ホットプラグノード、CPU、メモリー用のモジュールデバイスをサポートします。
Smart Battery System sbs, sbshc - ある種のラップトップに見られる、別方式のバッテリー情報へのアクセスをサポートします。
Hardware Error Device hed - いくつかのハードウェアエラーを報告する、ハードウェアエラーデバイスをサポートします。
Allow ACPI methods to be inserted/replaced at run time custom-method No
ACPI Platform Error Interface (APEI) - - APEI によって、(たとえばチップセットで発生した)エラーをオペレーションシステムに報告することができます。

Emerge

デスクトップ環境は、ACPI が生成する共通イベントに反応します。デスクトップ環境がインストールされていない場合や、システムを特別なイベントに反応するようにしたい場合は、ACPI パッケージをインストールすることができます。sys-power/acpid パッケージをインストールしてください:

root #emerge --ask sys-power/acpid

USE フラグ

一部のパッケージはグローバルな acpi USE フラグを関知します。現時点では sys-power/acpid で利用可能な use フラグはありません。

SELinux

acpid が SELinux システムをシャットダウンできるようにするには、sec-policy/selinux-shutdown パッケージがインストールされ、/sbin/shutdown 実行可能ファイルに再ラベル付けされていることを確認してください:

root #emerge --ask sec-policy/selinux-shutdown

設定

/etc/acpiにあるスクリプトは、システムがACPIイベントにどのように反応するかを定義します。 ユーザーのニーズに合わせて、必要に応じて編集できます。

サービス

OpenRC

acpid サービスはもう開始できるようになっています。OpenRC を使用している場合は、次を実行してください:

root #/etc/init.d/acpid start

起動時に acpid サービスを開始させるには、default ランレベルに追加してください:

root #rc-update add acpid default

systemd

systemd を init システムとして使用している場合は、以下を実行して acpid サービスをシステム起動時に有効化してください:

root #systemctl enable acpid.service

すぐにサービスを開始するには:

root #systemctl start acpid.service

高度な例

一部のユーザーにはデフォルトのACPIセットアップで十分な場合がありますが、acpidデーモンにいくつかの基本的なACPIイベント(AC電源プラグイン/アウト、マルチメディアキーなど)を適切に処理させるために、少し追加の構成が必要になる場合があります。

必要であれば、/etc/acpi/default.sh/etc/acpi/events/default に修正を加えることができます。/etc/acpi/actions/etc/acpi/events の機能を利用して、複雑な構成を作成してもよいでしょう。高度な活用法のためには、単純にスクリプトとイベントファイルをこれらの場所に配置してください。

多くのユーザにとってはおそらく基本的な default.sh ファイルで十分でしょう。以下は、default.sh を使用して何ができるのかを示す例です:

ファイル /etc/acpi/default.sh
#!/bin/sh
#
# $Header: /etc/acpi/default.sh                          Exp $
# $Author: (c) 2012-2014 -tclover <tokiclover@dotfiles.> Exp $
# $License: MIT (or 2-clause/new/simplified BSD)         Exp $
# $Version: 2014/12/24 21:09:26                          Exp $
#
 
log() { logger -p daemon "ACPI: $*"; }
uhd() { log "event unhandled: $*"; }
 
set $*
group=${1%/*}
action=${1#*/}
device=$2
id=$3
value=$4
 
[ -d /dev/snd ] && alsa=true || alsa=false
[ -d /dev/oss ] && oss=true || oss=false
amixer="amixer -q set Master"
ossmix="ossmix -- vmix0-outvol"
 
case $group in
	ac_adapter)
		case $value in
			*0) log "switching to power.bat power profile"
				hprofile power.bat;;
			*1) log "switching to power.adp power profile"
				hprofile power.adp;;
			*) uhd $*;;
		esac
		;;
	battery)
		case $value in
			*0) log "switching to power.adp power profile"
				hprofile power.adp;;
			*1) log "switching to power.adp power profile"
				hprofile power.adp;;
			*) uhd $*;;
		esac
		;;
	button)
		case $action in
			lid)
				case "$id" in
					close) hibernate-ram;;
					open) :;;
					*) uhd $*;;
				esac
				;;
			power) shutdown -H now;;
			sleep) hibernate-ram;;
			mute) 
				$alsa && $amixer toggle;;
			volumeup) 
				$alsa && $amixer 3dB+
				$oss && $ossmix +3;;
			volumedown) 
				$alsa && $amixer 3dB-
				$oss && $ossmix -3;;
			*) uhd $*;;
		esac
		;;
	cd)
		case $action in
			play) :;;
			stop) :;;
			prev) :;;
			next) :;;
			*) uhd $*;;
		esac
		;;
	jack)
		case $id in
			*plug) :;;
			*) uhd $*;;
		esac
		;;
	video)
		case $action in
			displayoff) :;;
			*) uhd $*;;
		esac
		;;
	*) uhd $*;;
esac
 
unset alsa oss amixer ossmix group action device id
 
# vim:fenc=utf-8:ft=sh:ci:pi:sts=4:sw=4:ts=4:
メモ
上のスクリプトは ALSAOSS の両方に対応しているので、OSS から ALSA へ、あるいはその逆に切り換えたとき、追加の操作は必要ありません。スクリプトは自由に編集してください!
メモ
上のスクリプトは、hprofile を利用した電源管理プロファイルを利用しています。さらなる情報はについては hprofile の記事を確認してください。

ユーザ空間ユーティリティ

多くのパッケージが ACPI の機能を利用します。以下にその一部を列挙します:

  • sys-power/acpi: /proc ファイルシステムから、バッテリの状態や温度などの情報を表示します
  • sys-power/acpitool: apm ツールの代替となることを意図している、小さなコマンドラインアプリケーション
  • sys-power/acpilight: 輝度の設定に ACPI インターフェースを使用する xbacklight の代替
  • app-laptop/laptop-mode-tools: linux カーネル laptop_mode のユーザ空間ユーティリティ
  • x11-misc/cbatticon: システムトレイに常駐する軽量で高速なバッテリアイコン
  • app-admin/conky: 高度にカスタマイズ可能な X のためのシステムモニタ


関連項目