普段使用しているMacBook Pro(2015) のバッテリーが怪しくなってきたのと、なんとなく、LinuxのGUI環境で生活する機運が高まったこともあり、ASUS ZenBook S (UX391UA)を調達しました。環境を構築する上で、いろいろとyakの毛を刈りましたので、その過程を残しておこうと思います。
目指したこと
何かと便利なこともあり、購入時のWindows環境はそのまま残すかたちで、Kubuntuとのデュアルブート環境を構築することにしました。 OSはそれぞれ、Windows 10 Pro と Kubuntu 18.04.1 LTSを使用しています。
遭遇した不具合
はじめに、Kubuntu環境のセットアップ時に遭遇した不具合について説明しておきます。
なお、現状では①〜⑤の何れも回避できていて、問題なく動いています。
① 画面に激しいグリッチノイズが出る
とても激しいちらつきで、まともに画面操作ができません。
② 内蔵スピーカー及びヘッドホンジャックから音が出ない
唯一音が出ているのがBluetoothで接続したヘッドホンで、それ以外では音が出ません。
UX391UAの内蔵スピーカーはとても良いサウンドなので、音が出せないのはもったいないです。
③ 画面解像度に4K(3840×2160)以外選択できない
GUIメニューからの設定だと、4K以外の設定がありません。ノートだとさすがに文字が小さいです。
④ トラックパッドの設定が変更できない
こちらはKDE固有の不具合かもしれませんが、GUIメニューの設定では項目がグレーアウトしていて変更できません。デフォルトだとポインターのスピードが遅いので、調整が必要と思います。
⑤ サスペンド中にバッテリーがめちゃ減る
半日放置で半分以上もっていかれます。
インストール完了までの作業内容
上記の不具合の対処方法は次項で説明します。
ここでは、Kubuntuがデュアルブートで起動できるまでの作業内容をメモしておきます。
マシン調達
US配列の13インチのノートPCで探しました。結果、ASUS ZenBook S (UX391UA)を購入したのですが、決め手はキーボードレイアウトが好みだったからです。これは、実際に触ってみて期待通りでした。
Windows側の設定
初期設定の他にやったことは以下の通りです。
- リカバリディスクの作成
- BitLockerの無効化
インストール用USBメモリの作成
作業はmac上で行いました。
まずはKubuntuの公式サイトからイメージファイルをダウンロードします。
その間にUSBメモリをフォーマットしておきましょう。ここでは、exFAT-マスター・ブート・レコードを選択しました。
フォーマットが完了したら、USBメモリをumountしておきます。 ターミナルを使用する場合は以下の通りです。
$ diskutil list # デバイス名を確認 $ diskutil umountDisk /dev/disk2 # デバイスのアンマウント
最後にイメージファイルをUSBメモリに書き込みます。
$ sudo dd if=Downloads/kubuntu-18.04.1-desktop-amd64.iso of=/dev/rdisk2 bs=1m
以上で、USBメモリの準備は完了です。
Kubuntuのインストール
BIOSの設定画面に入り、Boot Priority(起動順序)でUSBの順位を上げておきます。
その後はインストーラ(日本語対応)の指示にしたがって、Kubuntuをインストールします。
以上で、デュアルブートでの起動までは準備完了です。
不具合の対処
①から順に回避策について説明します。
①の回避策
この不具合は、C-Stateとディスプレイとの関係に原因があるようです。
C-Stateは、CPUの省電力機能の状態を表したもので、C
に続く数字で分類されています。
より大きな数字になるほど省電力なモードになります。
https://www.dell.com/support/article/jp/ja/jpbsd1/qna41893/c-state%E3%81%A8%E3%81%AF?lang=ja
UX391UAは4Kパネルを採用していますが、どうやらC5~C6までいくとうまくパネルの制御ができず、 グリッチノイズが出てしまっているというのが、今回の原因らしいです。
/etc/default/grub
を編集してカーネルパラメータを追加していきます。
$ sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT
パラメータにC-Stateの設定を追加します。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=4"
編集が終わったら設定を反映させてリブートすれば完了です。
$ sudo update-grub2 $ reboot
②の回避策
このバグは既に修正済みで、最新のカーネル(v5.0-rc1)では取り込まれています。 なので、回避策としてはカーネルのバージョンアップを行うことになります。
今回はukuu
を使ってバージョンアップしていきます。
インストールを始める前に、先にBIOSからSecure Bootをオフにしておきます。
BIOS画面の[Advanced Mode]から[Security]に進み、Secure Boot Control
の値をDisabled
に変更すればOKです。
Kubuntuを起動したら、README に沿ってukuu
をインストールします。
$ sudo apt-add-repository -y ppa:teejee2008/ppa $ sudo apt-get update $ sudo apt-get install ukuu
インストールが完了したら、メニューからUbuntu Kernel Update Utility
をクリックしてアプリケーションを起動します。
デフォルトではRC版は表示されないようになっているので、[Settings]の[Display]にて"Hide unstable and RC releases"のチェックを外して表示させましょう。
表示されたv5.0-rc1のカーネルを選択して[Install]を押します。
無事完了して再起動を行うと、自動的に先程インストールしたカーネルで起動されているはずなので、確認しておきましょう。
$ uname -r
v5.0-rc1のカーネルで起動できていたら完了です。 以上の対応で、私の環境では内蔵スピーカー及びヘッドホンジャックから音が出力されました。
③の回避策
これはXRandRを使って解像度をWQHD(2560x1440)に変更することで回避しました。
まずはモニター名を確認します。
$ xrandr
私の環境ではconnected
として表示された名前はeDP-1
となっていました。
次に、WQHDのModelineを確認します。
$ cvt 2560 1440
出力した"Modeline"以下の文字列を使用して、設定を登録していきます。
$ xrandr --newmode "2560x1440_60.00" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync $ xrandr --addmode eDP-1 2560x1440_60.00
追加した解像度で画面が表示されるか確認します。
$ xrandr --output eDP-1 --mode 2560x1440_60.00
問題なく表示できたら設定を永続化しておきましょう。
$ echo 'xrandr --newmode "2560x1440_60.00" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync' >> .profile $ echo 'xrandr --addmode eDP-1 2560x1440_60.00' >> .profile $ echo 'xrandr --output eDP-1 --mode 2560x1440_60.00' >> .profile
これで完了です。
④の回避策
libinputの設定を変更します。
$ sudo vi /usr/share/X11/xorg.conf.d/40-libinput.conf
以下の通り、"Option ..."の行を追加することで、ポインターのスピードを早くすることが可能です。
Section "InputClass" Identifier "libinput touchpad catchall" MatchIsTouchpad "on" MatchDevicePath "/dev/input/event*" Driver "libinput" Option "AccelSpeed" "1" # この行を追加 EndSection
AccelSpeed
の値は"-1"から"1"の間で変更可能です。この設定では早すぎると感じた場合は"0.7"などに変更すると良いです。
⑤の回避策
これはsleepモードのデフォルトがs2idle
になってるのが原因です。
Ubuntu 18.04 - Dell XPS13 9370 no longer suspends on lid close - Ask Ubuntu
UX391UAの現在の設定を確認します。
$ cat /sys/power/mem_sleep
デフォルトが[s2idle]
に設定されていることがわかったので、これをdeep
に変更していきます。
①と同じく/etc/default/grub
を編集します。
$ sudo vi /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT
パラメータにsleepの設定を追加します。
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=4 mem_sleep_default=deep"
保存後に設定を反映させてリブート。
$ sudo update-grub2 $ reboot
再度、mem_sleep
を確認します。
$ cat /sys/power/mem_sleep
[deep]
に変わっていれば対応完了です。
終わりに
普段、CUIとかだけ触っているとGUI周りのノウハウがたまらないので、こういうのもいいかなと思います。 設定さえしてしまえば、UX391UAは結構快適!