技術者になりたい何か

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

Windows10でPowerShell,コマンドプロンプトからssh

WindowsではTeraterm使ってたんですけど、Linux使ってるときみたいにコマンドプロンプトからssh hogeを叩いてつなぎたい!!
ってことでやってみました。
Windows10 Pro x64 1709 build 17025.1000
接続先はお家サーバのDebiansshdは設定済み。

導入までの流れ
1.Windows版OpenSSHをDLして適当なフォルダに配置。
2.Path通す
3.PowerShell or コマンドプロンプトからssh hogeしてつなぐ
4.ログインできたらやったね!!

1.なんかWindows版OpenSSHが出たらしい

ということでDL。
https://github.com/PowerShell/Win32-OpenSSH/releases

OpenSSH-Win64.zipをDL。Windowsの環境に合わせたのをDLしましょう。
今回は解凍したものをC\直下に配置。

2.システムの詳細設定から環境変数でPath通す。

コントロールパネル→システム→システムの詳細設定→環境変数

新規にて
変数:Path
値:C:\OpenSSH-Win64
と設定してOK。
値は1でOpenSSH-Win64を配置したフォルダにします。

3.PowerShell or コマンドプロンプトからssh hoge

なんかssh ipだけにすると、ユーザ名が「ユーザ名@Windows端末名」になってる模様なので、エラー出ますけど。

ssh ユーザー名@接続先

で打てば大丈夫。

4.繋がったやったね!!

ssh導入前→sshコマンドか使えないよって言われます。

f:id:t_min:20171207051453p:plain

導入後

f:id:t_min:20171207051705p:plain

サーバに繋いだとこ。

f:id:t_min:20171207051723p:plain

一応文字化け等なく問題なく接続できたけど、X転送がうまくいかない。
VcXsrvの方の設定だと思うけれども。

てきすとすとりーむ1

テキスト処理系コマンドその1

テキストデータを見たり加工したりするための色々。
組み合わせて使うとなんだか色々できる。

cat

ファイルの中身を表示する。
主なオプション
-n 各行の左端に行番号を付ける。

リダイレクトでつなぐと二つのファイルを一つにまとめたりできる。

$ ls
greptes greptes~ testtest yum.log yum.log-20160101
$ cat yum.log yum.log-20160101 > yum2.log
$ ls
greptes greptes~ testtest yum.log yum.log-20160101 yum2.log

head

ファイルの先頭部分表示。
デフォルトでは10行。

主なオプション

-n 行数 先頭から指定された行数表示
-c バイト数 出力するバイト数指定

$ head -n 2 /var/log/pacman.log
[2017-07-24 05:55] [PACMAN] Running 'pacman -r /mnt/ -Sy --cachedir=/mnt//var/cache/pacman/pkg --noconfirm base base-devel dosfstools openssh ccache emacs'
[2017-07-24 05:55] [PACMAN] synchronizing package lists

