電源ジャックが接続または接続されていない場合、Linuxはスリープモードで起動します。

電源ジャックが接続または接続されていない場合、Linuxはスリープモードで起動します。

Lenovo IdeaPad 5 Pro 14ACN6には、新しいLinux Mint Xfce 21.1があります。カバーを閉じて開くと、スリープ/目覚めは正常に機能しますが、1つの問題があります。省電力モードでは、プラグを差し込んだり抜いたりするとOSが起動します。呼吸を止めて睡眠から目覚めたことを検出すると、「呼吸」LEDが点灯します。
電源プラグイベントによってラップトップが目を覚ますのを防ぐ方法が必要です。

この問題を直接把握するために、BIOSでスリープモード解除に関するすべてのオプションを確認しました。その後、Linuxの電源マネージャで同じことをしました。これは役に立ちません。
カーネル(5.15、5.19)を変更してみました。
覚醒を引き起こしたイベントを見つけるためにACPIデバッグを試みました。 ACPIデバッグレベルとデバッグイベントには、次のようなさまざまな設定があります。https://mjmwired.net/kernel/Documentation/acpi/debug.txt#115残念ながら、ロギングはメモリアクセスアドレスに関する情報を提供しないか、またはあまりにも多くの情報を提供します。そのため、ウェイクトリガーをオフにする設定名と場所を識別できません。
また、ACPIデバッグに役立つリソースも見つかりました。https://wiki.ubuntu.com/Kernel/Reference/ACPITricksAndTips主なアイデアは、ACPiのデバッグが容易ではないということです。 ALS ACPI言語はAMLコードにコンパイルされ、それらを分解して分析して、ベンダー固有のハードウェアに関するさまざまな問題を見つけることができます。しかし、acpidumpのようないくつかのツールが言及されています。走ってみようacpi_listen蓋を閉めて電源を抜いた後、次のログを得た。

acpi_listen  
button/lid LID close  
ac_adapter ACPI0003:00 00000080 00000000  
battery PNP0C0A:00 00000080 00000001  
button/lid LID open  

したがって、目覚めを引き起こすべきではありませんが、目覚めを引き起こすバッテリーイベントは明らかです。

省電力モードに関するいくつかの情報があります。https://news.ycombinator.com/item?id=25387947私の問題は、スリープモード中にCPUをシャットダウンしない「最新のスリープ」S0ix状態に関連しているようです。ただし、オフにするオプションはありません。サポートされる省電力状態は S0 S4 S5 です。

dmesg |grep -i acpi| grep supports  
[    0.285799] ACPI: PM: (supports S0 S4 S5)  
[    0.322305] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI EDR HPX-Type3]  

答え1

さらなる調査の最後に、ここで答えを見つけました。https://wiki.archlinux.org/title/Lenovo_IdeaPad_5_14are05
LenovoのBIOSには隠し設定がたくさんあることがわかりました。以下で開くことができます。

  1. BIOS設定でOneKeyBatteryモードをオフにして(有効になっている場合)、BIOS設定を保存します。
  2. ノートパソコンの電源を切ります。
  3. ノートパソコンの電源を切った状態で、次のように入力しますF1 1 Q A Z F2 2 W S X F3 3 E D C F4 4 R F V F5 5 T G B F6 6 Y H N。この組み合わせはランダムではないことがわかります。
  4. F2起動後、一度クリックしてBIOSに入ります。

AMD PBSセクションからからにS3/Modern Standby Support変更する必要があります。 Modern Standby EnableS3Lenovo ideapadはBIOS設定とスリープモードを隠します。

関連情報