2018年3月16日金曜日

Ryzen 7 CPU,System temp 温度・ファン速度などを表示する。it87

it87 マザーボード情報、各種温度、ファン回転数を取得したい

当方ではメインが AMD Ryzen7 1700 になりました。ところでどのディストリビューションであっても、デフォルトではsensors で温度、ファン回転数など、カンタンなことしかわかりません。

データーを取得するには、何か追加しないといけないわけですが、そのキーワードがit87 です。

Asus ROGシリーズは、it87のモジュールを追加して、カーネルコンフィギュレーションします(dkmsで自動的にです)。そうするとデータ取得して以下のように表示されるようになります。
(また、manjaro などで新しすぎるカーネルの場合、うまく組み込まれません。LTSカーネルがやはり無難です。4.17 では使えません。2018/06/30現在。Host: manjaro Kernel: 4.17.3-1-MANJARO x86_64 でうまくdkms してくれるようになりました。バッチリです。2018/07/01 18時過ぎに800MBのSTABLE updateをあてました。)


it87についての詳細は、

実際に Xsensors 起動するとこんなかんじです。まぁまぁかっこいい?! 7月頭なのでエアコンが24時間はいっています。室温は26-27度位です。だからファンも892RPMぐらいなんですね。
5月のエアコンなしの日より涼しいわけです。数字を真面目に読む人がいるかもしれないので補足しました。


画像の下半分は、ターミナルの表示です。

新規端末。CTRL+ALT+T

導入=カーネルへの組み込み(実際は、インストールするだけで、あとはディストリがやってくれます)

ubuntuはこちらがよい説明と思います。arch系はit87でpamacを検索してマウスでインストールしますと楽ですかね。結果的にgitです。こちらもどうぞ。

manjaroの導入:具体例 ターミナルの場合は1行です。
$ yaourt -S it87-dkms-git 
この1行で入ります。
#当方の場合
sudo modprobe it87 force_id=0x8728 
xsensors &  

#起動や自動起動はお好きな方法で。

自動起動
xsensors というコマンドをデスクトップ環境の自動起動設定に定義。

端末での起動
xsensors & 
としておけば良いです。

画像の下半分は、ターミナルの表示です。表示していてもじゃまくさいだけなのですが

watch grep \"cpu MHz\" /proc/cpuinfo 

まれに、最大クロックあたりでがんばれと言いたいときがあるので、

sudo cpupower frequency-set -g performance 

その後発行して様子をみると。上はarch系の場合です。ubuntuではこのコマンドがないので別のコマンドを発行します。やることは同じ。ubuntuの場合は、だいたいのDEでマウス操作でCPU方針を変更できるツールが使えます。

#
CPU 周波数スケーリング https://wiki.archlinux.jp/index.php/CPU_%E5%91%A8%E6%B3%A2%E6%95%B0%E3%82%B9%E3%82%B1%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0 arch系はこれで一通りわかります。

パワーユーザー向け::Ryzen をとことんLinuxでいじるツール::ちゃんと英文マニュアル読んでから!!

いまんところRyzen7がメインなので、セカンドになったら省エネの追求のために使うかなと思っています。当職も含めて大抵のひとには不要かと。マニアックなツールです。
https://github.com/r4m0n/ZenStates-Linux

#ルートで実行します。
$ sudo zenstates.py -l 
P0 - Enabled - FID = 98 - DID = 8 - VID = 3A - Ratio = 38.00 - vCore = 1.18750
P1 - Enabled - FID = 98 - DID = 8 - VID = 3A - Ratio = 38.00 - vCore = 1.18750
P2 - Enabled - FID = 7C - DID = 10 - VID = 6C - Ratio = 15.50 - vCore = 0.87500
P3 - Disabled
P4 - Disabled
P5 - Disabled
P6 - Disabled
P7 - Disabled
C6 State - Package - Enabled
C6 State - Core - Enabled

# modprobe msr 事前に。あるいは自動でロードしておきます。

2018年3月5日月曜日

BitPerfect ::jack::realTimeConfigQuickScanリアルタイム処理の設定の確認

