Ubuntu Weekly Recipe

第523回 Kaby Lake GでパワフルPCを構築する

この記事を読むのに必要な時間:およそ 9 分

Ubuntuをインストールする際の注意点

あとは普通のPCと同じようにUbuntu 18.04 LTSをUSBメモリーに書き出して,Hades Canyonに接続し起動しましょう。今回はデスクトップ版をインストールします。

ここで最初の注意点です。カーネルの起動パラメーターを変更する必要があります。UEFIブートになっているはずなので,最初に黒い背景に白い文字のGRUBの画面が表示されるはずです。このうち「Try Ubuntu without installing」「Install Ubuntu」のどちらにカーソルを合わせ,⁠e」キーを入力して編集モードに入ってください。前者はLive環境を起動する際に選択し,後者はすぐにインストーラーを起動する際に選択します。

編集モードに入ったら,linuxで始まる行を探します。末尾がquiet splash $vt_handoffのようになっていると思いますので,次のようにnomodesetを追加してください。順番は入れ替わってもかまいません。

linux   (中略)  nomodeset quiet splash $vt_handoff

編集後「Ctrl-x」もしくは「F10」を押せば,起動が開始します。ブートスプラッシュを眺めながら,デスクトップもしくはインストーラーが表示されるのをおとなしく待ちましょう。

このnomodesetは,LinuxのKernel Mode Setting(KMS)機能を無効化するオプションです。KMSはGPUのディスプレイ出力デバイスとしての設定を主にX Window Systemなどのユーザーランド側ではなく,カーネル自身が行う機能です。一般的なPCにおいては,起動時にまずBIOSがディスプレイ出力を設定し,ブートローダーを起動します。その後カーネルが起動すると,⁠大抵の場合はinitramfsの展開後に)適切なビデオドライバーをロードした上でKMS機能を元に画面の設定を行います。nomodesetを指定すると,カーネル自身はBIOSの設定をそのまま継承し,X Window Systemが設定を行うようになるのです。

Hades Canyonだと,本来はKMSにも対応しているAMDGPUドライバーが使われるはずです。しかしながら18.04で使用している4.15カーネルとファームウェアはdGPUのRadeon RX Vega Mには対応していません。ここから先は推測になってしまいますが,iGPUのi915ドライバーのみがロードされてそちらの設定を行ってしまうようです。結果的にGRUBのあと画面が暗転したまま,応答がなくなります。

nomodesetを使用することでカーネル側はKMSを利用せず,X Window System側はジェネリックなデバイスとして認識し設定します※6)⁠まずは起動することが重要なので,今のところはこの方法で進めましょう。

※6
ちなみにGPUドライバーごとにKMSを使わない設定も可能です。

図1 設定画面を表示するとLLVMpipeが動いていることがわかる

画像

図2 ディスプレイ出力も1920x1080しか出せない

画像

上記のようにdGPUの本領は発揮できていない状態です。これについてはAMDGPUドライバーのプロプライエタリ版のより新しいバージョンをインストールするか,より新しいカーネルとファームウェア,Mesaの組み合わせで解消できると思われます。

インストール手順は普通のUbuntuと同じです。NVMe SSDもWi-Fiも問題なく動きますので,特につまづくところはないでしょう。インストール後,再起動する際にGRUBで再びnomodesetを設定することを忘れないでください。その際にはGRUB上では一番上のメニューエントリーを選択・編集してください。

無事にインストールし,再起動を終えたらGRUBの設定を恒久化します。/etc/default/grubGRUB_CMDLINE_LINUXnomodesetを追加するだけです。

$ sudo sed -i 's/^\(GRUB_CMDLINE_LINUX=".*\)"/\1 nomodeset"/' /etc/default/grub
$ sudo update-grub

これでUbuntuのインストールは完了です。

なお,詳細は不明ですがシャットダウンすると,一度ACアダプターを抜かないと電源が入らないような状況でした。再起動は特に問題なく動作します。

第522回を見習って,lshwの簡易出力を取得してみましょう。

$ sudo lshw -short
H/W path          デバイス  クラス      詳細
=====================================================
                                system         NUC8i7HVK
