技術者になりたい何か

技術者になりたい何かの覚書的な何かです

メイン機のLinuxをArchにしました

なぜArchにしたし

元々使ってたのはLMDEでした。
元PCにはHDD3台にそれぞれWindows10(Insider Preview),Windows Vista,LMDE(Linux Mint Debian Edition)という仕様。
ちなみにk10世代でしたし純BIOSです。

前記事でも少し触れましたがとうとうRyzenにしました。
さすがのAMDでもMBにもメモリにも互換性ないのでほぼ新規組立。
ちなみに旧PCは最近PC壊れたとか言ってた職場の後輩に格安で提供。
余談ですがうちの鯖機はAthlon64x2 4800+ & M2AVMという化石のような構成ですが安定稼働してます。
しばらくあけてないけどコンデンサ大丈夫でしょうかね。

で、Ryzen機にHDDそのままつないでLMDE動くかなーと思ったら動きませんでした。
BIOSUEFIなので当り前ですね。UEFIよくわかってないけど。
busyboxに落ちたりGUI起動にこけるならまだやる気も沸いたけど、完全に起動途中で止まってるので手の出しようが無さそう。
というわけでLMDE入れ直そうと考えました。

が、ここで問題発生。

gihyo.jp


2年ぶり?公式のブログとか見てもなんだかLMDEの情報少ないような気がします。
噂によるとRyzenに正式対応しているカーネルは4.10以降とかなんとか。新しいハード構成なので、色々と古いのは支障が出そうです。
じゃあDebianで・・・jassieではカーネル3.16 stertchでも4.9・・・

あとfglrxがなくなってamdgpu-proになった模様です。浦島な気分です。
AMDの公式配布のLinux用ドライバはCentOS/RHEL,Ubuntu,SLED/SLESです。なぜUbuntuはあってDebianはないのでしょうか。
ArchのWiki見てみたらamdgpu-proの導入方法があったし、AURにパッケージあるっぽかっのでこれはいけるかも
あとArchなら基本的にほぼ最新のカーネル降りてきます。

