2023-01-03 (Tue) [長年日記]
_ Ubuntu 22.04でのハイバネーション
Thinkpad T14をサスペンドして丸一日放置したらバッテリー残量が20%以下になってしまったため、ハイバネーションを利用することにした。
ルートパーティションを暗号化しているため、Enable Hibernation on Ubuntu 22.04 with LVM and Full Disk Encryptionを参考に以下の手順で設定を行った。
ハイバネーションの有効化
- スワップを無効化
$ sudo swapoff -a
- /etc/fstabのスワップの設定を以下のように修正(ない場合は追加)。
swapfile none swap sw 0 0
- スワップファイルを作成
sudo fallocate -l 32G /swapfile
sudo chown 0 /swapfile
sudo chmod 0600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
- 再起動後にスワップの設定を確認
$ sudo swapon -s
Filename Type Size Used Priority
/swapfile file 37748732 0 -2
- ルートパーティションのUUIDを確認
findmnt / -o UUID
- スワップファイルのオフセットを確認
$ sudo filefrag -v /swapfile |grep " 0:"| awk '{print $4}'
9932800..
- /etc/default/grubのカーネルコマンドラインに
resume
、resume_offset
を追加(最初resume=
の後のUUID=
が抜けていてハイバネーションからの復帰ができなかったので注意)
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=efa2cec1-29f1-47d2-a19b-e4722a969805 resume_offset=9932800"
-
sudo update-grub
で反映して再起動 -
sudo systemctl hibernate
でハイバネート、復帰できることを確認。
一般ユーザでのハイバネーション
sudoなしでハイバネートできるように、/etc/polkit-1/localauthority/50-local.d/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;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit
ResultActive=yes
電源ボタンの挙動の設定
Gnomeの[設定]>[電源管理]>[電源ボタンの挙動]を[ハイバネート]に変更
メニューの[電源オフ/ログアウト]に[hibernate]を追加
- Gnomeのシェル拡張マネージャをインストール
$ sudo apt install gnome-shell-extension-manager
- シェル拡張マネージャを起動して[探す]で、Hibernate Status Buttonを追加
$ extension-manager
_ Ubuntu 22.04のibus-mozc起動時の入力モードをひらがなにする
Super+Spaceでibus-mozcを起動した時に入力モードが直接入力になっていて不便(英語キーボードだとibus-mozc上でIMEをオンにするキーを割り当てるのも難しい)なのでUbuntuのibus-mozcでひらがなをデフォルトにするを参考にひらがなになるようにした。
ただし、dpkg-buildpackageでfcitx-mozcのビルド中にエラーが発生したため、以下のように直接ibus-engine-mozcを置き換えて対処した。
$ sudo cp src/out_linux/Release/ibus_mozc /usr/lib/ibus-mozc/ibus-engine-mozc