/0                              bus            NUC8i7HVB
/0/0                            memory         64KiB BIOS
/0/3d                           memory         32GiB システムメモリー
/0/3d/0                         memory         16GiB SODIMM DDR4 同期 Unbuffered (Unregistered) 2400 MHz (0.4 ns)
/0/3d/1                         memory         Project-Id-Version: lshwReport-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>PO-Revision-Date: 2014-1
/0/3d/2                         memory         16GiB SODIMM DDR4 同期 Unbuffered (Unregistered) 2400 MHz (0.4 ns)
/0/3d/3                         memory         Project-Id-Version: lshwReport-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>PO-Revision-Date: 2014-1
/0/43                           memory         256KiB L1 キャッシュ
/0/44                           memory         1MiB L2 キャッシュ
/0/45                           memory         8MiB L3 キャッシュ
/0/46                           processor      Intel(R) Core(TM) i7-8809G CPU @ 3.10GHz
/0/100                          bridge         Intel Corporation
/0/100/1                        bridge         Skylake PCIe Controller (x16)
/0/100/1/0                      display        Advanced Micro Devices, Inc. [AMD/ATI]
/0/100/1/0.1                    multimedia     Advanced Micro Devices, Inc. [AMD/ATI]
/0/100/1.1                      bridge         Skylake PCIe Controller (x8)
/0/100/1.1/0                    bus            ASMedia Technology Inc.
/0/100/1.1/0/0    usb3          bus            xHCI Host Controller
/0/100/1.1/0/0/2                input          USB Receiver
/0/100/1.1/0/1    usb4          bus            xHCI Host Controller
/0/100/1.2                      bridge         Skylake PCIe Controller (x4)
/0/100/1.2/0                    generic        SD/MMC Card Reader Controller
/0/100/2                        display        Intel Corporation
/0/100/8                        generic        Skylake Gaussian Mixture Model
/0/100/14                       bus            Sunrise Point-H USB 3.0 xHCI Controller
/0/100/14/0       usb1          bus            xHCI Host Controller
/0/100/14/0/9                   communication  Bluetooth無線インターフェース
/0/100/14/1       usb2          bus            xHCI Host Controller
/0/100/14.2                     generic        Sunrise Point-H Thermal subsystem
/0/100/15                       generic        Sunrise Point-H Serial IO I2C Controller #0
/0/100/15.1                     generic        Sunrise Point-H Serial IO I2C Controller #1
/0/100/15.2                     generic        Intel Corporation
/0/100/16                       communication  Sunrise Point-H CSME HECI #1
/0/100/1c                       bridge         Sunrise Point-H PCI Express Root Port #1
/0/100/1c.1                     bridge         Sunrise Point-H PCI Express Root Port #2
/0/100/1c.1/0     enp5s0        network        I210 Gigabit Network Connection
/0/100/1c.2                     bridge         Sunrise Point-H PCI Express Root Port #3
/0/100/1c.2/0     wlp6s0        network        Wireless 8265 / 8275
/0/100/1c.4                     bridge         Sunrise Point-H PCI Express Root Port #5
/0/100/1d                       bridge         Sunrise Point-H PCI Express Root Port #9
/0/100/1d/0                     storage        Sandisk Corp
/0/100/1e                       generic        Sunrise Point-H Serial IO UART #0
/0/100/1f                       bridge         Sunrise Point-H LPC Controller
/0/100/1f.2                     memory         Memory controller
/0/100/1f.3                     multimedia     Intel Corporation
/0/100/1f.4                     bus            Sunrise Point-H SMBus
/0/100/1f.6       enp0s31f6     network        Ethernet Connection (2) I219-LM
/1                              power          To Be Filled By O.E.M.

またdmesglshwの結果などは次のURLにアップロードしてあります。

温度計測環境の導入

高負荷時に各種温度がどうなるかを計測するために第183回でも紹介しているlm-sensorsパッケージをインストールしています。

$ sudo apt install lm-sensors psensor
$ sudo sensors-detect
(すべて初期値で回答)

psensorはlm-sensorsのGUIフロントエンドです。実際に平常時の温度を表示してみましょう。

$ sensors
coretemp-isa-0000
Adapter: ISA adapter
Package id 0:  +46.0°C  (high = +100.0°C, crit = +100.0°C)
Core 0:        +43.0°C  (high = +100.0°C, crit = +100.0°C)
Core 1:        +44.0°C  (high = +100.0°C, crit = +100.0°C)
Core 2:        +42.0°C  (high = +100.0°C, crit = +100.0°C)
Core 3:        +42.0°C  (high = +100.0°C, crit = +100.0°C)

acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +119.0°C)
temp2:        +29.8°C  (crit = +119.0°C)

iwlwifi-virtual-0
Adapter: Virtual device
temp1:        +44.0°C

pch_skylake-virtual-0
Adapter: Virtual device
temp1:        +45.5°C

coretempはCPUの温度です。Packageがパッケージ全体の温度,Coreが各コアごとの温度になります。acpitzはACPI Thermal Zoneごとに取得した温度になります。iwlwifiはWi-Fiチップの温度です。pchはM.2などがぶら下がっているPCHチップ(Intel HM175)の温度となります※7)⁠

※7
他にもハードウェアモニタリングのチップとしてITE IT8987VG/BXが載っているようなのですが,カーネル側で未対応なためか表示されませんでした。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。

コメント

コメントの記入