DELL XPS15 9570(2018モデル) を Ubuntu18.04 と Windows10 のデュアルブートにする

# 経緯

先日、DELL XPS15(9570) を購入しました。
13インチMacBook Proを使っているのですが、少し古くなってきたのとコードを書くのに大きめの画面が欲しく15インチMac Book Proを検討したのですがキーボードが気に入らないのとお値段もアレなので約10年ぶりにMacから離れてみることにしました。

進めるにあたり、先達の方々の記事を参考にさせていただきました。
9550/9560の情報はあるのですが、9570(2018モデル)に Ubuntu をインストールした記事を見ないので記事にしようと思いました（同じことをする人がいるかどうか分かりませんが）。

いちおうですが、失敗すると意図しないディスクパーティーションが飛んだり、OSが立ち上がらなくなることもありますが、その場合の責任は取れませんので宜しくお願いします。

# 対象PC

- 2018年モデル DELL XPS15(9570) 

 - Intel® Core™ i7-8750H CPU @ 2.20GHz × 12
 - GeForce GTX 1050 Ti with Max-Q Design/PCIe/SSE2 
 - Memory 16GB
 - プリインストールOS Windows 10 Pro

# インストールOS

- Ubuntu 18.04.1 TLS 

# 手順

- UbuntuのISOイメージを https://www.ubuntu.com/ [^1] からダウンロードして、USBメモリー[^2]に書き込む
- Windowsで回復ドライブを作成します（失敗したときの復旧用）

> Windows 10 で回復ドライブを作成する方法
> https://www.dell.com/support/article/jp/ja/jpdhs1/sln297924/windows-10-%E3%81%A7%E5%9B%9E%E5%BE%A9%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95?lang=ja

- BitLockerを解除しました（どのタイミングでやったのか失念しましたが、下記の引用ではBIOSアップデート前になりますね）。
- BIOSをアップデート（1.3.0→1.3.1）


> BIOSの概要とデル製システムでBIOSをアップデートする方法
> https://www.dell.com/support/article/jp/ja/jpdhs1/sln284433/bios%E3%81%AE%E6%A6%82%E8%A6%81%E3%81%A8%E3%83%87%E3%83%AB%E8%A3%BD%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%A7bios%E3%82%92%E3%82%A2%E3%83%83%E3%83%97%E3%83%87%E3%83%BC%E3%83%88%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95?lang=ja

- Windowsの高速スタートアップ無効化
- Ubuntu用パーティーションを作成する（Windowsパーティーションサイズを元の半分未満にするためにEaseUS Partition Masterというツールの無償版[^3]を使用しました。設定後、再起動が何度か入ってドキドキしましたが大丈夫でした。）
- Windowsをセーフモードで再起動する準備
- BIOS設定で、セキュアブートをOFFにします[^4]
- BIOS設定で、SATA設定をRAIDからAHCIに変更して再起動します
- Windowsのセーフモードを解除して再起動します
- 先に作成したUbuntuが入ったUSBメモリをPCに刺してインストールします[^5]

ここまでの作業は、下記を参考にさせて頂きました（少し順序が違いますが、だいたい同じです）。

> DELL XPS15 9550,9560 に ubuntu 16.04 LTSをWindows10とデュアルブートでインストールする
> https://qiita.com/furu8ma/items/3af582658780c9679e3f

- OSブートローダーの表示が「フル解像度」で超絶小さいのでGRUBの設定を変更、こちらを参考にさせていただきました（コマンドラインからできたけど、GUIを使って見たかっただけです）。

> Grub Customizer でブートローダーをGUI編集、デュアルブートを快適に。
> https://thjap.org/linux/ubuntu/5962.html

- 下記を参考にGPU(NVIDIA)ドライバーをインストールします[^6]

    `sudo ubuntu-drivers autoinstall`を実行しただけですが。

> How to install the NVIDIA drivers on Ubuntu 18.04 Bionic Beaver Linux
> https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-18-04-bionic-beaver-linux

- 下記を参考にモニターの開閉でサスペンド＆レジュームが動作するように設定します（~~以下が操作の抜粋です~~）。のはずだったのですが先日開閉したところうまくレジュームできませんでした。時間あるときに調べてみようと思います。

 - `sudo systemctl disable nvidia-fallback.service` を実行します
 -  `/etc/default/grub`を編集して、~~`GRUB_CMDLINE_LINUX="nouveau.blacklist=1"`~~`GRUB_CMDLINE_LINUX="quiet splash mem_sleep_default=deep"`に変更します
 -  `sudo update-grub`を実行します
 -  再起動するとサスペンドとレジュームが動作するようになります

> https://www.dell.com/community/Inspiron/Suspend-resume-problems-on-Ubuntu-18-04/td-p/6072410

- マシンのクロックを日本時間として動作するように設定します（標準状態ではシステムクロックをUTCとして動作するためWindowsでの時刻表示が9時間ずれます）

    `sudo timedatectl set-local-rtc 1`

 
## 残っている課題
-  PC起動（再起動）時に`Thunderbolt PCIe device enumeration mode has switched to native`が表示される（BIOSの`System Configuration >  Thunderbolt Auto Switch` で、 `Auto-Switch`のチェックを外して、 `Native Enumeration`のラジオボタンが選択されている状態で Apply するとワーニングは表示されなくなるが、WiFiデバイスを認識できなくなるときがある）
-  GPUを intel に切り替えると WiFi デバイスを認識できなくなる

# 更新履歴
> - モニタ開閉時のレジュームがうまくできないことが分かったので修正

[s417-lama](https://qiita.com/s417-lama)さんからのコメントを基にGRUBのパラメータを変更し、サスペンド後のレジュームが安定動作するようになりました。本文修正済みです。
s417-lamaさんありがとうございます！


[^1]: 最初UbuntuのOSイメージを、 https://www.ubuntulinux.jp/ からダウンロードしたのですがインストール時ファイルをコピーし始めるところでフリーズするので、本家からイメージを取ってきました（そしたらあっさりインストールできました、今のところ日本語は普通に使えてます）
[^2]: UbuntuのISOメディアは16GBのUSBメモリを使用
[^3]: https://jp.easeus.com/partition-manager-software/free.html からダウンロードしました。
[^4]: マシンのBISO設定は、DELLロゴ表示時にF2連打して設定画面表示
[^5]: マシンの起動ドライブ選択は、DELLロゴ表示時にF12連打して選択
[^6]: GPUは、sudo prime-select nvidia、sudo prime-select intelで切り替えますが、intelを指定すると WiFi デバイスを認識できなくなります（現在、放置して常にNvidia GPUを使用するようにしてます）