RSS2.0

マルチブート環境で Fedora 29 をインストールする

fedora29.png
そろそろ頃合いかなということで手元の Linux 開発環境も、先日組んだ自作 PC に移行することにした。
すでに Windows がインストールされているマシンなので、恒例のマルチブート構成(EFI ブート)で Fedora 29 を追加でインストールした。
ビデオカードのドライバー設定などは毎回はまるので、作業の覚書きとして、詰まりそうな箇所のみ将来のために特筆しておく。

Fedora 29 のパーティションをカスタマイズする

Fedora 29 Workstation の Live メディアを USB メモリとして作っておき、それでブート後にインストールしていく。
インストールは画面に従って進めていけばいいが、パーティションのレイアウトだけは自分で決めたかったので以下のようにカスタマイズした(もちろんパーティションのレイアウトは自動で生成することもできる)。

fedora29_partitions.png
インストールするディスクが sdb だったので、パーティションは指定した順に /dev/sdb1 〜 /dev/sdb2 になっている。
デバイス    マウントポイント   サイズ   タイプ
/dev/sdb1   /boot/efi          200MiB   EFI パーティション
/dev/sdb2   swap               2GiB     swap
/dev/sdb3   /                  109.6G   ext4
近年の流れにのって EFI でブートするようにするため、200 MiB の /boot/efi パーティションを忘れずに先頭に置いておく。
メモリは 16 GB 積んでいるので swap パーティションを作る必要があるのか迷ったが、今までずっと作ってきたので今回もなんとなく作っておいた。
残りの容量はすべて何も考えずに / に割り当てた。個人の開発環境なのでこれくらいがちょうどいいかなと。

NVIDIA のビデオカードのドライバーをインストールする

毎回 Linux 環境を作る際に苦労するのがこの NVIDIA のビデオカード用ドライバーのインストールになる。せっかくいいビデオカードを積んでいるので綺麗な GUI でマルチディスプレイ環境を使えるようにしたいのだが、NVIDIA のドライバーは別途インストールしなければならないこともあり、面倒くさい。

Fedora 29 をアップデートする

まずは Fedora 29 自体をアップデートしておく。
# dnf update
特に plymouth を最低でも 0.9.4-1 に上げておかないと、NVIDIA のビデオカードドライバーをインストールしても、GUI ログイン後に画面がブラックアウトする不具合にひっかかってしまう。昨日の夜かなりこれに悩まされていて、今朝起きたら修正版が stable リポジトリに push されていた。

アップデートによってカーネルも 4.19.6-300 まで上がったので、一度再起動して 4.19.6-300 のカーネルでこのあとの作業を進めていくとよい。
# reboot

NVIDIA のドライバーをダウンロードする

nvidia の Linux ドライバーのページから搭載しているビデオカードのドライバーをダウンロードする。
積んでいるビデオカードは GeForce GTX 1070 Ti で、ダウンロードしたのは NVIDIA-Linux-x86_64-410.78.run だった。
過去に公開されていたバージョン 304.134 や 304.135 あたりのドライバーにはパッチを当てる必要があるらしいが、ダウンロードしたバージョンでは修正されているのでそのままインストールしてよい。

ダウンロードしたドライバーは runlevel 3 の CLI から実行することになるので、ホームディレクトリ直下などに移動しておくこと。実行時のファイルパスに日本語名のディレクトリ(ダウンロード等)が含まれているとうまく動いてくれなかった。

依存するツールと GRUB2 の準備

NVIDIA のビデオカードドライバーをインストールするために、依存するビルド用ツールと dkms をインストールしておく。
# dnf groupinstall "Development Tools"
# dnf install dkms "kernel-devel-uname-r == $(uname -r)"
dkms はオプションらしいのだが、念のため。

また、NVIDIA のビデオカードドライバーと競合する nouveau を無効にしておく。
GRUB2 の設定ファイル /etc/default/grub を開き、GRUB_CMDLINE_LINUX 値の起動パラメーター末尾に nouveau.modeset=0 を指定する。
...
GRUB_CMDLINE_LINUX="resume=UUID=xxxxxxxx-8d2f-4a44-a70b-61e06d371041 rhgb quiet nouveau.modeset=0"
...
/etc/default/grub は編集後に /boot/efi/EFI/fedora/grub.cfg に反映させておく必要があるため、grub2-mkconfig を叩いておく。
# grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg
ちなみに EFI ブートを利用するので /boot/efi/EFI/fedora/grub.cfg に出力しているが、EFI ブートを利用しない場合は出力先は /boot/grub2/grub.cfg となる。