BitPerfect のために::リアルタイム処理の妨げになっている設定をあぶり出す


realTimeConfigQuickScan(Perlスクリプト)は、リアルタイムっぽい処理の妨げになっている設定をあぶり出します。jackに限らずですが。

なぜ設定を詰めていこうかと考えたのかですが、手持ちで一番良いUSB-DACにおけるHi-Resファイル再生が微妙に残念だったからです。48k未満にすれば問題はありません。(聴感上はどうでもいいとしても)、192k/24bit設定で聴感上ノイズなどが問題ないレベルまで設定したいわけです。

当方の、jackレイテンシーは、0.5ミリ秒-0.1ミリ秒(96000/19200)になるようにしています(深い意図はありません)。

ubuntu/mint では厳しいレベルではjack(もちろんpulse/alsaでも)ではまともに動かない(=音質が悪い)DACが存在しますので(当方の環境に限りそう結論づけました)、いじっても時間の無駄です。

結論からいえば、archLinux,manjaro,antergos ではすんなり希望通りに設定できました。執筆時点でのubuntu 18.04ももちろん並行してテストしますが、問題ありです。たいていのUSB-DACはすんなり動作するんですけどね。さすがにRyzen7にしたので環境がプアとはいえないはず。 半年無駄にしました。ディストロを変えるだけのカンタン解決。

導入などは手抜き。 ubuntu studio にはrealTimeConfigQuickScanはありますので、たぶん sudo apt install rea... で導入できるかと思います。今、manjaro なので。(追記、よくわからないのでgithubから落として手動でubuntu18.04LTS 1st betaに入れました。perlモジュールをパスの通ったところにコピーするだけです。)


導入完了後、
新規端末。ubuntu系は以下同時押し。CTRL+ALT+T 以下のヒストリ貼り付けは、manjaro での操作結果です。

#rootではなくユーザー権限で実行します。

realTimeConfigQuickScan 
#実行例
$ realTimeConfigQuickScan 
== GUI-enabled checks ==
Checking if you are root... no - good
Checking filesystem 'noatime' parameter... 4.14.21 kernel - good
(relatime is default since 2.6.30)
Checking CPU Governors... CPU 0: 'schedutil' CPU 1: 'schedutil' CPU 10: 'schedutil' CPU 11: 'schedutil' CPU 12: 'schedutil' CPU 13: 'schedutil' CPU 14: 'schedutil' CPU 15: 'schedutil' CPU 2: 'schedutil' CPU 3: 'schedutil' CPU 4: 'schedutil' CPU 5: 'schedutil' CPU 6: 'schedutil' CPU 7: 'schedutil' CPU 8: 'schedutil' CPU 9: 'schedutil'  - not good
Set CPU Governors to 'performance' with 'cpufreq-set -c -g performance'
See also: http://linuxmusicians.com/viewtopic.php?f=27&t=844
Checking swappiness... 10 - good
Checking for resource-intensive background processes... none found - good
Checking checking sysctl inotify max_user_watches... >= 524288 - good
Checking access to the high precision event timer... readable - good
Checking access to the real-time clock... readable - good
Checking whether you're in the 'audio' group... yes - good
Checking for multiple 'audio' groups... no - good
Checking the ability to prioritize processes with chrt... yes - good
Checking kernel support for high resolution timers... found - good
Kernel with Real-Time Preemption... not found - not good
Kernel without real-time capabilities found
For more information, see http://wiki.linuxaudio.org/wiki/system_configuration#installing_a_real-time_kernel
Checking if kernel system timer is high-resolution... found - good
Checking kernel support for tickless timer... found - good

オレンジが効いたな?!と特に感じた項目です。 その他は忘れがちポイントチェックもしてくれますので、親切です。

#最適化されていないとされる項目のみ抜き出す。

realTimeConfigQuickScan | grep 'not good' 

最短ルートで設定するには、good評価を無視します。そうなると not good のみ見ればいいわけです。上の通りに打鍵します(ターミナルにぺたん)。残ったものが検討項目です。audioグループにユーザーが登録されていないのは問答無用で変更する必要がありますが一部はユーザーの考え方次第です。全てを適用する必要はないと思います。