$ head -c 16 /var/log/pacman.log
[2017-07-24 05:5

 

tail

ファイルの末尾表示。デフォルトで10行。

おもなオプション
-n 行数 指定した行数表示
-c バイト数 指定したバイト数表示
-f ファイルの末尾に追加された行を表示し続ける

tailコマンドで特筆すべきは-fオプション。
ファイルの末尾に追加された行を表示し続けるため、リアルタイムでログを見ながら何かの作業をするときなどによく使う。

$ sudo tail -f /var/log/nginx/error.log
2017/08/16 08:39:56 [notice] 5174#5174: exiting
2017/08/16 08:39:56 [notice] 5173#5173: signal 17 (SIGCHLD) received
2017/08/16 08:39:56 [notice] 5173#5173: worker process 5174 exited with code 0
2017/08/16 08:39:56 [notice] 5173#5173: exit
2017/08/17 00:33:24 [notice] 8726#8726: using the "epoll" event method
2017/08/17 00:33:24 [notice] 8726#8726: nginx/1.12.1
2017/08/17 00:33:24 [notice] 8726#8726: OS: Linux 4.12.5-1-zen
2017/08/17 00:33:24 [notice] 8726#8726: getrlimit(RLIMIT_NOFILE): 1024:4096
2017/08/17 00:33:24 [notice] 8727#8727: start worker processes
2017/08/17 00:33:24 [notice] 8727#8727: start worker process 8728

こんな感じでリアルタイムでエラーログ見ながら修正してくときとかに便利。

nl

主なオプション

-b 形式 指定した形式で本文に行番号を付与する
-h 形式 指定した形式でヘッダに行番号を付与
-f 形式 指定した形式でフッタに行番号を付与

a すべての行
t 空白以外の行
n 行番号の付与を中止

ヘッダとかフッタとかよくわからないけどこういうことらしい。

\:\:\: ヘッダー
\:\: 本文
\: フッター

実行例

$ cat sample
\:\:\:
Header
\:\:
Ubuntu
CentOS
Fedora
\:
Footer

$ nl sample

Header

1 Ubuntu
2 CentOS
3 Fedora

Footer
nl -ha sample

1 Header

2 Ubuntu
3 CentOS
4 Fedora

Footer
$ nl -fa sample

Header

1 Ubuntu
2 CentOS
3 Fedora

4 Footer
$ nl -ba sample

Header

1 Ubuntu
2 CentOS
3 Fedora

Footer

 

使う場面があまり思い浮かばない。。。

od

主なオプション

-t 出力するフォーマットを指定する

出力タイプ
c ASCII文字
o 8進数
x 16進数

$ od sample
0000000 035134 035134 035134 044012 060545 062544 005162 035134
0000020 035134 052412 072542 072156 005165 062503 072156 051517
0000040 043012 062145 071157 005141 035134 043012 067557 062564
0000060 000162
0000061
$ od -t x sample
0000000 3a5c3a5c 480a3a5c 65646165 3a5c0a72
0000020 550a3a5c 746e7562 65430a75 534f746e
0000040 6465460a 0a61726f 460a3a5c 65746f6f
0000060 00000072
0000061
$ od -t c sample
0000000 \ : \ : \ : \n H e a d e r \n \ :
0000020 \ : \n U b u n t u \n C e n t O S
0000040 \n F e d o r a \n \ : \n F o o t e
0000060 r
0000061

これも使う場面があまり・・・プログラマな人とかは使うのかな?


cut

ファイルの各行から指定したフィールドを取り出す。

主なオプション
-c 文字数 取り出す文字位置を指定する
-d 区切り文字 フィールドの区切り文字を指定する(デフォルトはタブ)
-f フィールド 取り出すフィールドを指定する

$ cat yum.log
Aug 09 21:33:12 Updated: libgcc-4.4.7-16.el6.x86_64
Aug 09 21:33:13 Updated: dejavu-fonts-common-2.33-1.el6.noarch
Aug 09 21:33:13 Updated: tzdata-java-2015g-2.el6.noarch
Aug 09 21:33:13 Updated: libX11-common-1.6.0-6.el6.noarch
Aug 09 21:33:13 Updated: centos-release-6-7.el6.centos.12.3.x86_64
Aug 09 21:33:15 Updated: kernel-firmware-2.6.32-573.12.1.el6.noarch
Aug 09 21:33:15 Updated: ncurses-base-5.7-4.20090207.el6.x86_64
Aug 09 21:33:16 Updated: xkeyboard-config-2.11-3.el6.noarch
Aug 09 21:33:16 Updated: xorg-x11-server-common-1.15.0-36.el6.centos.x86_64
Aug 09 21:33:16 Updated: tzdata-2015g-2.el6.noarch
Aug 09 21:33:23 Updated: glibc-common-2.12-1.166.el6_7.3.x86_64
Aug 09 21:33:23 Updated: nss-softokn-freebl-3.14.3-23.el6_7.x86_64
Aug 09 21:33:27 Updated: glibc-2.12-1.166.el6_7.3.x86_64
Aug 09 21:33:27 Updated: ncurses-libs-5.7-4.20090207.el6.x86_64
Aug 09 21:33:27 Updated: bash-4.1.2-33.el6_7.1.x86_64
Aug 09 21:33:27 Updated: 1:dbus-libs-1.2.24-8.el6_6.x86_64
(以下略)

$ cut -c 5-6 yum.log
09
09
09
09
09
09
09

上記の場合日付の部分(5文字から6文字目)を取り出してる

-dでは区切り文字はデフォルトでタブ。一文字空白を区切りとして使うには" " もしくは' 'をつかうとよい。
(シングルorダブルクオーテーションで半角スペースを指定)
上記yum.logではフィールドの区切りが半角スペースなので、普通に-fだけでフィールド指定してもうまく取り出せない。
(区切りが無いとみなされるのですべて表示される?)

$ cut -d ' ' -f 3 yum.log
21:33:12
21:33:13
21:33:13
21:33:13
21:33:13
21:33:15
21:33:15
21:33:16
21:33:16

日付とパッケージ名を合わせて出したいときは一文字スペースを区切りとして、1,2,5番目のフィールドをそれぞれ取り出せばよいので

$ cut -d ' ' -f 1,2,5 yum.log
Aug 09 libgcc-4.4.7-16.el6.x86_64
Aug 09 dejavu-fonts-common-2.33-1.el6.noarch
Aug 09 tzdata-java-2015g-2.el6.noarch
Aug 09 libX11-common-1.6.0-6.el6.noarch
Aug 09 centos-release-6-7.el6.centos.12.3.x86_64
Aug 09 kernel-firmware-2.6.32-573.12.1.el6.noarch
Aug 09 ncurses-base-5.7-4.20090207.el6.x86_64
Aug 09 xkeyboard-config-2.11-3.el6.noarch
Aug 09 xorg-x11-server-common-1.15.0-36.el6.centos.x86_64
Aug 09 tzdata-2015g-2.el6.noarch

join

2つのファイルを読み込んで、それぞれの指定したフィールドが共通する行を結合する。
どちらのファイルもあらかじめ、joinで指定するフィールドでソートしておく必要がある。
エクセルとかMySQLのあんな感じを想像すると幸せな使い方が浮かびそう。

主なオプション
-j 連結するフィールドを指定する

join1 join2 の2つのファイルを一つ目のフィールドで連結する。

$ cat join1
Debian a
CentOS b
Arch c
Mint a
Ubuntu a
Fedra b

$ cat join2
Debian apt
CentOS yum
Arch pacman
Mint apt
Ubuntu apt
Fedra yum

 

$ join -j 1 join1 join2
Debian a apt
CentOS b yum
Arch c pacman
Mint a apt
Ubuntu a apt
Fedra b yum


paste

一致する行を水平方向に連結。連結時の区切り文字はデフォルトでタブ。

オプション
-d 区切り文字

さっきのファイルで実行。区切り文字を:とする。

$ paste -d ':' join1 join2
Debian a:Debian apt
CentOS b:CentOS yum
Arch c:Arch pacman
Mint a:Mint apt
Ubuntu a:Ubuntu apt
Fedra b:Fedra yum
:

tr

標準入力から読み込まれた文字列を変換とか削除とかする。

主なオプション
-d 「文字列1」でマッチした文字列を削除する。
-s 連続するパターン文字列を1文字として処理する。

クラス
[:alpha:] 英字
[:lower:] 英小文字
[:upper:] 英大文字
[:digit:] 数字
[:alnum:] 英数字
[:space:] スペース

sampleの中の英小文字を全て英大文字に変えて出力。

$ cat sample
\:\:\:
Header
\:\:
Ubuntu
CentOS
Fedora
\:
$ cat sample | tr 'a-z' 'A-Z'
\:\:\:
HEADER
\:\:
UBUNTU
CENTOS
FEDORA
\:

クラスを使って同じことをする

$ cat sample | tr [:lower:] [:upper:]
\:\:\:
HEADER
\:\:
UBUNTU
CENTOS
FEDORA
\:

\:を削除
削除するのが\なので囲ってエスケープ

$ tr -d '\\:' < sample

Header

Ubuntu
CentOS
Fedora

 

split

指定サイズでファイルを分割。
デフォルトでは1000行毎。
分割されたファイルには末尾にaa ab acがつく。

オプション
- 行数

yum.logを100行毎に分割。分割後のファイルはyumXX

$ ls
join1 join2 sample testtest yum.log yum.log-20160101 yum2.log
$ split -100 yum.log yum
$ ls
join2 testtest yum.log-20160101 yumaa yumac yumae
greptes join1 sample yum.log yum2.log yumab yumad yumaf

sort

行単位でファイル内容をソートする。
デフォルトでは昇順。

主なオプション
-b 行頭の空白無視
-f 大文字小文字の区別無視
-r 降順にソート
-n 数字を文字ではなく数値として処理
-k 列番号 指定した列の値でソート

使用例
yumaaの中で、時間よりもUpdateかInstalledかで比べたい。ので4番目の列でソートする。

$ cat yumaa
Aug 09 21:33:12 Updated: libgcc-4.4.7-16.el6.x86_64
Aug 09 21:33:13 Updated: dejavu-fonts-common-2.33-1.el6.noarch
Aug 09 21:33:13 Updated: tzdata-java-2015g-2.el6.noarch
Aug 09 21:33:13 Updated: libX11-common-1.6.0-6.el6.noarch
Aug 09 21:33:13 Updated: centos-release-6-7.el6.centos.12.3.x86_64
Aug 09 21:33:15 Updated: kernel-firmware-2.6.32-573.12.1.el6.noarch
Aug 09 21:33:15 Updated: ncurses-base-5.7-4.20090207.el6.x86_64
Aug 09 21:33:16 Updated: xkeyboard-config-2.11-3.el6.noarch
Aug 09 21:33:16 Updated: xorg-x11-server-common-1.15.0-36.el6.centos.x86_64
Aug 09 21:33:16 Updated: tzdata-2015g-2.el6.noarch
Aug 09 21:33:23 Updated: glibc-common-2.12-1.166.el6_7.3.x86_64
Aug 09 21:33:23 Updated: nss-softokn-freebl-3.14.3-23.el6_7.x86_64
Aug 09 21:33:27 Updated: glibc-2.12-1.166.el6_7.3.x86_64
Aug 09 21:33:27 Updated: ncurses-libs-5.7-4.20090207.el6.x86_64
Aug 09 21:33:27 Updated: bash-4.1.2-33.el6_7.1.x86_64
Aug 09 21:33:27 Updated: 1:dbus-libs-1.2.24-8.el6_6.x86_64
Aug 09 21:33:27 Updated: chkconfig-1.3.49.3-5.el6.x86_64
Aug 09 21:33:27 Updated: libstdc++-4.4.7-16.el6.x86_64
Aug 09 21:33:28 Updated: libcom_err-1.41.12-22.el6.x86_64
Aug 09 21:33:28 Updated: freetype-2.3.11-15.el6_6.1.x86_64
Aug 09 21:33:28 Updated: krb5-libs-1.10.3-42.el6.x86_64
Aug 09 21:33:28 Updated: libxml2-2.7.6-20.el6_7.1.x86_64
Aug 09 21:33:28 Updated: nspr-4.10.8-2.el6_7.x86_64
Aug 09 21:33:28 Updated: db4-4.7.25-20.el6_7.x86_64
Aug 09 21:33:28 Updated: nss-util-3.19.1-2.el6_7.x86_64
Aug 09 21:33:29 Updated: 2:shadow-utils-4.1.4.2-19.el6_6.1.x86_64
Aug 09 21:33:29 Updated: elfutils-libelf-0.161-3.el6.x86_64
Aug 09 21:33:29 Installed: augeas-libs-1.0.0-10.el6.x86_64
Aug 09 21:33:29 Updated: 2:libpng-1.2.49-2.el6_7.x86_64
Aug 09 21:33:29 Installed: json-c-0.11-12.el6.x86_64
Aug 09 21:33:29 Updated: libudev-147-2.63.el6_7.1.x86_64
(以下省略)

$ sort -k 4 yumaa
Aug 09 21:33:29 Installed: augeas-libs-1.0.0-10.el6.x86_64
Aug 09 21:33:29 Installed: json-c-0.11-12.el6.x86_64
Aug 09 21:33:41 Installed: libwmf-0.2.8.4-25.el6_7.x86_64
Aug 09 21:33:37 Updated: 14:libpcap-1.4.0-4.20130826git2dbcaa1.el6.x86_64
Aug 09 21:33:32 Updated: 1:cups-libs-1.4.2-72.el6.x86_64
Aug 09 21:33:29 Updated: 1:dbus-1.2.24-8.el6_6.x86_64
Aug 09 21:33:27 Updated: 1:dbus-libs-1.2.24-8.el6_6.x86_64
Aug 09 21:33:35 Updated: 1:perl-Compress-Raw-Zlib-2.021-141.el6_7.1.x86_64
(以下省略)

 

4番目で昇順、4番目の値が同じなら5番目を比べてソート。

$ sort -k 4,5 yumaa
Aug 09 21:33:29 Installed: augeas-libs-1.0.0-10.el6.x86_64
Aug 09 21:33:29 Installed: json-c-0.11-12.el6.x86_64
Aug 09 21:33:41 Installed: libwmf-0.2.8.4-25.el6_7.x86_64
Aug 09 21:33:37 Updated: 14:libpcap-1.4.0-4.20130826git2dbcaa1.el6.x86_64
Aug 09 21:33:32 Updated: 1:cups-libs-1.4.2-72.el6.x86_64
Aug 09 21:33:29 Updated: 1:dbus-1.2.24-8.el6_6.x86_64
Aug 09 21:33:27 Updated: 1:dbus-libs-1.2.24-8.el6_6.x86_64
(以下省略)

Installed Updatedでソートされ、その中でパッケージ名をアルファベット順に並び替えてるのが分かる。

メイン機の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

 

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


■感想

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

Sponsored Link