Ubuntu 20.04をHP Spectre x360(2019年モデル)に入れてみた


## はじめに
　4月頭にノートPCを買ったのでUbuntu18.04LTSを入れたら、後述の通りとんでもないほど不具合に見舞われて、絶望の淵にありました。そんな中、2020年4月下旬にUbuntuの20.04LTSが正式リリース。どうせ不具合が出ているならと改めて20.04をクリーンインストールしたら、めちゃくちゃ良い感じに入ったので、今回はその紹介記事です。
　本記事では、Ubuntu20.04LTSの具体的な導入方法は **紹介しません** 。Ubuntuを入れる前の準備や注意点、入れた後の不具合についてまとめ、Windows機にUbuntuを初めて入れる人向けに有益な情報を提供することを、本記事は目指しています。

### Ubuntuを選択するまで
![alt](https://www.g-mark.org/media/award/2018/18G050396/18G050396_01_880x660.jpg)
cf: [HP Spectre X360 - グッドデザイン賞](https://www.g-mark.org/award/describe/47395)
　いやぁ、Spectre x360、美しいですよね。2018年バージョンはグッドデザイン賞を受賞してますが、今回のバージョンはそこから無駄を削って、更に美しくなってると思います。ロゴも、シンプルなのにhpだとわかるデザインで、すごく良いと思います。 ~~dyにもばっちり見えますね https://twitter.com/hpsupportjpn/status/879608548652589056 。~~
　とはいえ、このPCはWindows機。私は普段はWindowsユーザーではありますが、残念ながらWebエンジニアとしては開発機にはWindowsを選びたくないというのが本音です。美しさで言えばMacbookAirも美しいですし、もし会社支給だったらMac一択ですが、宗教上の理由からプライベートではあまりMacに触りたくないと思ってます。そこで第3の選択として、Windows機を購入後、Windowsを潰してUbuntuに入れ替えるという手を取りました。

## 導入前
### Ubuntuでも使える/使えなくなる機能
　Spectre x360は、デフォルトのOSとしてWindowsが導入されているノートPCです。それをUbuntuにすることで、一部機能が使えなくなります。その対応表がこちらです。

| 機能 | 18.04LTS | 20.04LTS | Windows |
|:----:|:--------:|:--------:|:-------:|
| ディスプレイ | △ | ○ | ○ |
| タッチパネル | ○ | ○ | ○ |
| 画面回転 | ○ | ○ | ○ |
| スピーカー | △ | ○ | ○ |
| マイク | × | ○ | ○ |
| カメラ | ○ | ○ | ○ |
| 指紋認証 | × | × | ○ |
| Wifi | △ | ○ | ○ |

※△は、設定をすれば使えるようになるというものです。

　Spectre x360はタブレット化出来る2in1タイプのノートPCですので、タッチパネル操作や画面回転がUnix系のUbuntuでも利用できるというのは、大きな利点と言えるでしょう。「開発もできるiPadPro」のようなものですよね。
　指紋認証が出来ないのは、指紋センサーのメーカーがlinux用ドライバを出してないことが原因らしいです。UbuntuでもOS側では指紋認証の仕組み自体は出来上がっているようですが、指紋センサーをUbuntuが認識出来ないために、指紋認証でログインすることが出来ないということです。
　18.04と20.04で比べたら、どう見ても20.04の方が良いです。特に、マイクを使えるようにする設定が出来なかったのは、私にとっては致命的でした。後述の通り、18.04をSpectre x360に入れると、この他にも不具合が頻発するので、今更18.04を入れる積極的な理由はありません。絶対20.04を入れてください。

### 準備するもの
- Spectre x360
- USBメモリ(最低4GB以上、出来れば8GB以上) (or 外付けDVDリーダーと空のDVD)

　Ubuntuのインストールには、USBかDVDで動くUbuntuインストーラーを事前に作成しておく必要があります。ISOファイルを公式からダウンロードして、インストーラーとして起動できるようにUSB(or DVD)に入れるだけです。具体的な方法については下記公式ページをご覧ください。
cf: [Create a bootable USB stick on Windows](https://ubuntu.com/tutorials/tutorial-create-a-usb-stick-on-windows#1-overview)
　USBメモリの容量については、Ubuntuを入れるには4GB以上であれば問題ありません。ただし、Windowsバックアップ用に別のUSBメモリも一緒に準備する際は、注意が必要です。こちらは8GB以上のものが必要になりますので、どうせならUbuntu用USBメモリも8GB以上にしておいたほうが良さそうです。

### Windowsに戻すには
　一度Windowsを消したら、元に戻そうとはしないほうが良いですし、戻す準備は丁寧にやったほうが良いです。18.04からWindowsに戻そうとしたことが一度あるのですが、地獄を見ました。
cf: [Windows 10 を再インストールする](https://support.microsoft.com/ja-jp/help/4000735/windows-10-reinstall)
　MS公式のWindows10再インストールの手順なのですが、この通りにやったところ、ドライバが足りないために **トラックパッドなどの内蔵デバイスが軒並み使えなくなってました** 。何が足りてないのかの調査がこれまた面倒で、結局Windowsに戻すことは諦めてUbuntuを再インストールしました。
　恐らくMSではなく、HPのページにあるリカバリディスク作成のページを参照したほうが良いでしょう。ただし試していないので本当にうまくいくかどうかはわかりません。
cf: [HP PC - Windows 10 リカバリディスクの作成手順＆リカバリ方法](https://support.hp.com/jp-ja/document/c01522306)
　確かに、各内蔵デバイスをうまく動くように調整するのはメーカー側の責任かもしれない。だがMSよ、お前に足りないのはそういうところだぞ。

## 導入後
### 各種設定
　例えばこの辺りを行うと良いでしょう。他にもあったらコメントで教えて下さい。
cf: [Ubuntu 20.04 LTS をインストールした後やること12選](https://qiita.com/outou_hakutou/items/ce06cb3c8c355d5fd87c)
　新しくPCを新調した際の環境構築、やり始めると意外と時間を食うんですよね。こういった環境構築系は、年末年始やGWなどの長期休暇中に見直す機会を年1回は用意したほうが良さそうです。

### 不具合
#### 最初だけ見られた不具合
　最初に導入した際、各種設定をしていると「電源オフ後の通常起動はうまくいくが、再起動をすると失敗する」という意味不明な挙動を見せました。HPとUbuntuのロゴが出て、処理中のクルクルが出てからずっとそのままという状態です。何度か強制オフ→起動を繰り返していたら、通常起動も怪しくなってきたので、思い切って再インストールしたところ、この不具合は起こらなくなりました。何が悪かったのかはよくわかりません。

#### 起動時の問題
　起動時、UbuntuとHPのロゴが出た後にちらつき(フリッカー)が発生します。ログイン後も1～2回くらいちらつきますが、その後はちらつくことはありません。
それから、起動が18.04と比べて遅いような気がします。体感で申し訳ないですが、18.04は電源オン後15秒以内には使えるようになった一方で、20.04は30秒～1分くらいかかる印象です。先に報告したちらつきと関係していそうな予感がしますが、とりあえず今は放置してます。

#### トラックパッドの感度
　これはUbuntuの問題かSpectreのデザインの問題かはわからないのですが、トラックパッドの感度が良すぎる問題があります。キーボードを打っていると、母指球がトラックパッドに当たって、それが左クリック扱いになってしまうことがあります。

![IMG_20200504_124724.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130268/e5830769-a7a7-3322-1061-aab8a44ff670.jpeg)
図：キーボードとトラックパッドの位置関係

　文字入力中のカーソルはずれるわ、アクティブアプリが切り替わるわで、なかなかストレスフルなUXとなっています。トラックパッドの感度を下げる方法もあるらしいのですが、まだ手を出せて無いです。時間があったら追記します。

![IMG_20200504_124700.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/130268/3261ad6e-289d-c13c-07de-89c994fadc46.jpeg)
図：右手を実際に置いた時の位置関係

## 最後に
　この記事を見て、Windows機を買ってUbuntu入れてみようというユーザーが一人でも増えてくれれば幸いです。Web開発はMacのみならず！かっこいいノートPCを使って、イケてる開発をしていきましょう！

## 付録 ―18.04導入時の不具合対応―
　最後に18.04導入時に起こった不具合と ~~恨みつらみと~~ その解消法をコツコツまとめてたので、それらを軽めに紹介します。興味ある方だけ読んでもらえればいいです。

### ログイン画面無限ループ問題 & Wifiアダプター認識しない問題
　インストール後、2度目以降の起動で、ログイン画面からパスワードを入れても、またログイン画面に戻されるという問題が発生しました。原因は多分これで、Intelグラフィクスがlinux対応してなかったためっぽいです。
cf: [Ubuntu not detecting integrated intel graphics card and reverts to llvmpipe](https://askubuntu.com/questions/1190843/ubuntu-not-detecting-integrated-intel-graphics-card-and-reverts-to-llvmpipe)
これを防ぐには、ログイン画面で `ctrl + alt + F2` を押して仮想コンソールに移動し、以下を実行すると無限ループは解消します。

```
$ sudo apt install linux-generic-hwe-18.04
```

　しかしここで問題が発生します。なんと同時にWifiアダプターの認識にも失敗しているのです。つまり、 **ネットに繋がりません** 。幸いにも私はUSB有線LANアダプタを持っていたので有線でネットに繋がりましたが、下記ページから関係しそうなものをダウンロードして片っ端から突っ込んでも解決します。どれが該当するのかはもう忘れてしまった…。
cf: [HP PC - Linux のよくある質問 (FAQ)](https://support.hp.com/jp-ja/document/c04350588)
　ちなみに、これを導入することでWifiアダプターも利用できるようになります。

### 音が出ない問題
　どうもサウンドカードが認識されていないようです。
cf: [UbuntuTips/Hardware/SoundTroubleshooting](https://wiki.ubuntulinux.jp/UbuntuTips/Hardware/SoundTroubleshooting)
調査コマンドを打ってみたら、こんな感じでした。

```
$ cat /proc/asound/cards
--- no soundcards ---
# サウンドカード無いって。

$ lspci -v | less
(中略)
00:1f.3 Multimedia audio controller: Intel Corporation Device 34c8 (rev 30)
        Subsystem: Hewlett-Packard Company Device 86f9
        Flags: bus master, fast devsel, latency 32, IRQ 185
        Memory at 603d170000 (64-bit, non-prefetchable) [size=16K]
        Memory at 603d000000 (64-bit, non-prefetchable) [size=1M]
        Capabilities: <access denied>
        Kernel driver in use: sof-audio-pci
        Kernel modules: snd_hda_intel, sof_pci_dev
(中略)
# Capabilitiesにaccess deniedと書いてある。
```

　そこで、 `/etc/modprobe.d/alsa-base.conf` ファイルに以下を追記してください。

```
options snd-hda-intel dmic_detect=0
```

　これで音は鳴るようになります。ただし、マイク検出=0と書いている通り、マイクが使えなくなります。この設定をうまく書けば、音が出て、かつマイクも使えると思うのですが、これ以上はわかりませんでした。

### コンソール文字化け問題
　コンソールが文字化けしてtofuが出てきてしまいます。
cf: [ubuntuでのコンソールでの文字化け対応](http://setomoki.hatenablog.com/entry/2016/11/03/155110)
`~/.bashrc` に以下を追記しましょう。

```
case $TERM in
    linux) LANG=C ;;
    *)     LANG=ja_JP.UTF-8;;
esac
```

## 付録2 ―MacbookAirにUbuntu18.04を突っ込んでみた―
　あまり良くないためオススメはしません。Macではcommandを使ってコピペなどをしますが、UbuntuのショートカットキーはWindowsに似ていてctrlを使います。色々試行錯誤しましたが、ショートカットキーで苦労するのは非常によろしくありません。MacはやはりMacOSで使うほうが良いのでしょう。