じゃあArchにしよう。ちょうどUSBも1GBのしかないですし。
(手持ちの8GBはWindows10のインストールメディアにしてしまって他のいくつかは行方不明です。
 しかも光学ドライブは付いてないです。旧PCに載っけたまま譲っちゃいました。

というわけでArch入れるよ

参考にしたところ

Arch LinuxをUEFI + GPT環境にインストールする

VMwareにArch Linuxをインストールしよう - Qiita

インストールガイド - ArchWiki

基本的な流れを把握したら、あとは順にやっていけば大丈夫です。基本的に。
パーティション → base インストール → chrootで最低限の設定 → bootloaderインストールって感じですね。
ここまでやったらHDDで起動自体はできるので、あとは好みに応じたGUI環境とか設定入れていけばよいです。

一応実機入れる前に仮想環境で何度か入れていたことが有りましたので、流れ自体は把握してたのでよかったです。
とはいえ使うコマンド全部覚えてたわけじゃないので調べながらでしたけど。

GUI環境+RX560用の色々を入れてみるよ

GUI環境はとりあえずmate。使い慣れたのがいいですね。
Xorg,Mate,LightDMあたりとその他適当に。

ここでamdgpu-proを入れてみる・・・

と思うじゃん。

AMDGPU - ArchWiki

「AMDGPU PRO を使うには linux (4.8 または 4.9) と Xorg (1.18) パッケージのダウングレードが必要になります。」

えーと、Ryzen対応のカーネルは4.10以降なんだけど、4.10以降のカーネルにはamdgpu-proは入れられない。
CPUかGPUかどっちかにしろって事ですねわかりません。

ダメもとでそのままamdgpu-pro突っ込んだら起動しなくなりました。
GUIが起動しないんじゃなくて、カーネルがPCIdevice見失ってる?っぽいメッセージが出て起動プロセスが止まります。
Recovery modeもダメだし、busyboxにも落ちないので何もできず。
入れ直し。

amdgpu-proは使えないけどもxf86-video-amdgpu+mesa-vdpau で結構快適です。
動画再生支援が聞いてるかは微妙ですが、不快な感じは無し。特に問題無く使えてます。
ベンチはしてない。

あとRyzen用の設定各種

sensorsにはit87が必要だった模様

普通に入れて設定してみたけどどーも温度とか拾ってくれません。というか拾っている項目が少なすぎます。

$ yaourt -S lm_sensors
$ sudo sensors-detect
$ sensors

どうもit87-driverが必要とかなんとか(MSIはnct6775とかなんとか
Ryzen Temperature Monitoring(Arch Forum)
https://bbs.archlinux.org/viewtopic.php?id=225370

$ yaourt -S it87-dkms-git
$ sudo modprobe it87
$ sudo sensors-detect
$ sensors
amdgpu-pci-2500
Adapter: PCI adapter
fan1: 1020 RPM
temp1: +39.0°C (crit = +0.0°C, hyst = +0.0°C)

it8655-isa-0290
Adapter: ISA adapter
in0: +0.42 V (min = +2.57 V, max = +2.34 V) ALARM
in1: +2.50 V (min = +2.32 V, max = +0.95 V) ALARM
in2: +2.03 V (min = +2.47 V, max = +1.23 V) ALARM
in3: +2.04 V (min = +1.91 V, max = +1.29 V) ALARM
in4: +2.04 V (min = +2.67 V, max = +0.72 V) ALARM
in5: +1.96 V (min = +2.69 V, max = +2.57 V) ALARM
in6: +2.04 V (min = +2.05 V, max = +1.62 V) ALARM
3VSB: +1.68 V (min = +2.41 V, max = +2.26 V) ALARM
Vbat: +1.65 V
+3.3V: +1.68 V
fan1: 1117 RPM (min = 16 RPM)
fan2: 505 RPM (min = 27 RPM)
fan3: 551 RPM (min = 20 RPM)
temp1: +39.0°C (low = -110.0°C, high = +59.0°C)
temp2: +35.0°C (low = -25.0°C, high = +87.0°C)
temp3: +41.0°C (low = -66.0°C, high = -33.0°C) ALARM sensor = thermistor
intrusion0: ALARM

asus-isa-0000
Adapter: ISA adapter
cpu_fan: 0 RPM

 

きましたね。in0がVcore?min,maxの数値がおかしいですが、取れてるので良しとします。

起動時にit87読んでくれるように/etc/modules-load.d/にit87用の設定ファイルを置きます。
it87.confを作成。中身はit87と書いておきます。

$ sudo emacs /etc/modules-load.d/it87.conf
it87

これで再起動時にも勝手に読んでくれるのでmodprobeしなくてもいきなりsensorsが使えるようになります。

Zenstatesで低電圧化orOC

ここにあるのでgitとかで取ってきます

github.com

modprobe msr してから -lつけて実行すると今のstatesが見れます。

ここから-f -d -vオプションでクロック、電圧の調整。
modprobe msr がめんどい人は上のit87みたいに/etc/modules-load.d/にmsrって書いたファイル突っ込んどけばよいです。

$ modprobe msr
$ sudo ZenStates-Linux/zenstates.py -h
usage: zenstates.py [-h] [-l] [-p {0,1,2,3,4,5,6,7}] [--enable] [--disable] [-f FID] [-d DID] [-v VID]

Sets P-States for Ryzen processors

optional arguments:
-h, --help show this help message and exit
-l, --list List all P-States
-p {0,1,2,3,4,5,6,7}, --pstate {0,1,2,3,4,5,6,7}
P-State to set
--enable Enable P-State
--disable Disable P-State
-f FID, --fid FID FID to set (in hex)
-d DID, --did DID DID to set (in hex)
-v VID, --vid VID VID to set (in hex)
--c6-enable Enable C-State C6
--c6-disable Disable C-State C6
$ sudo ./ZenStates-Linux/zenstates.py -l
P0 - Enabled - FID = 8C - DID = 8 - VID = 38 - Ratio = 35.00 - vCore = 1.20000
P1 - Enabled - FID = 78 - DID = 8 - VID = 58 - Ratio = 30.00 - vCore = 1.00000
P2 - Enabled - FID = 7C - DID = 10 - VID = 8A - Ratio = 15.50 - vCore = 0.68750
P3 - Disabled
P4 - Disabled
P5 - Disabled
P6 - Disabled
P7 - Disabled
C6 State - Package - Enabled
C6 State - Core - Enabled

 

うちの1500XはOCはWindows上で定格電圧では3.8G位までしか安定しないことが分かっています。
(軽いベンチはクリアできるけどprime95は30秒持たない)
Linux上では低電圧攻めてみましょうか。

hexだし基準値から-される計算だったりするのでめんどいですけど、出たばかりのCPUでこういったツールがあるのは珍しいかもしれない。

$ sudo ./ZenStates-Linux/zenstates.py -p 0 -v 38
$ sudo ./ZenStates-Linux/zenstates.py -p 1 -v 58
$ sudo ./ZenStates-Linux/zenstates.py -p 2 -v 8A

$ sudo ./ZenStates-Linux/zenstates.py -l
P0 - Enabled - FID = 8C - DID = 8 - VID = 38 - Ratio = 35.00 - vCore = 1.20000
P1 - Enabled - FID = 78 - DID = 8 - VID = 58 - Ratio = 30.00 - vCore = 1.00000
P2 - Enabled - FID = 7C - DID = 10 - VID = 8A - Ratio = 15.50 - vCore = 0.68750
P3 - Disabled
P4 - Disabled
P5 - Disabled
P6 - Disabled
P7 - Disabled
C6 State - Package - Enabled
C6 State - Core - Enabled

$ sensors
amdgpu-pci-2500
Adapter: PCI adapter
fan1: 1020 RPM
temp1: +39.0°C (crit = +0.0°C, hyst = +0.0°C)

it8655-isa-0290
Adapter: ISA adapter
in0: +0.42 V (min = +2.57 V, max = +2.34 V) ALARM
in1: +2.50 V (min = +2.32 V, max = +0.95 V) ALARM
in2: +2.03 V (min = +2.47 V, max = +1.23 V) ALARM
in3: +2.04 V (min = +1.91 V, max = +1.29 V) ALARM
in4: +2.04 V (min = +2.67 V, max = +0.72 V) ALARM
in5: +1.96 V (min = +2.69 V, max = +2.57 V) ALARM
in6: +2.04 V (min = +2.05 V, max = +1.62 V) ALARM
3VSB: +1.68 V (min = +2.41 V, max = +2.26 V) ALARM
Vbat: +1.65 V
+3.3V: +1.68 V
fan1: 1117 RPM (min = 16 RPM)
fan2: 505 RPM (min = 27 RPM)
fan3: 551 RPM (min = 20 RPM)
temp1: +39.0°C (low = -110.0°C, high = +59.0°C)
temp2: +35.0°C (low = -25.0°C, high = +87.0°C)
temp3: +41.0°C (low = -66.0°C, high = -33.0°C) ALARM sensor = thermistor
intrusion0: ALARM

asus-isa-0000
Adapter: ISA adapter
cpu_fan: 0 RPM

 

クロック落としたりすればもう少し攻められそうな気もしますが。


■感想

数年前にはインストールで躓いたけど割とスムーズに入れられました。
基本的に余計なものが入ってこなかったり、設定ファイル書き換えられたりっていうのが少なくて快適です。
自力感が味わえるかもしれないです。
新しいパッケージがガンガン降りてくるので、そういうのが好きな人には良いと思います。
ローリングリリースなので、一回入れてしまえば再インストールの手間はないです。壊さない限り。