« 会社のメール環境が Outlook 限定に… | トップページ | Kodi の設定 »

2019-06-24

メインマシンを AMD Ryzen 5 2400G に

しばらく AMD A10-5700 をメインマシンで使っていたが、 Debian Buster のリリースも間近となって kernel 4.19 になることから、久しぶりに話題の AMD Ryzen に入れ替えることにした。

最終的に入れ替えた部材は以下の通り。

  • APU: AMD Ryzen 5 2400G (Radeon Vega 11 内蔵)
  • MB: ASUS PRIME B450M-A
  • Memory: CFD PANRAM W4U2666PS-16GC19 (PC4-21300 16Gx2)
  • NVMe SSD: Sandisk Extreme Pro 500GB
  • HDD: WD Red WD40EFRX (4TB)

ちなみに旧パーツはソフマップで 4,000円で売れました。

近頃 Linux 界では Ryzen が Hot らしいが、それなりにノウハウが必要なので備忘録として残しておく。

HDD

本当は HDD は旧 PC のものをそのまま使う予定だったのだが、移行前にデータを整理している最中にお亡くなりに… 😓

良い子はこまめにバックアップを取りましょう。

自作 PC 用パーツを扱っている量販店に行ってみると、今は店頭に並んでいるコンシューマ向け HDD は大半が SMR (瓦記録) になっているんですね。 仕事柄 HDD にはちょっとうるさいのと、 HDD 障害の後の買い替えなので SMR は避けたい。 SMR かどうかはベンダーは公表していないが、いろんな情報から現時点では SMR ではない Seagate の IronWolf か WD の Red の二択に。 今まで使っていたのが Seagate だったこともあり、今回は(個人的にはあまり印象が良くない) WD の Red を選択。

Windows のインストール

使用頻度は非常に低いが、動作確認等のために一応 Windows 10 はインストールしておく。

注意が必要なのは、インストールする NVMe SSD の容量が 500GB のため、そのままだと MBR でインストールされてしまうこと。 予め Linux (GParted Live CD 等) でパーティションを GPT にしておき、 UEFI でインストールされるようにする。

Windows をインストールした後には再度 GParted のお世話になり、 Linux をインストールする領域を空けておく。

Debian Buster のインストール

私がインストールした頃はまだ Debian Buster がリリースされていなかったので、 テスト版のインストーラ を利用。 もうじき Buster もリリースされるので、その際には正規の安定版インストーラでも大丈夫でしょう。

インストーラの指示通りやれば普通にインストールできるはず。 Buster からは UEFI Secure Boot 対応になっているため、 Secure Boot 有効のままでもインストール可能。

すんなりインストールできるが、実は再起動するとグラフィカルインタフェースは立ち上がらない。 GRUB でシングルユーザモードを選択し、コンソール画面でいろいろインストールする必要がある。

  1. まずは /etc/apt/sources.list を編集して non-freecontrib を追記する
    deb http://deb.debian.org/debian buster main non-free contrib
  2. apt-get update
  3. apt-get install firmware-linux firmware-realtek
  4. reboot

他のやり方をしている人も多いと思うが、これでグラフィカルインタフェースも立ち上がるはず。

X の設定

Debian Buster の標準デスクトップ環境は Gnome Wayland になっている。 そのままでも使えないことはないが、 AMD-GPU の Wayland ドライバがないため、各種アクセラレーションが効かずに宝の持ち腐れになる。 このため、 Wayland ではなく Xorg で動作するように変更する。

/etc/gdm3/daemon.conf を編集し Wayland を無効にする。

[daemon]
# Uncomment the line below to force the login screen to use Xorg
WaylandEnable=false

これで次の起動からは Xorg の xserver-xorg-video-amdgpu ドライバで動くようになる。 GDM 以外の Display Manager を使うという手もあるが、現時点ではユーザ権限で X が動作するようにするには GDM 以外に選択肢がないため、私はこのようにしている。

