web-dev-qa-db-ja.com

VCore電圧を監視する方法

新しいPCを構築しましたが、Windowsを購入したことはないので、Ubuntu 16.04で初めてLinuxを試しています。 lm-sensorsは、必要な情報にアクセスするための標準的な方法であり、実際には単なる電圧、特にVCoreであると理解しています。オーバークロックを容易にするためにVCore電圧を監視できるようにしたいと思います(マザーボードでは固定電圧が許可されていないため、自動VIDでは危険な電圧を監視できません)。

次の関連パッケージをインストールしています:lm-sensors(v。1:3.4.0-2)、libsensors4(v。3:4.0-2)、libsensors-applet-plugin0(v。3.0.0 + git5-0.1ubuntu1 )

CPUはi5-6600Kで、マザーボードはASRock Z170A-X1/3.1です

sensors-detectを実行しましたが、見つかったセンサーはcoretempだけでした。これは私のモジュールに追加され、温度に対しては正常に機能します。実行中のセンサーからの出力例を次に示します。

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +47.0°C  (high = +80.0°C, crit = +100.0°C)
Core 0:         +46.0°C  (high = +80.0°C, crit = +100.0°C)
Core 1:         +47.0°C  (high = +80.0°C, crit = +100.0°C)
Core 2:         +34.0°C  (high = +80.0°C, crit = +100.0°C)
Core 3:         +45.0°C  (high = +80.0°C, crit = +100.0°C)

here または here のような標準の動作(詳細)を実現したいと思います。

ほとんどのガイドにはsensors-detectと表示されているため、電圧にアクセスするには追加のセンサーが必要であると思われます。私の場合、不明なデバイスが1つ見つかりましたが、センサーである可能性があります。

Some Super I/O chips contain embedded sensors. We have to write to
standard I/O ports to probe them. This is usually safe.
Do you want to scan for Super I/O sensors? (YES/no): y
Probing for Super-I/O at 0x2e/0x2f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               Yes
Found unknown chip with ID 0xd121
    (logical device B has address 0x290, could be sensors)
Probing for Super-I/O at 0x4e/0x4f
Trying family `National Semiconductor/ITE'...               No
Trying family `SMSC'...                                     No
Trying family `VIA/Winbond/Nuvoton/Fintek'...               No
Trying family `ITE'...                                      No

dmesgを使用して、カーネルリングバッファー内の上記のアドレス0x290を調べ、この行を見つけました。これはほとんど私には理解できませんが、ここで説明します。

[    0.206389] system 00:00: [io  0x0290-0x029f] has been reserved

さらに、表示できる情報が限られている他のアプリケーションもあります。たとえば、I-NEXは、WindowsのCPU-Zに多少似ています(ご存じの方が良いことをお勧めします)が、プロセッサID文字列、リソグラフィ、ソケットタイプ、サポートされる機能などの基本的なCPUIDに限定されます。 CPU VCoreおよびその他のフィールドについて報告されます。 BIOSのオーバークロック設定に関係なく、クロック速度、BLCK速度、乗数、ターボクロックがストック値として報告されます(システムモニターでCPU速度を監視できるため、間違っています)。このようなツールはすべてlmセンサーに依存している可能性があり、これはここでの私の問題の根本にあると思うので、これはそれほど驚くことではありません。

また、WINEを使用してCPU-Zを実行しようとしましたが、基本的に同じ状況になります。基本的なCPUIDのものが表示されますが、探している詳細なセンサーのものは表示されません。これは、初期化中にエラーが発生した後です:エラーコード0x2(2)。

サポートされていないマザーボードの場合ですか?その場合、サポートは追加されますか?サポートを手動で追加する方法はありますか? lm-センサーに代わるものはありますか?たとえば、手動でハードウェアレベルに近づき、bash経由で何らかの方法で電圧にアクセスする別の方法はありますか?本質的に異なるバージョン/ディストリビューションを再インストールするだけですか?もしそうなら、このインストールとそのファイルを必ず失いますか?

3
not-a-robot

Wineでは、プロセッサーのring0に到達することはできません。特権命令を実行できる場所。

Linuxは、Intel Architectures Software Developer Manualsで説明されているモデル固有のレジスタの読み取り/書き込みを可能にするカーネルモジュールmsr.koを提供します。 AMDと同じBIOSおよびカーネル開発者ガイド

https://software.intel.com/en-us/articles/intel-sdm

http://developer.AMD.com/resources/developer-guides-manuals/

6600Kの場合、幸いなことにデータシートに電圧情報が記載されています。 PCIは値を取得するために照会されます。

MSRレジスタとCPUID命令の葉を使用してアルゴリズムをプログラムし、プロセッサのターボ比を取得し、間隔でサンプリングされた2つのTSC読み取りでBCLKを推定します。

ターボ周波数は、比率と基本クロックの積です

Vcoreの横に周波数とアイドル状態を表示するCoreFreqをプログラムしました。ソースコードのアルゴリズムを自由に掘り下げてください。

https://github.com/cyring/CoreFreq

2
CyrIng