MSI X299-S01 で Ubuntu 20.04 をインストールするメモ(grub install 失敗するので注意)

## 背景

機械学習や GPU レンダリング, マイニングで PCI-ex 多めのマザーがほしい. 現状(2021/11)だと Intel だと x299.
ヤフオクで中古で x299 の安いの売っていたので買ってみました.

買ってなんか変だなと思い調べたところ, マウスコンピューター向けの MSI の OEM 品であり, BIOS update がないなど独自であり困った...
(BIOS の挙動がおかしいのですが, 個体の問題かもしれません)

元製品は x299 raider

https://www.msi.com/Motherboard/X299-RAIDER

最終的に x299-s01 に直接インストールは無理なことがわかりました.
一旦別 PC で Ubuntu インストールしたディスクつくり, `acpi=off` を grub に追加して, x299-s01 にもってくるので対応になります.

Windows と Ubuntu のデュアルブートは考えません(別々のディスクにそれぞれ別のブートローダーを入れる)

## 環境

* x299-s01(本マザーボード)
* GTX 1060 6GB
* Ubuntu 20.04

## secure boot?

まず, hdmi or DP では, secure boot がらみなのか, NVIDIA GPU でしか起動しません(また, NVIDIA GPU も古すぎるのはダメで, 10xx 以降あたりのセキュアブート対応(?)のもの). AMD は起動すらしません. 
(NVIDIA GPU で起動し, BIOS で secure boot off にしても AMD 起動しないので, Boot 時に NVIDIA しか動かないように設定されているのかもしれません)
=> セキュリティが無い(?)と思われる VGA or DVI なら行けるかもはしれない.
=> UEFI GOP 関連? https://dxr165.blog.fc2.com/blog-entry-349.html

BIOS 起動確認したら, ひとまず CMOS クリアしておきます(CMOS clear ボタンはないため, 電池を抜いて数時間まつ).

## Ubuntu?

Ubuntu 20.04 の installer(live CD) だと grub メニューは出るものの, 途中で画面が真っ黒になり詰んでしまいます.

GPU マシンに Ubuntu をインストールしようとしてハマった記録 
http://www.ritsumei.ac.jp/se/re/izumilab/log/log20191227a_mousepc_ubuntu.html

では, ubuntu 16.04 + nomodeset での起動報告があります. 
最終的に, こちらの環境ではさらに `acpi=off` が必要でした.

https://askubuntu.com/questions/955251/x299-acpi-error-uefi-or-driver-kernel-bug

Ubuntu 20.04 の safe graphics モードでは `nomodeset` がついているため, `acpi=off` だけ追加して起動すればよいです!

ただ, 実際にインストールすると secure boot false でも grub がインストールできないエラーが出ます.

https://www.lab-ssk.com/how-to-fix-grub-installation-failed-error-by-boot-repair-when-installing-chaletos-in-uefi-environment

boot-repair を使っても `Locked-NVram deletected` とエラーが出てしまいます. これは BIOS に原因があるようで, 修復は無理そうです.

別マシンで Ubuntu をインストールし, ディスク差し替えで対応になります.
(この場合, UEFI インストールした Ubuntu(Ubuntu の最近のデフォルト?)でいけます)

一度別マシンでインストールし, `/etc/defaults/grub` に `acpi=off` を追加して, `sudo update-grub` で grub 更新しておきます.

この場合, secure boot はもしかしたら enable できるかもしれません.

また, x299-s01 上で apt update などで initrd などアップデートすると, 再度ブートローダーあたりインストールに失敗してファイル構成が壊れてしまいますので注意ください.
 
## Windows は動くがたまにおかしい

Windows10 は特に問題なく USB インストールできました.
幸い Windows11 の要件は満たしていますので, Windows11 機として使うのはできるでしょう.

ただ, 途中でいきなりハングして画面真っ黒というのがたまにあります.
PCI-ex acpi 周りなのか, GPU との相性が悪いのか...(1060, 1070 両方でも発生)
(スリープになりそうなときなど, 省電力モードの切り替え?あたりで発生しやすい)

ドライバか Windows の問題という可能性もありますので, しばらく様子みてみます.

## 不都合

ただ, Ubuntu も Windows も, OS を入れると今度は `del` キーで BIOS 画面に入れない不都合がありました...
entering setup... で止まってしまいます.

BIOS 画面再度出したい場合, 一旦ディスク抜いて待つ必要があります.

もしくは, GO2BIOS 機能で, 電源長押し(4~5 secs)で BIOS に入れる機能があるので, これを利用します
(デフォルトでは off になっているので注意)
 
### CSM モードはない?

一応 BIOS で設定できますが, どうも CSM モードは使えないっぽい? 感じがあります(Ubuntu インストーラーが UEFI モードでしか起動しないため(レガシーモードで起動する方法が別にあるのかもはしれませんが))

## BIOS update?

OEM 品なので BIOS update が, BIOS の機能にありません... 
ので x299 raider の BIOS を入れるのができません.

UEFI shell で頑張ればいけるかも... :thinking:

## まとめ

* 別 PC で UEFI で Ubuntu インストール
* `/etc/defaults/grub` に `acpi=off` を追加し `sudo update-grub` して反映しておく
* x299-s01 は UEFI モード + secure boot disable(enable は可能かもはしれません)
* apt update で initramfs あたりアップデートになると, ブートローダーあたりインストールに失敗しアップデートうまくいかず壊れてしまう

## その他

memtest86 は動きました.
UEFI shell も起動します.

## TODO

* [ ] Windows デュアルブートで, windows の GPT(?)に grub ブートローダー入れられるか試す