Home
Packages
Forums
Wiki
GitLab
Security
AUR
Download
コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
目次
コミュニティに貢献
最近の出来事
おまかせ表示
特別ページ
交流
ヘルプ
貢献
最近の更新
最近の議論
新しいページ
統計
リクエスト
ArchWiki
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
電源管理/復帰トリガーのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
ページ情報
表示
サイドバーに移動
非表示
←
電源管理/復帰トリガー
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
[[Category:電源管理]] [[Category:ノートパソコン]] [[en:Power management/Wakeup triggers]] [[zh-hans:Power management/Wakeup triggers]] {{Related articles start}} {{Related|電源管理}} {{Related|Wake-on-LAN}} {{Related|ノートパソコン}} {{Related articles end}} 復帰トリガー (ウェイクアップトリガー) とは、ハードウェアの任意の[[電源管理|省電力]][[w:Advanced Configuration and Power Interface#Power states|状態]]からシステムを復帰させることのできるイベント要因です。自明な例としては、電源ボタンやスリープボタン、[[Wake-on-LAN]] 機能、[[ノートパソコン]]の蓋のスイッチがあります。復帰トリガーは、以下に挙げる様々な[[カーネル]]インターフェイスにより制御できます。すべての可能なトリガーをカバーする統一されたインターフェイスは存在しません。 == 復帰トリガーインターフェイス == === /proc/acpi/wakeup === {{ic|/proc/acpi/wakeup}} ファイルを読み出すと、ACPI に登録されているウェイクアップ要因のリストが得られます。利用可能であれば、対応する {{ic|sysfs}} も得られます。''Device'' 列のエントリをそのファイルに書き込めば、状態を切り替えることができます。例えば、ラップトップを開いたときの復帰を無効化するには: # echo "LID" > /proc/acpi/wakeup === /sys/module/acpi/parameters/ec_no_wakeup === このファイルは ACPI [[カーネルモジュール]]オプション {{ic|ec_no_wakeup}} の値を表しています。このオプションは、システムが suspend-to-idle ({{ic|s2idle}}) [[サスペンドとハイバネート|電源状態]]にあるときに組み込みコントローラからの復帰トリガーを渡すかどうかを制御します [https://docs.kernel.org/admin-guide/pm/sleep-states.html]。最近のノートパソコンでは、[[:en:Lenovo ThinkPad Helix 2nd Gen#Disable embedded-controller wake-ups|一部]]のケースで組み込みコントローラの復帰によりバッテリーの過剰な消耗を引き起こすことがあります。 === /sys/devices/ === 復帰をサポートする {{ic|sysfs}} デバイスには、デバイスの {{ic|power}} サブディレクトリ内の {{ic|wakeup}} ファイルがそれぞれ含まれています。このファイルには、復帰トリガーの状態が含まれ、書き込むこともできます。バスコントローラとエンドポイントデバイスは、システムを復帰させることができる可能性があります。例えば、USB コントローラ (バス) からの復帰を無効化するには: # echo "disabled" > /sys/bus/usb/devices/usb1/power/wakeup コントローラの設定に関わらず、トリガーが有効化されていれば、エンドポイントデバイスはデバイスを復帰させることができるはずです。しかし、これはハードウェア依存である可能性があります。 {{ic|sysfs}} で [[Powertop|PowerTOP]] インターフェイスをプログラムしてください。ただし、{{ic|/sys/class/net/}} と {{ic|/sys/bus/usb/devices/}} ({{ic|/sys/devices/}} へのシンボリックリンクを含みます) を読み出しても、ネットワーキングデバイスと USB デバイスの復帰トリガーしか得られません。 === /sys/class/wakeup/* === {{ic|/sys/class/wakeup}} ディレクトリにほぼすべての復帰トリガーがあります。このディレクトリには、関連するすべてのデバイスへのシンボリックリンクを含みます。サブディレクトリを見れば、利用可能な復帰トリガーを探すのに便利です。一部のトリガーは仮想デバイスに対応している可能性があります。一方、ハードウェア関連の復帰トリガーは、以下のファイルのうち少なくとも1つが含まれています: /sys/class/wakeup/*/device/physical_node/power/wakeup /sys/class/wakeup/*/device/power/wakeup {{ic|/sys/class/wakeup}} 内の復帰トリガーのいくつかは、以下のファイルが存在する暗号化された {{ic|/proc/acpi/wakeup}} 名へのリンクを提供します: /sys/class/wakeup/*/device/path == 永続的な設定 == ''ワンタイム''な方法は、{{ic|/proc/acpi/wakeup}} の状態や {{ic|acpi.ec_no_wakeup}} [[カーネルパラメータ]]を設定するには十分なはずです。[[udev]] を用いる''イベント駆動''のアプローチは、{{ic|sysfs}} デバイスを設定する際に信頼性の高い方法です。 === systemd によるワンタイムな方法 === {{ic|ec_no_wakeup}} ACPI [[カーネルモジュール]]オプションは、この記事で説明されているように起動時に設定できます。{{ic|sysfs}} の値を起動時に設定する標準的な方法は [[systemd#ユニットファイル|systemd サービス]]です (例えば[[電源管理/サスペンドとハイバネート#A520I および B550I マザーボードで PC がスリープから復帰しない|このトラブルシューティングの場合]]のように)。他にも、{{ic|/proc/acpi/wakeup}} 用の [[systemd]] ベースのマネージャとして {{AUR|wakeup-triggers}} があります。 一部のシステムは、電源状態の遷移時にいくつかの ACPI 復帰トリガーを上書きする可能性があります (これは機能というよりバグです)。ハードウェアがトリガーを上書きするタイミングが予測可能な場合、適切な [[systemd#ユニットファイル|systemd ユニット]]によりこの問題を解決することができます。{{ic|sleep.target}} は、すべてのサスペンド状態をカバーする汎用 target で、この問題を解決するのに役立つかもしれません。しかし、汎用の {{ic|wakeup.target}} は存在しません [https://github.com/systemd/systemd/issues/6364]。 この方法は、常に接続されている {{ic|sysfs}} デバイスに対してのみ、確実に動作します。 === udev によるイベント駆動の方法 === [[udev]] ルールによる復帰トリガーの状態設定は、復帰トリガーを持つデバイスが接続されている時であれば常に動作するイベント駆動の方法です。重要なのは、ルールで新しいデバイスの追加を検出し ({{ic|1=ACTION=="add"}})、{{ic|1=ATTR{power/wakeup}="disabled"}} で復帰トリガーの状態を設定することです。この設定をハードウェアがリセットしてしまう場合、udev はデバイスの変更のたびにルールを再適用してこの問題の回避を試みることができます ({{ic|1=ACTION=="add{{!}}change"}})。{{ic|sysfs}} で見つかった特定のデバイスにマッチする利用可能なパラメータとデバイスツリーは、{{ic|udevadm info -q all -a /sys/devices/...}} を使って得られます。 一般的な例としては、Logitech Unifying USB があります。このデバイスの復帰トリガーはデフォルトで有効になっているはずです。これが気に入らない場合、[[udev]] ルールで解決できるかもしれません: {{hc|/etc/udev/rules.d/logitech-unifying.rules|2= ACTION=="add", SUBSYSTEM=="usb", DRIVERS=="usb", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c52b", ATTR{power/wakeup}="disabled" }} 逆に、必要なトリガーを有効化する場合については [[Udev#USB デバイスでサスペンドから復帰させる|udev]] の記事で説明されています。 udev はデバイス列挙の初期にトリガーするので、復帰トリガーを上記の方法で無効化すると、無効化したトリガー (の一部?) が {{ic|/sys/class/wakeup}} にリストされません。これは、起動時にデバイスが存在していたかどうかに依存しているかもしれませんが、さらなる解明が必要です。 == トラブルシューティング == === デバイスやバスのツリーを一覧表示する === これらの補助コマンドは、特定のシステムにあるすべての復帰トリガーを把握したい時や、[[udev]] ルールを記述したり、一般的な復帰ソースのトラブルシューティングをしたりする時に便利です: # lshw -businfo -numeric # lspci -DPPnn # lsusb -tvv === 前回の復帰トリガー源 === 前回のデバイス復帰を引き起こした復帰トリガー源についての情報は、残念ながらプラットフォーム依存です。x86 機では、{{pkg|dmidecode}} で取得できます: # dmidecode -t system | grep -P '\tWake-up Type\: ' === サスペンドからすぐに復帰する === ==== LynxPoint(-LP) を搭載した Intel Haswell 機 ==== LynxPoint と LynxPoint-LP チップセットを搭載した Intel Haswell システムでは、サスペンドからすぐに復帰してしまうことが報告されています。これは、問題のある BIOS ACPI 実装と、{{ic|xhci_hcd}} モジュールがブート中にこの ACPI を解釈する方法と関連しています。回避策として、影響を受けていると報告されているシステムがケースバイケースで拒否リスト ({{ic|XHCI_SPURIOUS_WAKEUP}}) に追加されています [https://bugzilla.kernel.org/show_bug.cgi?id=66171#c6]。 サスペンド中に USB デバイスが接続されていて、ACPI の復帰トリガーが有効になっている場合などに、復帰してしまうことがあります。そのようなシステムにおける応急処置として、関連する復帰トリガーを無効化してしまう方法があります。以下では、USB による復帰を無効化する方法を例として説明しています[https://bbs.archlinux.org/viewtopic.php?pid=1575617]。 現在の設定を確認するには: {{hc|$ cat /proc/acpi/wakeup| Device S-state Status Sysfs node ... EHC1 S3 *enabled pci:0000:00:1d.0 EHC2 S3 *enabled pci:0000:00:1a.0 XHC S3 *enabled pci:0000:00:14.0 ... }} 問題のデバイスは {{ic|EHC1}}、{{ic|EHC1}}、{{ic|XHC}} (USB 3.0) です。状態を変更するには root としてデバイス名をファイルに echo してください: # echo EHC1 > /proc/acpi/wakeup # echo EHC2 > /proc/acpi/wakeup # echo XHC > /proc/acpi/wakeup 上記のコマンドでサスペンドが再度機能するようになるはずです。ただし、設定は一時的なものなので起動するたびに設定し直す必要があります。自動化したい場合は [[systemd-tmpfiles]] を見てください。この問題に対する利用可能な解決策は [https://bbs.archlinux.org/viewtopic.php?pid=1575617#p1575617 BBS スレッド] を見てください。 ==== Gigabyte マザーボード ==== 一部の Gigabyte のマザーボードでは、NVMe ドライブへの GPP ブリッジがサスペンドからすぐに復帰する原因になる場合があります。 以下は、影響を受ける既知のマザーボードです: * B550i AORUS * B550 AORUS ELITE V2 * B550 AORUS ELITE AX V2 (Rev. 1.5) * B550M DS3H {{ic|GPP0}} の状態を ''disabled'' に設定することでこの問題を解決できます: # echo GPP0 > /proc/acpi/wakeup 上記の Haswell での解決法と同じく、この設定は一時的です。設定を自動化する方法のれいは、この [https://bbs.archlinux.org/viewtopic.php?pid=2004037#p2004037 BBS スレッド]で説明されています。 ==== NVIDIA ドライバ ==== [[NVIDIA]] のプロプライエタリドライバをインストールすると、サスペンドとハイバネートができなくなることがあります。そのようなケースでは、システムログに以下のメッセージが残ることがあります: kernel: NVRM: GPU 0000:01:00.0: PreserveVideoMemoryAllocations module parameter is set. System Power Management attempted without driver procfs suspend interface. Please refer to the 'Configuring Power Management Support' section in the driver README. kernel: PM: pci_pm_suspend(): nv_pmops_suspend+0x0/0x20 [nvidia] returns -5 kernel: PM: dpm_run_callback(): pci_pm_suspend+0x0/0x160 returns -5 kernel: nvidia 0000:01:00.0: PM: failed to suspend async: error -5 [[NVIDIA/ヒントとテクニック#サスペンド後にビデオメモリを保持する]] を参照してください。 ==== nouveau ドライバ ==== [[nouveau]] ドライバを使用している場合、サスペンドから即座に復帰してしまう原因はドライバのバグかもしれません (nouveau ドライバは GPU のサスペンドを妨げてしまうことがあります)。回避策は、スリープする直前に {{ic|nouveau}} カーネルモジュールをアンロードして、復帰した時に再びロードすることです。これを行うには、以下のスクリプトを作成してください: {{hc|/usr/lib/systemd/system-sleep/10-nouveau.sh|2= #!/bin/bash case $1/$2 in pre/*) # echo "Going to $2..." /usr/bin/echo "0" > /sys/class/vtconsole/vtcon1/bind /usr/bin/rmmod nouveau ;; post/*) # echo "Waking up from $2..." /usr/bin/modprobe nouveau /usr/bin/echo "1" > /sys/class/vtconsole/vtcon1/bind ;; esac }} 1つ目の echo 行は、フレームバッファコンソールドライバ ({{ic|fbcon}}) から {{ic|nouveaufb}} をアンバインドします。通常、この例にあるように {{ic|vtcon1}} ですが、他の {{ic|vtcon*}} である場合もあります。どれが''フレームバッファデバイス''であるかは {{ic|/sys/class/vtconsole/vtcon*/name}} を確認してください [https://nouveau.freedesktop.org/wiki/KernelModeSetting/]。 {{TranslationStatus|Power management/Wakeup triggers|2024-12-01|821756}}
このページで使用されているテンプレート:
テンプレート:AUR
(
ソースを閲覧
)
テンプレート:Hc
(
ソースを閲覧
)
テンプレート:Ic
(
ソースを閲覧
)
テンプレート:META Related articles start
(
ソースを閲覧
)
テンプレート:Pkg
(
ソースを閲覧
)
テンプレート:Related
(
ソースを閲覧
)
テンプレート:Related articles end
(
ソースを閲覧
)
テンプレート:Related articles start
(
ソースを閲覧
)
テンプレート:TranslationStatus
(
ソースを閲覧
)
電源管理/復帰トリガー
に戻る。
検索
検索
電源管理/復帰トリガーのソースを表示
話題を追加