#当方の説明::以下2つ以外は最適化されています。

CPUをPerformance モード(最大クロック固定)で動かしてねとリアルタイムカーネルっぽいのがはいってないという意味です。この2つには自分は特に対応しません。それ以外は全部済ませました。
前者はコマンドなりGUIで設定できますよね。

sudo cpupower frequency-set -g performance | ondemand | powesave .... みたいに。

後者は必要性は特に感じないというか、音楽専用LinuxBoxではないので、そんなにハイテンション(Max Clock)で動かれてもその他のアプリケーションとの協調という意味と地球環境保全という意味では賛成できないので(爆)。

realTimeConfigQuickScan | grep 'not good' 
Checking CPU Governors... CPU 0: 'schedutil' CPU 1: 'schedutil' CPU 10: 'schedutil' CPU 11: 'schedutil' CPU 12: 'schedutil' CPU 13: 'schedutil' CPU 14: 'schedutil' CPU 15: 'schedutil' CPU 2: 'schedutil' CPU 3: 'schedutil' CPU 4: 'schedutil' CPU 5: 'schedutil' CPU 6: 'schedutil' CPU 7: 'schedutil' CPU 8: 'schedutil' CPU 9: 'schedutil'  - not good
Kernel with Real-Time Preemption... not found

おまけ

#断章::おまけ、arch系でしか試していませんが、jack起動前に次を実行しておくといい。
#!/bin/bash
sudo echo 2048 > /sys/class/rtc/rtc0/max_user_freq
sudo echo 2048 > /proc/sys/dev/hpet/max-user-freq

ubuntu でうまくない場合は、root になって実行するといいかも。
ビフォーアフタですが、ほとんど影響がない気がします。
#断章::jack フレームバッファの設定早見表
USB-DACの場合は、ピリオド3を基本にして考えます。これでかなり試行錯誤が単純になりますね。今年になるまで知らなかったです。笑)

(Frames [or buffer] / Sample Rate ) * Periods = Latency in ms

( 16 / 48000 ) * 3 = 1
( 32 / 48000 ) * 3 = 2
( 64 / 48000 ) * 3 = 4
( 128 / 48000 ) * 3 = 8
( 256 / 48000 ) * 3 = 16
( 512 / 48000 ) * 3 = 32
( 1024 / 48000 ) * 3 = 64
( 2048 / 48000 ) * 3 = 128
( 32 / 96000 ) * 3 = 1
( 64 / 96000 ) * 3 = 2
( 128 / 96000 ) * 3 = 4
( 256 / 96000 ) * 3 = 8
( 512 / 96000 ) * 3 = 16
( 1024 / 96000 ) * 3 = 32
( 2048 / 96000 ) * 3 = 64
( 64 / 192000 ) * 3 = 1
( 128 / 192000 ) * 3 = 2
( 256 / 192000 ) * 3 = 4
( 512 / 192000 ) * 3 = 8
( 1024 / 192000 ) * 3 = 16
( 2048 / 192000 ) * 3 = 32



#以下も参考にしてください。
https://wiki.archlinux.jp/index.php/%E3%83%97%E3%83%AD%E3%82%AA%E3%83%BC%E3%83%87%E3%82%A3%E3%82%AA
https://wiki.archlinux.jp/index.php/JACK_Audio_Connection_Kit

Cinnamon Dropbox icon 表示されない場合

そんなもんなくてもいいじゃないかというご意見はあるでしょうが、それはそれ。ないと寂しい。動いているのかの目安になりますよね。

新規端末。ubuntu系は以下同時押し。CTRL+ALT+T

ターミナルの以下で解決
dropbox stop && dbus-launch dropbox start ↲

自動起動には、以下を記入。
dbus-launch dropbox start

ただし、自動起動設定(startup applicasions)はDropboxによって上書きされるみたいなので、自動起動名称はDropBox2などを追加して[別物]としておく。オリジナルは休止でいい。