「ACPI モジュール」の版間の差分
(ページの作成:「Category:電源管理 de:ACPI Module en:ACPI modules it:ACPI modules zh-CN:ACPI modules {{Related articles start}} {{Related|acpid}} {{Related|DSDT}}...」) |
(→トラブルシューティング: 同期) |
||
(6人の利用者による、間の7版が非表示) | |||
2行目: | 2行目: | ||
[[de:ACPI Module]] |
[[de:ACPI Module]] |
||
[[en:ACPI modules]] |
[[en:ACPI modules]] |
||
+ | [[es:ACPI modules]] |
||
[[it:ACPI modules]] |
[[it:ACPI modules]] |
||
− | [[zh- |
+ | [[zh-hans:ACPI modules]] |
{{Related articles start}} |
{{Related articles start}} |
||
{{Related|acpid}} |
{{Related|acpid}} |
||
17行目: | 18行目: | ||
以下は ACPI カーネルモジュールの簡単なリストです: |
以下は ACPI カーネルモジュールの簡単なリストです: |
||
* ac (電源コネクタの状態) |
* ac (電源コネクタの状態) |
||
− | * asus-laptop ( |
+ | * asus-laptop (ASUS/medion のノートパソコンで使用) |
* battery (バッテリーの状態) |
* battery (バッテリーの状態) |
||
− | * bay ( |
+ | * bay (ドライブベイの状態) |
* button (LID や POWER BUTTON などのボタンイベント) |
* button (LID や POWER BUTTON などのボタンイベント) |
||
− | * container ( |
+ | * container (コンテナの状態) |
* dock (ドッキングステーションの状態) |
* dock (ドッキングステーションの状態) |
||
* fan (ファンの状態) |
* fan (ファンの状態) |
||
− | * i2c_ec (EC |
+ | * i2c_ec (EC SMyBUs ドライバー) |
− | * thinkpad_acpi ( |
+ | * thinkpad_acpi (Lenovo ThinkPad ノートパソコンで使用) |
* processor (プロセッサの状態) |
* processor (プロセッサの状態) |
||
+ | * sbs (スマートバッテリーの状態) |
||
− | * sbs (smart battery status) |
||
* thermal (温度センサーの状態) |
* thermal (温度センサーの状態) |
||
− | * toshiba_acpi ( |
+ | * toshiba_acpi (Toshiba ノートパソコンで使用) |
* video (ビデオデバイスの状態) |
* video (ビデオデバイスの状態) |
||
+ | 実行中のカーネルのモジュールリストを表示: |
||
− | complete list of your running kernel: |
||
{{hc|$ ls -l /usr/lib/modules/$(uname -r)/kernel/drivers/acpi|<nowiki> |
{{hc|$ ls -l /usr/lib/modules/$(uname -r)/kernel/drivers/acpi|<nowiki> |
||
total 112 |
total 112 |
||
56行目: | 57行目: | ||
==適切なモジュールの選択== |
==適切なモジュールの選択== |
||
+ | どのモジュールがマシンで動作するのか確認してください: |
||
− | You have to try yourself which module works for your machine: |
||
− | + | # modprobe <yourmodule> |
|
+ | それから以下のコマンドでモジュールをハードウェアがサポートしているかどうか確認してください: |
||
− | then check if the module is supported on your hardware by using |
||
− | + | $ dmesg |
|
+ | {{Tip|grep 検索を使って結果を絞ると良いでしょう。}} |
||
− | {{Tip| It may help to add a grep text search to narrow your results.}} |
||
$ dmesg | grep acpi |
$ dmesg | grep acpi |
||
[ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) |
[ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) |
||
73行目: | 74行目: | ||
[ 5.438998] acpi device:04: registered as cooling_device4 |
[ 5.438998] acpi device:04: registered as cooling_device4 |
||
+ | 動作するモジュールを {{ic|/etc/modules-load.d}} の設定ファイルに追加してください。詳しくは[[カーネルモジュール#/etc/modprobe.d/ 内のファイルを使う]]を参照。 |
||
− | Add the working ones to configuration files in {{ic|/etc/modules-load.d}} according to the pattern described in {{ic|man modules-load.d}}. |
||
== 情報の取得 == |
== 情報の取得 == |
||
79行目: | 80行目: | ||
acpi -i |
acpi -i |
||
+ | Linux 2.6.24 から {{ic|/proc}} を使うことで無効になっている ACPI 情報を保存できます。同じデータは {{ic|/sys}} から扱うこともでき、netlink 経由でカーネルからの ACPI イベントを取得できます。例えば、バッテリーの場合: |
||
− | Using {{ic|/proc}} to store ACPI information has been discouraged and deprecated since Linux 2.6.24. The same data is available in {{ic|/sys}} now, and interested parties can (should) subscribe to ACPI events from the kernel via netlink. For example, for battery: |
||
/sys/class/power_supply/BAT0/ |
/sys/class/power_supply/BAT0/ |
||
==トラブルシューティング== |
==トラブルシューティング== |
||
− | ===DSDT fix=== |
||
− | If problems with power management persist despite having loaded the proper modules, a Linux-unfriendly [http://en.wikipedia.org/wiki/DSDT#ACPI_Tables DSDT] might be the cause. See the wiki article on [[DSDT]]. |
||
− | ===ACPI fix for notebooks=== |
||
− | Sometimes you see "ACPI: EC: input buffer is not empty, aborting transaction". This is a problem with ACPI, more specifically an incompatibility of the BIOS. There are four ways to solve this: |
||
+ | ===DSDT の修正=== |
||
− | 1. Update your BIOS. |
||
+ | 適切なモジュールをロードしているのに電源管理に問題が発生する場合、Linux フレンドリーではない [[DSDT]] が原因かもしれません。 |
||
− | 2. "Easy" Put {{ic|1=acpi=off}} in the kernel line in your bootloader's configuration file, but that will kill all ACPI functionality like battery charging and power saving. |
||
+ | ===ノートパソコンの ACPI の修正=== |
||
− | 3. In some cases (such as [http://ubuntuforums.org/showthread.php?p=8030130#10 here]) the following has been reported to solve the issue. However, screen brightness may no longer be fully controllable. |
||
+ | |||
+ | 時々 "ACPI: EC: input buffer is not empty, aborting transaction" と表示されることがあります。これは ACPI の問題で、BIOS の非互換性が原因です。問題を解決する方法は4つあります: |
||
+ | |||
+ | 1. BIOS をアップデートする。[[Linux から BIOS を書き換える]]や製造元からの情報を参照してください。 |
||
+ | |||
+ | 2. [[カーネルパラメータ]]に {{ic|1=acpi=off}} を追加する。ただしバッテリーの充電や省電力機能などの全ての ACPI 機能が使えなくなります。 |
||
+ | |||
+ | 3. 以下のコマンドを実行し、[[DPMS]] を無効にすることで問題が解決することもあります [https://ubuntuforums.org/showthread.php?p=8030130#10]。ただし、画面の輝度を変更できなくなります。 |
||
$ xset dpms force off |
$ xset dpms force off |
||
− | 4. |
+ | 4. [https://bugs.launchpad.net/ubuntu/+source/linux/+bug/578506 bugs.launchpad.net] にあるパッチを当てて[[カーネル#コンパイル|カーネルをビルド]]する。 |
+ | |||
+ | === ブートでループする === |
||
+ | |||
+ | 一部のノートブックまたはマザーボードでは、ACPI ファームウェアの実装が不適切なため、ブートローダーから OS への移行中に電源がオフになるなど、起動に問題が発生する可能性があります。次の手順では、順番にテストするためのいくつかの [[カーネルパラメータ]] を提供します。 |
||
+ | # {{ic|1=acpi=off}} を設定します。正常に起動できた場合: |
||
− | If notebook does not start, just remove the AC adapter and battery for 5 seconds and start without AC! |
||
+ | ## ACPI テーブルをダンプし、"Windows XXXX" に類似した文字列がないか確認します。: {{bc|# acpidump -b && for i in *; do echo $i:; strings -a $i {{!}} grep -i windows; done}} |
||
+ | ## {{ic|1=acpi_osi="Windows XXXX"}} を設定します。 |
||
+ | # ブートループの問題は、C-States が不安定であることが原因である可能性があります。 |
||
+ | ## {{ic|1=processor.max_cstate=0}} を使用して ACPI C-State ドライバーを無効にします |
||
+ | ## Intel プロセッサを使用している場合は、{{ic|1=intel_idle.max_cstate=2}} を設定して C-State を C1E に制限します。C-State を高くすると機能する場合がありますが、起動時間は異なる場合があります。 |
||
+ | ## MWAIT 命令を無効にし、{{ic|1=idle=nomwait}} を使用して ACPI C-State ドライバーにフォールバックします。 [[cpupower]]: {{bc|1=$ cpupower idle-info}} を使用して変更を確認します。 |
||
== 参照 == |
== 参照 == |
2024年10月2日 (水) 23:35時点における最新版
ACPI のサイト より:
- ACPI (Advanced Configuration and Power Interface) は Hewlett-Packard, Intel, Microsoft, Phoenix, Toshiba によって共同開発されたオープンな工業規格です。
ACPI モジュールは様々な ACPI パーツに対応するカーネルモジュールです。ACPI モジュールは特殊な ACPI の機能を有効にしたり /proc
や /sys
に情報を追加します。情報は acpid によって解析されてイベントなどを監視するアプリケーションで使われます。
目次
利用可能なモジュール
以下は ACPI カーネルモジュールの簡単なリストです:
- ac (電源コネクタの状態)
- asus-laptop (ASUS/medion のノートパソコンで使用)
- battery (バッテリーの状態)
- bay (ドライブベイの状態)
- button (LID や POWER BUTTON などのボタンイベント)
- container (コンテナの状態)
- dock (ドッキングステーションの状態)
- fan (ファンの状態)
- i2c_ec (EC SMyBUs ドライバー)
- thinkpad_acpi (Lenovo ThinkPad ノートパソコンで使用)
- processor (プロセッサの状態)
- sbs (スマートバッテリーの状態)
- thermal (温度センサーの状態)
- toshiba_acpi (Toshiba ノートパソコンで使用)
- video (ビデオデバイスの状態)
実行中のカーネルのモジュールリストを表示:
$ ls -l /usr/lib/modules/$(uname -r)/kernel/drivers/acpi
total 112 -rw-r--r-- 1 root root 2808 Aug 29 23:58 ac.ko.gz -rw-r--r-- 1 root root 3021 Aug 29 23:58 acpi_ipmi.ko.gz -rw-r--r-- 1 root root 3354 Aug 29 23:58 acpi_memhotplug.ko.gz -rw-r--r-- 1 root root 4628 Aug 29 23:58 acpi_pad.ko.gz drwxr-xr-x 2 root root 4096 Aug 29 23:59 apei -rw-r--r-- 1 root root 7120 Aug 29 23:58 battery.ko.gz -rw-r--r-- 1 root root 3700 Aug 29 23:58 button.ko.gz -rw-r--r-- 1 root root 2181 Aug 29 23:58 container.ko.gz -rw-r--r-- 1 root root 1525 Aug 29 23:58 custom_method.ko.gz -rw-r--r-- 1 root root 1909 Aug 29 23:58 ec_sys.ko.gz -rw-r--r-- 1 root root 2001 Aug 29 23:58 fan.ko.gz -rw-r--r-- 1 root root 1532 Aug 29 23:58 hed.ko.gz -rw-r--r-- 1 root root 3241 Aug 29 23:58 pci_slot.ko.gz -rw-r--r-- 1 root root 17742 Aug 29 23:58 processor.ko.gz -rw-r--r-- 1 root root 3073 Aug 29 23:58 sbshc.ko.gz -rw-r--r-- 1 root root 7098 Aug 29 23:58 sbs.ko.gz -rw-r--r-- 1 root root 6311 Aug 29 23:58 thermal.ko.gz -rw-r--r-- 1 root root 8891 Aug 29 23:58 video.ko.gz
適切なモジュールの選択
どのモジュールがマシンで動作するのか確認してください:
# modprobe <yourmodule>
それから以下のコマンドでモジュールをハードウェアがサポートしているかどうか確認してください:
$ dmesg
$ dmesg | grep acpi [ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x04] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x05] enabled) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] high edge lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] high edge lint[0x1]) [ 5.066752] ACPI: acpi_idle yielding to intel_idle [ 5.438998] acpi device:04: registered as cooling_device4
動作するモジュールを /etc/modules-load.d
の設定ファイルに追加してください。詳しくはカーネルモジュール#/etc/modprobe.d/ 内のファイルを使うを参照。
情報の取得
バッテリー情報を読み出すには、公式リポジトリの acpi パッケージをインストールして次を実行:
acpi -i
Linux 2.6.24 から /proc
を使うことで無効になっている ACPI 情報を保存できます。同じデータは /sys
から扱うこともでき、netlink 経由でカーネルからの ACPI イベントを取得できます。例えば、バッテリーの場合:
/sys/class/power_supply/BAT0/
トラブルシューティング
DSDT の修正
適切なモジュールをロードしているのに電源管理に問題が発生する場合、Linux フレンドリーではない DSDT が原因かもしれません。
ノートパソコンの ACPI の修正
時々 "ACPI: EC: input buffer is not empty, aborting transaction" と表示されることがあります。これは ACPI の問題で、BIOS の非互換性が原因です。問題を解決する方法は4つあります:
1. BIOS をアップデートする。Linux から BIOS を書き換えるや製造元からの情報を参照してください。
2. カーネルパラメータに acpi=off
を追加する。ただしバッテリーの充電や省電力機能などの全ての ACPI 機能が使えなくなります。
3. 以下のコマンドを実行し、DPMS を無効にすることで問題が解決することもあります [1]。ただし、画面の輝度を変更できなくなります。
$ xset dpms force off
4. bugs.launchpad.net にあるパッチを当ててカーネルをビルドする。
ブートでループする
一部のノートブックまたはマザーボードでは、ACPI ファームウェアの実装が不適切なため、ブートローダーから OS への移行中に電源がオフになるなど、起動に問題が発生する可能性があります。次の手順では、順番にテストするためのいくつかの カーネルパラメータ を提供します。
acpi=off
を設定します。正常に起動できた場合:- ACPI テーブルをダンプし、"Windows XXXX" に類似した文字列がないか確認します。:
# acpidump -b && for i in *; do echo $i:; strings -a $i | grep -i windows; done
acpi_osi="Windows XXXX"
を設定します。
- ACPI テーブルをダンプし、"Windows XXXX" に類似した文字列がないか確認します。:
- ブートループの問題は、C-States が不安定であることが原因である可能性があります。
processor.max_cstate=0
を使用して ACPI C-State ドライバーを無効にします- Intel プロセッサを使用している場合は、
intel_idle.max_cstate=2
を設定して C-State を C1E に制限します。C-State を高くすると機能する場合がありますが、起動時間は異なる場合があります。 - MWAIT 命令を無効にし、
idle=nomwait
を使用して ACPI C-State ドライバーにフォールバックします。 cpupower:$ cpupower idle-info
を使用して変更を確認します。