ThinkpadX40にLinuxMintをインストールしてハイバネーションできるようにしてみた。

 うちのPCは、ほぼすべてThinkpadシリーズのXシリーズです。Xシリーズは、大きさとキーボードの使いやすさのバランスがよく、持ち歩き用のサブノートに重宝しています。

 X40はIBMブランドの最後の機種で、2003年製のPCです。スペックはPentium(R) M processor 1200MHz、メモリも最大で1497 MiBともはや化石スペックのマシンなのですが、ストレージだけはSSDに載せ替えているおかげかそこそこ起動も早く、普段使いでは特にストレスを感じないほどです。

 XPのままだとセキュリティ的に問題があるので、LinuxMintをインストールして使い続けてきましたが、LinuxMintはデフォルトではハイバネーションが使えません。これはかなり残念な状況なので、ハイバネーションを設定してみることにしました。

 LinuxMintは、現在19.2が最新版です。ubuntuが32bit版を廃止するという話もあったのですが、今のところ19.2は32bit版もダウンロードできます。

 ですが、X40をはじめとするi386マシンでハイバネーションを使いたい場合、19.2をインストールしてはいけません。現時点ではハイバネーションが正常に作動しないようです。18.3をインストールしましょう。(私はここでハマりました。)

 今回参考にしたサイトは次の通りです。多謝。m(_ _)m

 ・Medial Diagnosis And Treatment
   https://mdat.biz/dairynews/2018/10/25/368/
 ・ぷちのいず
   https://petit-noise.net/blog/hibernation-on-ubuntu-18-04/
 ・日本に西の端に棲息する研究者見習いの備忘録
   https://krhb.hatenablog.com/entry/2019/05/01/014012
 ・猫の手も借したい
   https://akkisino02.hatenablog.com/entry/2017/07/20/164816

 以下今回の作業の備忘録です。

 1 最初にswap用のパーティションを作成。
   LinuxMint18では、デフォルトではswapパーティションを作成せず、ルートディレクトリにswapfileを置く仕様となっています。ですが、このswapfileは2G程度のサイズしか用意されておらず、また、swapfileを使用してハイバネーションを設定する方法がよくわからなかったので、swapパーティションを作成してみました。サイズはマシンの物理メモリの3倍程度にします。(最初から手動でパーティションを作成してインストールしたほうが楽だと思う。インストールディスクでgpartedを起動して既存パーティションのサイズを縮小したら、異常に起動に時間がかかるようになり、結局再インストールするはめになった。)

 2 fstabにswapパーティションを記載。
   UUID=SWAP領域のUUID none swap sw 0 0

 3 パッケージをインストール。
     sudo apt install pm-utils
     sudo apt install molly-guard
     sudo apt install uswsusp

 4 resumeファイルを書き換える。
     sudo vi /etc/initramfs-tools/conf.d/resume

   次の内容に書き換える。resumeファイルが存在しない場合、次の内容を記載する。
  RESUME=UUID=SWAP領域のUUID

   書き換えたら、次のコマンドを実行。
     sudo update-initramfs -u -k all

 5 grubを書き換える。
     sudo vi /etc/default/grub

   次の該当部分を書き換える。
     GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

     GRUB_CMDLINE_LINUX_DEFAULT="quiet splash RESUME=UUID=SWAP領域のUUID″

   書き換えたら、次のコマンドを実行。
     sudo update-grub

 6 次のファイルの該当部分を書き換える。ファイルが存在しない場合、次の内容を記載する。
     sudo vi /var/lib/polkit-1/localauthority/10-vendor.d/com.ubuntu.desktop.pkla

     [Disable hibernate by default in upower]
     Identity=unix-user:*
     Action=org.freedesktop.upower.hibernate
     ResultActive=no

     [Disable 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=no
      ↓
     [Disable hibernate by default in upower]
     Identity=unix-user:*
     Action=org.freedesktop.upower.hibernate
     ResultActive=yes

     [Disable 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

 7 次のファイルの該当部分を書き換える。
     sudo vi /etc/default/acpi-support

     # Uncomment the next line to switch away from X and back again after resume.
     # This is needed for some hardware, but should be unnecessary on most.
     # DOUBLE_CONSOLE_SWITCH=true
      ↓
     # Uncomment the next line to switch away from X and back again after resume.
     # This is needed for some hardware, but should be unnecessary on most.
    DOUBLE_CONSOLE_SWITCH=true

 8 次のファイルを作成。
     sudo vi /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

   次の内容を記載。
     [Re-enable hibernate by default]
     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

 上記の設定をすべて行ったところ、ようやくハイバネーションが成功しました。環境依存する部分もあるかもですが、とりあえずi386マシンでの成功事例ということで、記録を残しておきます。

(間違って削除したので、再アップ9月28日)