NVIDIA ドライバーをインストールする

NVIDIA ドライバーは X サーバー(GUI)が動いているとインストールできないので、再起動して runlevel 3(CUI)にしておく必要がある。
GUI が動いているうちに CUI で起動するよう設定してもよいが、GRUB2 で起動する際にも一時的に起動パラメーターを書き換えられるのでそう進めることにした。

GRUB2 でブートする OS を選択する際に e キーを押すと起動パラメーター(GRUB_CMDLINE_LINUX 値)を編集できるので、末尾にスペースと 3 を書き加え、Ctrl + x で起動する。

なお、GeForce GTX 1070 Ti では NVIDIA のビデオカードドライバーをインストールするまではマルチディスプレイの動作は不安定なので、ディスプレイは 1 枚だけ繋いでおくようにした。

runlevel 3 で起動したら、そのまま CUI でログインして先程ダウンロードしたビデオカードドライバーを実行する。
# sh NVIDIA-Linux-x86_64-410.78.run
インストール時にはいくつか質問されるので以下の選択肢を選んだ。
dkms カーネルモジュールのソースをインストールするか? > Yes
・32 bit 互換のライブラリをインストールするか? > Yes
・すでに存在する libglvnd ライブラリを上書きするか? > Install and overwrite existing files
・X サーバーの設定ファイルを更新するか? > Yes
3 つめの libglvnd に関する質問は libglvnd のインストールが不完全な場合に表示されるらしいが、上書きの選択で問題なく動いた。

インストール後には再度システムを再起動すると、NVIDIA のビデオカードドライバーが適用される。

やっぱりディスプレイが 2 枚使えるととても快適に感じられる。GNOME3 のリッチな GUI です感もいい感じ。

日本語入力の設定

日本語入力では ibus-mozc を利用する。
まずは dnf で ibus-mozc をインストールし、システムを再起動する。
# dnf install ibus-mozc
# reboot

再起動後に、設定 > Region & Language から、入力ソースとして日本語 > 日本語(Mozc) を選んで追加する。
fedora29_mozc.png
これでタスクバー右上の入力選択のプルダウンから日本語(Mozc)を選べば Mozc で日本語入力できるようになる。

GRUB2 をカスタマイズする

完全に個人的な好みになるが、マルチブート構成にしてあるのでデフォルトで起動する OS と、GRUB2 の起動 OS 選択画面でのタイムアウト値を変更しておく。

先ほどの設定ファイル /etc/default/grub を開き、デフォルトで起動する OS は GRUB_DEFAULT 値に指定する。
指定する値は以下のコマンドの結果から選ぶとよい。
# awk -F\' '$1=="menuentry " {print $2}' /etc/grub2-efi.cfg
Fedora (4.19.6-300.fc29.x86_64) 29 (Workstation Edition)
Fedora (4.18.16-300.fc29.x86_64) 29 (Workstation Edition)
Fedora (0-rescue-xxxxx2e70723423c97d2ea9e43784e5f) 29 (Workstation Edition)
Windows Boot Manager (on /dev/sda2)
System setup
上記リスト内の Windows を指定する場合は以下のようになる。
...
GRUB_DEFAULT='Windows Boot Manager (on /dev/sda2)'
...

また、起動 OS 選択画面でのタイムアウト値は GRUB_TIMEOUT 値に秒数として設定する。
/etc/default/grub 設定後は grub2-mkconfig コマンドで反映しておくこと。

古いカーネルを削除する

Fedora 29 の更新でカーネルのバージョンがあがったので、古いカーネルは削除する。
以下のように dnf コマンドを実行し、--latest-limit オプションに -1 を指定することで、最新版のカーネルのみ残して他のカーネルを削除することができる。
# dnf remove $(dnf repoquery --installonly --latest-limit=-1 -q)
これを実行することで、GRUB2 の起動 OS 選択画面からもエントリーが消えてくれる。
  Linux  コメント (0)  2018/12/09 13:28:15


公開範囲:
プロフィール HN: ももかん
ゲーム作ったり雑談書いたり・・・していた時期が私にもありました。
カレンダー
<<2019, 1>>
303112345
6789101112
13141516171819
20212223242526
272829303112