Linux Mint 20 Cinnamon(Ubuntu 20)で休止状態を有効にし、予期しない覚醒を防ぐ方法は?
答え1
以下はもともと質問の一部として投稿されたので(テデン)ここにコピーしています。
更新:覚醒するたびに実行されるスクリプトのセクション4でいくつかの不一致が発生しました。/proc/acpi/wakeup
設定はリセットのみ可能であることがわかりました時々。シャットダウン/再起動/休止状態/一時停止するたびにそうではありません。したがって、私のスクリプトは時々目覚めを有効にします。スクリプトを更新しました。次に、有効になったとマークされていることを確認します。どこかにその後、/proc/acpi/wakeup
出力します。
ある意味、これは未来のための自分自身のためのメモでもある。 Linuxで休止状態が機能する単純な機能ではない理由と、それを有効にするのがなぜそれほど複雑なのかわかりません。節電モードについて気になる方にもお役に立てば幸いです。
- まず、あなたが持っていることを確認する必要があります十分に大きいスワップファイル。スワップ領域は、休止状態の間にRAMがディスクに保存される場所です。
- スワップサイズを確認してください。システムモニター - >リソースまたは、実行すると十分では
sudo swapon --show
ない可能性があります。スワップサイズはRAMサイズよりわずかに大きくなければなりません。オンラインにはいくつかのガイドがあります。 4GB RAMシステムで5GBスワップスペースを選択しました。 - スワップスペースを増やす方法は設定方法によって異なります。おそらく、より大きなスワップファイルを作成する必要があり、開く必要があります。ゴポット単にパーティションのサイズを変更するだけです。
/dev/vgmint/root
ボリュームを持つ暗号化されたLVMがあります/dev/vgmint/swap
。 LVMはマウント後にサイズを変更できないため、Linux Mintを使用してUSBスティックから起動できます。そこで利用可能ディスク暗号化されたLVMのロックを解除して使用するアプリケーションこの美しいガイド/dev/vgmint/root
ボリュームサイズを安全に縮小するには:- ファイルシステム強制チェック
sudo e2fsck -f /dev/vgmint/root
- ファイルシステムを縮小します
sudo resize2fs /dev/vgmint/root 180G
。 180Gを希望の最終ボリュームサイズの約90%に交換してください。 - ボリュームを最終サイズに縮小します
sudo lvreduce -L 200G /dev/vgmint/root
。ここで、200Gはボリュームの最終サイズです。 - ボリュームの残りの空き領域を占めるようにファイルシステムを拡張します。
sudo resize2fs /dev/vgmint/root
- ファイルシステム強制チェック
sudo lvextend -l 100%FREE /dev/vgmint/swap_1
その後、作成した空き領域を使用してスワップボリュームを拡張するように実行できます。- これで交換を更新する必要があります。私たちはあなたの一般的なシステムで起動するUSBスティックを介してライブシステムを完成しました。スワップのサイズを再確認すると、スペースを増やしたにもかかわらず、サイズが変更されていないことがわかります。新しい取引所を作成する必要があります。
sudo swapoff -a
すべてのスワップを無効にするには実行し、sudo mkswap /dev/vgmint/swap_1
新しいスワップを作成するには実行します。
- それでは、ハードウェアをテストしてみてください。休止状態のサポートそして睡眠ボタンをもう一度追加読書としてこの素敵な記事:
- 端末を開いて実行すると、
sudo pm-hibernate
コンピュータは休止状態になります。再起動し、すべてが復元されることを確認してください。その場合、ハードウェアは休止状態をサポートしています。 - それでは、休止状態アイコンを有効にしましょう。ファイルを生成します。
sudo -i cd /var/lib/polkit-1/localauthority/50-local.d/ nano com.ubuntu.enable-hibernate.pkla
- 以下をファイルに貼り付けます。
[Re-enable hibernate by default in upower] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes [Re-enable hibernate by default in logind] Identity=unix-user:* Action=org.freedesktop.login1.hibernate ResultActive=yes
- 保存して再起動してください。電源ボタンを押すと、「休止状態」オプションが表示されます。
- 端末を開いて実行すると、
- エネルギー管理。これはCinnamonを含むLinux Mintにのみ当てはまります。一定期間使用しない場合は、ノートパソコンを休止状態にしたいのですが、次のコマンドで設定することはできません。エネルギー管理アプリ。内部Cinnamon設定を編集するには、dconfエディタ(
sudo apt install dconf-editor
)を使用します。それを開き、次に行きます。/org/cinnamon/settings-daemon/plugins/power/または単に検索してみてください力。sleep-inactive-battery-type
これが私が求めているものです - 「休止状態」に設定します。ここではuse-time-for-policy
、「バッテリー不足」、「バッテリーの危険」、「バッテリーの動作」の状態を確認するために、残りの時間の代わりに電源を切ってバッテリー比を使用することをお勧めします。バッテリ比率は実際の値であり、残り時間は推定値であり、大きく異なる場合があります。percentage-low
、percentage-critical
およびを使用してパーセンテージしきい値を設定することもできますpercentage-action
。見てみると、このタブにはいくつかの興味深い設定があります。それでも注意してください。 - 今最後のパズルのピース一時停止/休止状態から不要な省電力モード解除を防止。書く
sudo cat /proc/acpi/wakeup
。どのデバイスがアクティブで、休止状態で予期せぬウェイクアップを引き起こす可能性があるかを確認できます。問題の原因となっているデバイスは、起動時と一時停止/休止状態から戻るときに無効にする必要があります。
- デバイスを無効にする方法は次のとおりです
echo DEVICE_NAME | sudo tee /proc/acpi/wakeup
。 (ありがとうございます。このスレッド.) - どのデバイスが問題を引き起こしているかを調べて(私はすべて無効にしました)、そのデバイスを無効にするbashスクリプトを作成します。 (ルートはファイルを実行するため、ファイルをルートが所有する必要があるかもしれません。)
#!/bin/bash
filename='/proc/acpi/wakeup'
n=0
fix=false
while read line; do
if [[ "$line" == *"enabled"* ]]; then
fix=true
#break
fi
n=$((n))
done < $filename
if [[ "$fix" == "true" ]]; then
echo RP01 | tee /proc/acpi/wakeup
echo RP02 | tee /proc/acpi/wakeup
echo RP03 | tee /proc/acpi/wakeup
echo RP05 | tee /proc/acpi/wakeup
echo RP06 | tee /proc/acpi/wakeup
echo XHC1 | tee /proc/acpi/wakeup
echo LID0 | tee /proc/acpi/wakeup
fi
スクリプトをルートで実行可能にすることを忘れないでください。sudo su
それからchmod +x /your-script.sh
- スクリプトを呼び出すsystemctlサービスを作成する必要があります。 (ありがとうございます。この記事インスピレーションを得るために、このサイトの他の多くの投稿もあります。)サービススタッフに電話しました。起きる。ファイル作成を使用してください
sudo nano /etc/systemd/system/wakeups.service
。文書の内容:
[Unit]
Description=Fix unwanted wakeups from suspend
[Service]
Type=oneshot
TimeoutSec=0
StandardOutput=syslog
User=root
ExecStart=/path-to-your-script/script.sh
[Install]
WantedBy=multi-user.target suspend.target hibernate.target
- 以下を実行してサービスを有効にします。
systemctl enable wakeups.service
- まあ、これは休止状態機能を動作させるために必要なすべてです!定期的に起動し、休止/休止から戻ると、すべてが正しく機能していることをテストして確認します。