はじめに
購入したばかりの ThinkPad X13 Gen 1 (AMD) に Ubuntu 20.04 をインストールしたところ、基本的に多くの機能が問題なく動作するものの、一部クリティカルな問題が発生した。ここではその解決法について記す。
なお、マシンの構成はざっくり以下の通り:
- AMD Ryzen 7 PRO 4750U (1.70GHz, 8MB)
- Windows 10 Home 64bit - 英語版
- 32GB DDR4 3200MHz (オンボード)
- 512GB Solid State Drive, M.2 2280, PCIe Gen3x4, OPAL2.0, TLC
- 13.3型FHD液晶 (1920x1080) IPS、光沢なし、300nit、マルチタッチ非対応、狭額縁ベゼル、72%NTSC、720p HDカメラ(ThinkShutter付)、WWAN非対応、FreeSync
- 720p HDカメラ(マイクロフォン付)
- 指紋センサーあり
- 英語キーボード(バックライト付) ブラック
問題
マシンが届いてすぐに Windows の回復ドライブを作成し、Ubuntu 20.04 をインストールした。簡単に操作してみたところ、以下の問題点を見つけた:
- 明るさ調整が機能していない
- Suspend できない
特に前者の問題により、常にディスプレイの明るさが最大となってしまっており、充電が 3、4 時間程度しかもたない状態になっていた。流石にこれは厳しいため、解決方法を探すことにした。
明るさ調整ができない問題への対処
結論としては、カーネルを最新のものへと更新することで問題が解決した。具体的には、Ubuntu 20.04 の Linux カーネルのバージョンは 5.4 なのだが、これを 5.7.8 に変更したところ、明るさ調整が機能するようになった。また、バッテリーの残り時間もフル充電時にはディスプレイの明るさによっては 10 時間程度と表示されるようになった (かつ、実際に長い時間使用できている)。
カーネルバージョンの更新方法はググると複数出てくるのだが、今回は GUI から変更可能な mainline というインストーラを使用した。使い方は非常に簡単で、使用したいバージョンを選択して "Install" ボタンをクリックすると、自動的にインストールが始まる。あとは、インストールの完了後にマシンを再起動し、GRUB から新しいバージョンのカーネルを選択すればいい。なお、コマンドラインからカーネルのバージョンを確認するには uname -r
とするのが簡便である。
上述した流れでカーネルを気軽に変更できるのだが、注意点として、BIOS にて Secure Boot オプションをオフにしておく必要がある (mainline からインストールしたカーネルが署名されていないことで Secure Boot に失敗するため)。正確に書くと、BIOS から Security > Secure Boot > Secure Boot を OFF とする。この設定により、新しいカーネルでも起動可能となる。
なお、必ずしもバージョンを 5.7.8 とする必要はないと思われる。詳しい内容は ここやここなどに書いてあるが、AMD の Renoir APU のサポートがカーネルのバージョン 5.5 から experimental ではなく正式サポートとなることで、グラフィック関連の不具合が改善されるとのこと。このことから、バージョン 5.5 以上であれば改善されるのかもしれない (試していないので実際に動くかどうかは不明)。
(追記)
コメントより、Radeon™ Software for Linux® 20.20 Release Notes から Radeon™ Software for Linux® 20.20 をインストールすることでも問題が解消されたとのこと (@dooooooooinggggg さん、ありがとうございます)。
Suspend できない問題への対処
これに関しても BIOS の設定を変更することで対処した。具体的には、Config > Power > Sleep State を "Windows 10" から "Linux" へと変更した。もとの設定値は Modern Standby を表わし、変更後の値は Sleep States のうち S3 を表わしている (Arch Linux の Wiki などを参照のこと)。
なお、Sleep States の S3 は、プロセッサの状態をメモリへと保存する (これは Suspend の定義通り)。これに対し、たとえば S4 は Hibernate を表わし、プロセッサの状態をディスクへと保存する。(その他の設定値については上のリンクやここなどを参照のこと)
以上、現状で気付いた不具合について、その対処法を記した。また不具合が見つかれば追記していく予定。