ThinkPad X1 Carbon 5th Gen(2017)にUbuntu16.04をインストールする

## ハマったポイント
- Live USBが認識されない
- track pointが使えない
- wifiとかが認識されない
- Ubuntuのインストールには成功するものの，起動しない


## 購入モデル
ThinkPad X1 Carbon
Part No: 20HRCTO1WW
Core i7-7500U
14インチ FHD
16GB LPDDR3
256GB SSD PCIe-NVMe
147269円
7/29発注，8/9到着

## ハマリポイント対策

### Live USBが認識されない
https://github.com/eisoku9618/kuroiwa_demos#ubuntu-iso-をカスタマイズする方法 でカスタマイズしたUbuntuのisoを元に，Ubuntu標準のStartup Disk Creatorを使ってLive USBを作ったが，認識してくれなかった．

試しに，そのisoを作ったときのUbuntu公式 isoに変えてみたら，認識してくれた．原因は不明．

1時間以上ハマった．

### track pointが使えない
Live USBでインストールしようとした時に，track pointが使えなかった．TabとEnterと矢印キーが使えるので，パーティションを切るのも意外となんとかなった．

```bash
sudo modprobe -r psmouse
sudo modprobe psmouse proto=imps
```

したら動くようになる．
それか，USBで繋がるマウスを接続してもOK

### wifiとかが認識されない

Live USBを作るときに1年前とかにダウンロードしたisoを使ったが，それが良くない．
https://www.ubuntu.com/download/desktop を見ると，今はUbuntu 16.04.3が配られていて，それを使ったら認識した．

Kernelのバージョンが4.4ではなくて4.10に上がっているからっぽい．

### Ubuntuのインストールには成功するものの，起動しない
ここに3日間ハマった．

BootRepairもダメ，SecureBootをDisableにしてもダメ，Legacy Bootにしてもダメ．

起動しないというのは，Live USBでインストールする -> 再起動する -> GRUBが上がらない，という意味．

ちなみに，結果的には，SecureBootはEnableでUEFI Bootで行ける．

試行錯誤の過程で何度もインストールし直していると，
 https://askubuntu.com/questions/696999/unable-to-install-grub-in-dev-nvme にあるようなエラーも出たりした．
また，windowsが入っているからダメなのかと思ってwindowsを消してみたりもしたがダメ．

SATAではなくてPCIeだからかと思ったけど，ググると他の人はインストールできているっぽい．

https://freesoft.tvbok.com/tips/efi_installation/uefi_28_important.html を見てUEFI/Secure Bootに関する知識も見なおしても，やっぱり起動しない．

ということで，BIOSの設定を変えまくっていたら見つかって，

security -> Secure Boot -> Reset to Setup Mode

を押したら起動した．
これはPlatform Keyというものを消しているみたいだけど，良く分からない．とりあえずこれでUbuntuが起動する．

### track pointが動かない

```bash
sudo modprobe -r psmouse
sudo modprobe psmouse proto=imps
```

で一時的には動く．

``/etc/default/grub``に

```
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash
```

という行があるので，

```
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash psmouse.proto=imps"
```

と変えてから

```
sudo update-grub2
sudo reboot
```
すると恒久的に動くようになる．

### 中スクロールができない

参考サイト
- http://orumin.blogspot.jp/2012/09/thinkpad-linuxtracpoint.html
- http://who-t.blogspot.jp/2009/01/tip-of-day-wheel-emulation.html


中ボタンを押しながら，track pointを動かして，スクロールするやつが動かなかった．

``xinput list``で``PS/2 Synaptics TouchPad``が対応するデバイス名だと特定する．idは11．

```bash
eisoku@X1-Carbon:~$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ PS/2 Synaptics TouchPad                 	id=11	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Video Bus                               	id=7	[slave  keyboard (3)]
    ↳ Sleep Button                            	id=8	[slave  keyboard (3)]
    ↳ Integrated Camera                       	id=9	[slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard            	id=10	[slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                  	id=12	[slave  keyboard (3)]
```

次に``xinput list-props 11``で設定を見る．``Evdev Wheel Emulation``が0になっているのが良くないっぽい．

で，

```
xinput set-prop 11 "Evdev Wheel Emulation" 1
```

的なことをすると，一時的に使えるようになる．

恒久的に使えるようにするために，``/usr/share/X11/xorg.conf.d``に

```
Section "InputClass"
    Identifier "Wheel Emulation"
    MatchProduct "PS/2 Synaptics TouchPad"
    Option "EmulateWheel" "on"
    Option "EmulateWheelButton" "2"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
EndSection
```

という中身のファイルを追加すればOK

以上で X1 Carbon 5th Gen(2017)でUbuntu 16.04が不満なく動く．
指紋認証は知らない．
スリープ時の挙動とかも未確認．
ファンは割とうるさい．

## ファンが割とうるさい

htopしてみたら，fwupdというのがCPUを100%使っていて，ググるとみんな困っていた．
最新の状態なら治っているという話もあるけど，実際に起きているので，治っていないっぽい．
この当たりは難しくてよくわからないが，``sudo killall fwupd``したらとりあえず収まるので，~~これで様子を見る~~．

毎回やるのはめんどくさいので， http://devlog.grim3lt.org/2016/05/ubuntu1604-usb-dac.html を見たりして，勇気を持って

```
sudo aptitude purge fwupd
sudo reboot
```

したら起動してくれた＋ファンが静かになった，ので，とりあえずこれで行く．

## 画面をパタンと閉じてから開けるとファンが回りまくる

https://www.reddit.com/r/thinkpad/comments/5ze76f/t470_nonstop_fan_after_resuming_from_sleep/

shutdownしてから起動し直すことで何とかするのが現状？

-> なんか治ってた．