併せて glx-diversions パッケージをインストールして OpenGL のアクセラレーションが効くようにした方がいいだろう。 VMware を使う場合には この設定 も忘れずに…

センサー

k10temp は自動的にロードされ問題なく動作する。 昔と違って TdieTctl という二種の温度が読める。 以前は相対値しかわからず補正が必要だったが、どうも補正無しで正しい値が読めるようだ。

amdgpu は APU 内蔵ではない外付けも想定しているため、必要ない情報まで出てくる。 私は /etc/sensors.d/AMD_Ryzen5_2400G に以下のように設定。

chip "amdgpu-pci-0900"
  label temp1 "Tgpu"

  ignore in0
  ignore in1
  ignore fan1
  ignore power1

問題は、マザーボードのセンサー。 いろいろ調べると、このマザーボードで使用している it87 のモジュールは長らくアップデートされていない (kernel にマージされていない) らしい。 幸いモジュールのメンテをしている人がいたため、このアップデートされたモジュールを使う。

元々のメンテナは Guenter Roeck だったが、モジュール開発に必要な情報を得るために NDA が必要だったり…と限界を感じて 開発から撤退 し、今はこの方の開発していたモジュールをミラーしている以下のサイトが残っている。

※ 参考: Driver for Asus B450 motherboard to enable LM Sensors / other boards

$ cd 適当な場所
$ git clone https://github.com/a1wong/it87.git
$ cd it87/
$ su
# make dkms

これでマザーボードのセンサーが使えるようになる。 センサーの設定は不明のところが多々あるが、とりあえず /etc/sensors.d/ASUS_B450M-A に以下のように設定している。

## sensors.conf for ASUS PRIME B450M-A
chip "it8655-isa-0290"

    # Fans
    label fan1 "fan1/CPU"
    label fan2 "fan2/CHA"
    label fan3 "fan3/CHA"

    # Temperatures
    label temp1 "temp1/CPU"
    set temp1_min        5
    set temp1_max       70
    set temp1_max_hyst  66
    set temp1_crit      80
    set temp1_crit_hyst 76

    label temp2 "temp2/Mobo"
    set temp2_min       5
    set temp2_max      60
    set temp2_max_hyst 56

    label temp3 "temp3/Mobo"
    set temp3_min       5
    set temp3_max      60
    set temp3_max_hyst 56

    #ignore temp4
    #ignore temp5
    #ignore temp6

    ignore intrusion0

chip "asus-isa-0000"
    ignore fan1

なお、この it87 のモジュールをロードするためには、前述の UEFI Secure Boot を無効にするか、 it87 モジュールを署名 [1] しないといけない。
私は面倒なので、結局 UEFI Secure Boot を無効にした。

このままだと再起動時にロードされないため、 /etc/modules-load.d/asus-b450m.conf に以下の設定を入れておく。

it87

ついでに /etc/modprobe.d/asus-b450m.conf に以下の設定を入れておく。

# remove unnecessary asus-isa-0000 sensors module
blacklist eeepc-wmi
# use MMIO to access the chip
options it87 mmio=1

前半は不必要なモジュールをロードしないようにするもの。
後半はセンサーチップへ MMIO を使ってアクセスするためのもの。これは BIOS の設定次第では指定しないほうがいいかもしれない。


[1]: VMware 用モジュールも同様で モジュールへの署名のしかた が書かれたサイトはいくつか見つけている。ただ、モジュールやカーネルがアップデートされる度にこれをやるのはかなり面倒であり、 UEFI Secure Boot DKMS Module Utilities のようなツールを使うのが確実。 VMware も dkms 方式になっているとありがたいのだが…

« 会社のメール環境が Outlook 限定に… | トップページ | Kodi の設定 »

パソコン・インターネット」カテゴリの記事

Linux」カテゴリの記事

コメント

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

« 会社のメール環境が Outlook 限定に… | トップページ | Kodi の設定 »

2019年12月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
無料ブログはココログ