「インストール - CPU-X」の版間の差分

提供: MochiuWiki : SUSE, EC, PCB

 
(同じ利用者による、間の2版が非表示)
1行目: 1行目:
== 概要 ==
== 概要 ==
CPU-Xは、CPUやマザーボード等の情報を収集(システムのプロファイリングとモニタリング)するソフトウェアである。<br>
CPU-Xは、CPU、マザーボード、メモリ、グラフィックカード等のハードウェア情報を収集するフリーかつオープンソースのシステムプロファイリングおよびモニタリングツールである。<br>
Windows向けのCPU-Zに相当するツールとして、GNU/LinuxおよびFreeBSD上で動作する。<br>
<br>
<br>
GTKを使用したGUIモードと、NCursesを使用したTUIモードで使用することができる。<br>
対応CPUアーキテクチャはx86およびARMである。<br>
また、コマンドラインからのダンプモードも存在する。<br>
現在の公式リポジトリは、TheTumultuousUnicornOfDarkness/CPU-Xで管理されている。<br>
<br>
インターフェースとしては以下の3形態が提供される。<br>
* GTKベースのGUIモード
*: グラフィカルなウィンドウで情報を閲覧できる標準的な使用方法である。
* NCursesベースのTUIモード
*: ターミナル上でカーソルキー等を用いて情報を閲覧できる。
* コマンドラインダンプモード
*: 標準出力へテキスト形式で情報を出力する。スクリプトやログ収集に適する。
<br><br>
 
== CPU-Xの主な機能 ==
CPU-Xは以下に示すカテゴリの情報を収集し、表示する。<br>
* CPU
*: プロセッサ名、アーキテクチャ、クロック周波数、倍率、コア/スレッド数、キャッシュ情報、命令セット等
* マザーボード
*: メーカー、モデル、BIOS/UEFIバージョン、チップセット等
* メモリ
*: 搭載メモリ容量、動作周波数、DIMMスロット情報等
* システム
*: オペレーティングシステム、カーネルバージョン、ホスト名等
* グラフィック
*: GPU名、ドライバ、UMDバージョン、OpenGL/Vulkan情報等
* ベンチマーク
*: 簡易的なCPUベンチマーク機能を提供する。
<br>
いくつかの情報 (特に高度なCPU情報や一部のセンサデータ) は、特権アクセスがないと収集できない。<br>
このため、CPU-XはデーモンとPolkitを組み合わせた権限昇格の仕組みを利用している。<br>
<br><br>
<br><br>


== CPU-Xのインストール ==
== CPU-Xのインストール ==
==== AppImageファイルを使用 ====
==== パッケージ管理システムからインストール ====
[https://github.com/X0rg/CPU-X/releases CPU-XのGithub]にアクセスして、AppImageファイルをダウンロードする。<br>
主要なLinuxディストリビューションでは、パッケージとして提供されている場合がある。<br>
ダウンロードしたファイルに、実行権限を付加する。<br>
<br>
# RHEL
sudo dnf install cpu-x
# SUSE
sudo zypper install cpu-x
<br>
==== AppImageの使用 ====
[https://github.com/TheTumultuousUnicornOfDarkness/CPU-X/releases CPU-XのGitHub Releases]からAppImageファイルをダウンロードする。<br>
x64版およびAArch64版が提供されており、AppImageはファイル単体で配布される。<br>
<br>
<u>実行環境によってはFUSEが必要になる場合がある。</u><br>
<br>
ダウンロードしたファイルに実行権限を付加する。<br>
<br>
  chmod u+x CPU-X-v<バージョン>-x86_64.AppImage
  chmod u+x CPU-X-v<バージョン>-x86_64.AppImage
<br>
<br>
必要であれば、ダウンロードしたファイルを任意のインストールディレクトリに配置する。<br>
必要に応じて、任意のディレクトリに配置して実行する。<br>
  mv CPU-X-v<バージョン>-x86_64.AppImage <任意のインストールディレクトリ>
<br>
  ./CPU-X-v<バージョン>-x86_64.AppImage
<br>
デスクトップ統合を行う場合は、以下に示すようなデスクトップエントリファイルを作成する。<br>
<br>
<br>
CPU-Xのデスクトップエントリファイルを作成する。<br>
  vi ~/.local/share/applications/CPU-X.desktop
  vi ~/.local/share/applications/CPU-X.desktop
<br>
<br>
  <syntaxhighlight lang="ini">
  <syntaxhighlight lang="ini">
# ~/.local/share/applications/CPU-X.desktopファイル
  [Desktop Entry]
  [Desktop Entry]
  Type=Application
  Type=Application
  Name=CPU-X
  Name=CPU-X
  GenericName=CPU-X
  GenericName=System Profiler
  Comment=Gathers information on CPU, motherboard and more
  Comment=Gathers information on CPU, motherboard and more
  Exec=/<CPU-Xのインストールディレクトリ>/CPU-X-v<バージョン>-x86_64.AppImage %F
  Exec=/<インストールディレクトリ>/CPU-X-v<バージョン>-x86_64.AppImage %F
  Icon=/<CPU-Xのインストールディレクトリ>/CPU-X.png
  Icon=/<インストールディレクトリ>/cpu-x.png
  Categories=GTK;System;
  Categories=GTK;System;
  Keywords=CPU;system;core;speed;clock;rate;Intel;AMD;motherboard;
  Keywords=CPU;system;core;speed;clock;rate;Intel;AMD;motherboard;
  Terminal=false
  Terminal=false
  </syntaxhighlight>
  </syntaxhighlight>
<br>
==== Flatpakの使用 ====
CPU-XはFlathub上でFlatpak形式でも提供されている。<br>
<br>
flatpak install flathub io.github.thetumultuousunicornofdarkness.cpu-x
<br>
CPU-Xを実行するには、以下に示すコマンドを実行する。<br>
<br>
flatpak run io.github.thetumultuousunicornofdarkness.cpu-x
<br>
<br>
==== ソースコードからインストール ====
==== ソースコードからインストール ====
CPU-Xのビルドに必要な依存関係のライブラリをインストールする。<br>
パッケージが提供されていない環境や、最新版をソースからビルドしたい場合は、GitHubリポジトリからソースコードを取得してビルドする。<br>
<br>
まず、CPU-Xのビルドに必要な依存関係のライブラリをインストールする。<br>
<br>
<center>
{| class="wikitable"
|+ ビルド依存関係
! 依存パッケージ !! 説明
|-
| CMake >= 3.12 || ビルドシステム
|-
| GCC または Clang || C/C++コンパイラ
|-
| pkg-config または pkgconf || ライブラリ検出ツール
|-
| NASM (x86のみ) || アセンブラ
|-
| Gtkmm3 || GTK GUIのビルドに必要
|-
| NCurses || TUIモードのビルドに必要
|-
| libcpuid >= 0.8.0 || CPU情報取得ライブラリ
|-
| pciutils || PCIデバイス情報取得
|-
| EGL >= 1.5 with OpenGL || グラフィック情報取得
|-
| Vulkan || Vulkan情報取得
|-
| OpenCL >= 1.2 || OpenCLデバイス情報取得
|-
| procps-ng (Linux) または libstatgrab (BSD) || システムプロセス/メモリ情報取得
|}
</center>
<br>
  # SUSE
  # SUSE
  sudo zypper install git pkgconf libtool automake cmake ncurses gtk3-devel gtkmm3-devel \
  sudo zypper install git cmake pkgconf ncurses-devel gtk3-devel gtkmm3-devel \
                     nasm libcpuid-devel pciutils-devel procps-devel fuse-devel \
                     nasm libcpuid-devel pciutils-devel procps-devel vulkan-devel \
                     libglfw-devel vulkan-devel ocl-icd-devel opencl-cpp-headers polkit-devel
                     ocl-icd-devel opencl-cpp-headers polkit-devel Mesa-libEGL-devel
<br>
<br>
例えば、<u>CPU-X 4.5.1では、libcpuidライブラリのバージョンは0.61以降が必要となる。(CPU-X 4.5.2ではlibcpuidライブラリのバージョンは0.62以降が必要)</u><br>
===== libcpuidライブラリのビルド =====
<u>もし、パッケージ管理システムのlibcpuidライブラリのバージョンが古い場合、libcpuidを手動でビルドおよびインストールする必要がある。</u><br>
<u>もし、パッケージ管理システムのlibcpuidライブラリのバージョンが古い場合、libcpuidを手動でビルドおよびインストールする必要がある。</u><br>
* libcpuidを手動でビルドおよびインストールする場合
<br>
*# [https://github.com/anrieff/libcpuid libcpuidのGithub]にアクセスして、ソースコードをダウンロードする。
[https://github.com/anrieff/libcpuid libcpuidのGithub]にアクセスして、ソースコードをダウンロードする。<br>
*# ダウンロードしたファイルを解凍する。
ダウンロードしたファイルを解凍する。<br>
*#: <syntaxhighlight lang="text">
<br>
  tar xf libcpuid-<バージョン>.tar.gz
  tar xf libcpuid-<バージョン>.tar.gz
  cd libcpuid-<バージョン>
  cd libcpuid-<バージョン>
</syntaxhighlight>
<br>
*#: <br>
libcpuidをビルドおよびインストールする。<br>
*# libcpuidをビルドおよびインストールする。
<br>
*#: <syntaxhighlight lang="text">
  mkdir build && cd build
  mkdir build && cd build
   
   
57行目: 141行目:
  make -j $(nproc)
  make -j $(nproc)
  make install
  make install
</syntaxhighlight>
<br>
<br>
[https://github.com/X0rg/CPU-X/releases CPU-XのGithub]にアクセスして、ソースコードをダウンロードする。<br>
===== CPU-Xのビルド =====
[https://github.com/X0rg/CPU-X/releases CPU-XのGithub]にアクセスして、CPU-Xのソースコードをダウンロードする。<br>
ダウンロードしたファイルを解凍する。<br>
ダウンロードしたファイルを解凍する。<br>
<br>
  tar xf v<バージョン>.tar.gz
  tar xf v<バージョン>.tar.gz
  cd v<バージョン>
  cd v<バージョン>
<br>
<br>
または、<code>git clone</code>コマンドを実行して、ソースコードをダウンロードする。<br>
または、<code>git clone</code>コマンドを実行して、ソースコードをダウンロードする。<br>
  git clone https://github.com/X0rg/CPU-X.git
<br>
  git clone https://github.com/TheTumultuousUnicornOfDarkness/CPU-X.git
  cd CPU-X
  cd CPU-X
<br>
CPU-Xのビルドディレクトリを作成する。<br>
mkdir build && cd build
<br>
<br>
CPU-Xをビルドおよびインストールする。<br>
CPU-Xをビルドおよびインストールする。<br>
また、ビルドオプションを以下に示す。<br>
* <code>-DWITH_GTK=0</code> オプション
*: GTK3+のGUIサポートを無効にする。
* <code>-DWITH_NCURSES=0</code> オプション
*: NCursesでのTUIサポートを無効にする。
* <code>-DWITH_LIBGLFW=0</code> オプション
*: Libglfwの呼び出しを無効にする。([グラフィック]タブの[UMD バージョン]ラベル)
* <code>-DFORCE_LIBSTATGRAB=1</code> オプション
*: Libprocpsの代わりにLibstatgrabでリンクする。
<br>
<br>
<u>※注意</u><br>
<syntaxhighlight lang="sh">
<u>CPU-X 5.0以降をビルドするには、GCC 8以降が必要となる。</u>
mkdir build && cd build
  # パッケージ管理システムからlibcpuidをインストールした場合
  # パッケージ管理システムからlibcpuidをインストールした場合
  cmake -DCMAKE_C_COMPILER=<GCC 8以降のコンパイラのパス>      \
  cmake -DCMAKE_C_COMPILER=<GCC 8以降のコンパイラのパス>      \
94行目: 169行目:
   
   
  # ソースコードからlibcpuidをインストールした場合
  # ソースコードからlibcpuidをインストールした場合
  export LD_LIBRARY_PATH="/<libcpuidのインストールディレクトリ>/lib:$LD_LIBRARY_PATH";         \
  export LIBCPUDIR="<libcpuidのインストールディレクトリ>"
  export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:$(pkg-config --variable pc_path pkg-config)"; \
  export PKG_CONFIG_PATH="/<libcpuidのインストールディレクトリ>/lib/pkgconfig:$PKG_CONFIG_PATH"; \
export LD_LIBRARY_PATH="$LIBCPUDIR/lib:$LD_LIBRARY_PATH"; \
  export CFLAGS="-I/<libcpuidのインストールディレクトリ>/include $CFLAGS"
  export PKG_CONFIG_PATH="$LIBCPUDIR/lib/pkgconfig:$(pkg-config --variable pc_path pkg-config)"; \
  export CFLAGS="-I$LIBCPUDIR/include $CFLAGS"; \
  export CXXFLAGS="-I$LIBCPUDIR/include $CXXFLAGS"
   
   
  cmake -DCMAKE_C_COMPILER=<GCC 8以降のコンパイラのパス>      \
  cmake -DCMAKE_C_COMPILER=<GCC 8以降のコンパイラのパス>      \
106行目: 183行目:
  make -j $(nproc)
  make -j $(nproc)
  make install
  make install
</syntaxhighlight>
<br>
ビルドオプションの例を以下に示す。<br>
* <code>-DWITH_GTK=0</code>
*: GTK3+のGUIサポートを無効にする。
* <code>-DWITH_NCURSES=0</code>
*: NCursesのTUIサポートを無効にする。
* <code>-DWITH_LIBCPUID=0</code>
*: libcpuidを使用しない。
*: 一部のCPU情報が取得できなくなる。
* <code>-DFORCE_LIBSTATGRAB=1</code>
*: Linuxではprocps-ngの代わりにlibstatgrabを使用する。
*: FreeBSDではデフォルトでlibstatgrabが使用される。
<br>
必要ならば、CPU-Xを実行するためのラッパーシェルスクリプトを作成する。<br>
<br>
<br>
CPU-Xを実行するためのラッパーシェルスクリプトを作成する。<br>
  vi /<CPU-Xのインストールディレクトリ>/bin/cpu-x.sh
  vi /<CPU-Xのインストールディレクトリ>/bin/cpu-x.sh
<br>
<br>
126行目: 217行目:
  # Initialize interpreter path
  # Initialize interpreter path
  export LD_LIBRARY_PATH="$dirname/../lib:$LD_LIBRARY_PATH"
  export LD_LIBRARY_PATH="$dirname/../lib:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH="$dirname/../lib64:$LD_LIBRARY_PATH"
  export XDG_DATA_DIRS="$dirname/../share:$XDG_DATA_DIRS"
  export XDG_DATA_DIRS="$dirname/../share:$XDG_DATA_DIRS"
   
   
133行目: 223行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
上記のラッパーシェルスクリプトに、実行権限を付加する。<br>
上記のラッパーシェルスクリプトに実行権限を付加する。<br>
<br>
  chmod u+x /<CPU-Xのインストールディレクトリ>/bin/cpu-x.sh
  chmod u+x /<CPU-Xのインストールディレクトリ>/bin/cpu-x.sh
<br>
<br>
CPU-Xのデスクトップエントリファイルを作成する。<br>
CPU-Xのデスクトップエントリファイルを作成する。<br>
<br>
  vi ~/.local/share/applications/CPU-X.desktop
  vi ~/.local/share/applications/CPU-X.desktop
<br>
<br>
154行目: 246行目:
  </syntaxhighlight>
  </syntaxhighlight>
<br>
<br>
CPU-Xをホームディレクトリ等のディレクトリにインストールした場合、CPU-Xのデーモン向けのPolkitアクションを追加する。<br>
ビルド後の実行には、追加のランタイムライブラリが必要となる場合がある。<br>
cd /<CPU-Xのインストールディレクトリ>/share/polkit-1/actions/
sudo cp io.github.thetumultuousunicornofdarkness.cpu-x-daemon.policy /usr/share/polkit-1/actions/
<br>
<br>
CPU-Xの実行に必要なライブラリをインストールする。<br>
# SUSE
  sudo zypper install gtk3 libcpuid15 libglfw3
  sudo zypper install gtk3 libcpuid15
<br><br>
<br><br>
== 実行と権限昇格の仕組み ==
CPU-Xは通常のユーザ権限で実行できるが、一部の情報 (MSRレジスタ等) はroot権限が必要である。<br>
このため、CPU-Xはデーモン (<u>cpu-x-daemon</u>) とPolkitポリシーを組み合わせて、必要に応じて権限を昇格させる仕組みを持つ。<br>
<br>
==== デーモンとPolkitの設定 ====
ソースコードからインストールした場合や、ローカルディレクトリに配置した場合は、Polkitアクションファイルをシステムディレクトリにコピーする必要がある。<br>
<br>
sudo cp /<インストールディレクトリ>/share/polkit-1/actions/io.github.thetumultuousunicornofdarkness.cpu-x-daemon.policy \
        /usr/share/polkit-1/actions/
<br>
このポリシーファイルが正しく配置されていない場合、特権が必要な情報が空欄や不明な値として表示される。<br>
<br>
==== 実行方法 ====
* GUIモード
*: <syntaxhighlight lang="text">
cpu-x
</syntaxhighlight>
*: <br>
* TUIモード
*: <syntaxhighlight lang="text">
cpu-x --ncurses
</syntaxhighlight>
*: <br>
* ダンプモード
*: <syntaxhighlight lang="text">
cpu-x --dump
</syntaxhighlight>
<br>
AppImageやFlatpakの場合も、基本的な実行方法は同様である。<br>
AppImageの場合は、ポータブル実行の特性上、デーモン経由の権限昇格が制限される場合がある。<br>
<br><br>
== トラブルシューティング ==
==== ラベルが空欄になる ====
* 原因
*: デーモンが起動していない、または、Polkitポリシーが正しくインストールされていない。
* 対処方法
** Polkitポリシーファイルが <u>/usr/share/polkit-1/actions/</u> ディレクトリに存在するか確認する。
** 存在しない場合は、インストールディレクトリからコピーする。
** CPU-Xを再起動する。
<br>
==== キャッシュタブやベンチマークタブでCPU使用率が高い ====
* 原因
*: ベンチマーク実行中や、キャッシュレイテンシの測定中は一時的にCPU負荷が上昇する。
* 対処方法
** これは正常な動作である。<br>測定完了後に負荷は低下する。
** 継続的に高負荷がかかる場合は、該当タブを閉じるか、アプリケーションを再起動する。
<br>
==== OpenCL関連で不安定になる ====
* 原因
*: 特定のGPUドライバやOpenCL実装との互換性問題である。
* 対処方法
** OpenCL機能が不要な場合は、ビルド時に <code>-DWITH_OPENCL=0</code> を指定して無効化する。
** パッケージ版を使用している場合は、該当GPUドライバの更新を確認する。
<br>
==== libcpuid関連のビルドエラー ====
* 原因
*: インストールされているlibcpuidのバージョンが古い。
* 対処方法
*: Linuxディストリビューションのパッケージが 0.8.0以降であるか確認する。
*: もし満たしていない場合は、libcpuidをソースコードからビルドしてインストールするか、Linuxディストリビューションを更新する。
<br><br>
== 関連情報 ==
* [https://github.com/TheTumultuousUnicornOfDarkness/CPU-X CPU-X GitHubリポジトリ]
* [https://github.com/TheTumultuousUnicornOfDarkness/CPU-X/releases CPU-X GitHub Releases]
* [https://flathub.org/apps/io.github.thetumultuousunicornofdarkness.cpu-x CPU-X Flathubページ]
* [https://github.com/anrieff/libcpuid libcpuid GitHubリポジトリ]
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]
[[カテゴリ:RHEL]][[カテゴリ:SUSE]][[カテゴリ:Raspberry_Pi]][[カテゴリ:PinePhone]]

2026年6月4日 (木) 20:51時点における最新版

概要

CPU-Xは、CPU、マザーボード、メモリ、グラフィックカード等のハードウェア情報を収集するフリーかつオープンソースのシステムプロファイリングおよびモニタリングツールである。
Windows向けのCPU-Zに相当するツールとして、GNU/LinuxおよびFreeBSD上で動作する。

対応CPUアーキテクチャはx86およびARMである。
現在の公式リポジトリは、TheTumultuousUnicornOfDarkness/CPU-Xで管理されている。

インターフェースとしては以下の3形態が提供される。

  • GTKベースのGUIモード
    グラフィカルなウィンドウで情報を閲覧できる標準的な使用方法である。
  • NCursesベースのTUIモード
    ターミナル上でカーソルキー等を用いて情報を閲覧できる。
  • コマンドラインダンプモード
    標準出力へテキスト形式で情報を出力する。スクリプトやログ収集に適する。



CPU-Xの主な機能

CPU-Xは以下に示すカテゴリの情報を収集し、表示する。

  • CPU
    プロセッサ名、アーキテクチャ、クロック周波数、倍率、コア/スレッド数、キャッシュ情報、命令セット等
  • マザーボード
    メーカー、モデル、BIOS/UEFIバージョン、チップセット等
  • メモリ
    搭載メモリ容量、動作周波数、DIMMスロット情報等
  • システム
    オペレーティングシステム、カーネルバージョン、ホスト名等
  • グラフィック
    GPU名、ドライバ、UMDバージョン、OpenGL/Vulkan情報等
  • ベンチマーク
    簡易的なCPUベンチマーク機能を提供する。


いくつかの情報 (特に高度なCPU情報や一部のセンサデータ) は、特権アクセスがないと収集できない。
このため、CPU-XはデーモンとPolkitを組み合わせた権限昇格の仕組みを利用している。


CPU-Xのインストール

パッケージ管理システムからインストール

主要なLinuxディストリビューションでは、パッケージとして提供されている場合がある。

# RHEL
sudo dnf install cpu-x

# SUSE
sudo zypper install cpu-x


AppImageの使用

CPU-XのGitHub ReleasesからAppImageファイルをダウンロードする。
x64版およびAArch64版が提供されており、AppImageはファイル単体で配布される。

実行環境によってはFUSEが必要になる場合がある。

ダウンロードしたファイルに実行権限を付加する。

chmod u+x CPU-X-v<バージョン>-x86_64.AppImage


必要に応じて、任意のディレクトリに配置して実行する。

./CPU-X-v<バージョン>-x86_64.AppImage


デスクトップ統合を行う場合は、以下に示すようなデスクトップエントリファイルを作成する。

vi ~/.local/share/applications/CPU-X.desktop


 [Desktop Entry]
 Type=Application
 Name=CPU-X
 GenericName=System Profiler
 Comment=Gathers information on CPU, motherboard and more
 Exec=/<インストールディレクトリ>/CPU-X-v<バージョン>-x86_64.AppImage %F
 Icon=/<インストールディレクトリ>/cpu-x.png
 Categories=GTK;System;
 Keywords=CPU;system;core;speed;clock;rate;Intel;AMD;motherboard;
 Terminal=false


Flatpakの使用

CPU-XはFlathub上でFlatpak形式でも提供されている。

flatpak install flathub io.github.thetumultuousunicornofdarkness.cpu-x


CPU-Xを実行するには、以下に示すコマンドを実行する。

flatpak run io.github.thetumultuousunicornofdarkness.cpu-x


ソースコードからインストール

パッケージが提供されていない環境や、最新版をソースからビルドしたい場合は、GitHubリポジトリからソースコードを取得してビルドする。

まず、CPU-Xのビルドに必要な依存関係のライブラリをインストールする。

ビルド依存関係
依存パッケージ 説明
CMake >= 3.12 ビルドシステム
GCC または Clang C/C++コンパイラ
pkg-config または pkgconf ライブラリ検出ツール
NASM (x86のみ) アセンブラ
Gtkmm3 GTK GUIのビルドに必要
NCurses TUIモードのビルドに必要
libcpuid >= 0.8.0 CPU情報取得ライブラリ
pciutils PCIデバイス情報取得
EGL >= 1.5 with OpenGL グラフィック情報取得
Vulkan Vulkan情報取得
OpenCL >= 1.2 OpenCLデバイス情報取得
procps-ng (Linux) または libstatgrab (BSD) システムプロセス/メモリ情報取得


# SUSE
sudo zypper install git cmake pkgconf ncurses-devel gtk3-devel gtkmm3-devel \
                    nasm libcpuid-devel pciutils-devel procps-devel vulkan-devel \
                    ocl-icd-devel opencl-cpp-headers polkit-devel Mesa-libEGL-devel


libcpuidライブラリのビルド

もし、パッケージ管理システムのlibcpuidライブラリのバージョンが古い場合、libcpuidを手動でビルドおよびインストールする必要がある。

libcpuidのGithubにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf libcpuid-<バージョン>.tar.gz
cd libcpuid-<バージョン>


libcpuidをビルドおよびインストールする。

mkdir build && cd build

../configure --prefix=<libcpuidのインストールディレクトリ>
make -j $(nproc)
make install


CPU-Xのビルド

CPU-XのGithubにアクセスして、CPU-Xのソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf v<バージョン>.tar.gz
cd v<バージョン>


または、git cloneコマンドを実行して、ソースコードをダウンロードする。

git clone https://github.com/TheTumultuousUnicornOfDarkness/CPU-X.git
cd CPU-X


CPU-Xをビルドおよびインストールする。

 mkdir build && cd build
 
 # パッケージ管理システムからlibcpuidをインストールした場合
 cmake -DCMAKE_C_COMPILER=<GCC 8以降のコンパイラのパス>      \
       -DCMAKE_CXX_COMPILER=<G++ 8以降のコンパイラのパス>    \
       -DCMAKE_BUILD_TYPE=Release                       \
       -DCMAKE_INSTALL_PREFIX=<CPU-Xのインストールディレクトリ> \
       ..
 make -j $(nproc)
 make install
 
 # ソースコードからlibcpuidをインストールした場合
 export LIBCPUDIR="<libcpuidのインストールディレクトリ>"
 
 export LD_LIBRARY_PATH="$LIBCPUDIR/lib:$LD_LIBRARY_PATH"; \
 export PKG_CONFIG_PATH="$LIBCPUDIR/lib/pkgconfig:$(pkg-config --variable pc_path pkg-config)"; \
 export CFLAGS="-I$LIBCPUDIR/include $CFLAGS"; \
 export CXXFLAGS="-I$LIBCPUDIR/include $CXXFLAGS"
 
 cmake -DCMAKE_C_COMPILER=<GCC 8以降のコンパイラのパス>      \
       -DCMAKE_CXX_COMPILER=<G++ 8以降のコンパイラのパス>    \
       -DCMAKE_BUILD_TYPE=Release                       \
       -DCMAKE_INSTALL_PREFIX=<CPU-Xのインストールディレクトリ> \
       ..
 make -j $(nproc)
 make install


ビルドオプションの例を以下に示す。

  • -DWITH_GTK=0
    GTK3+のGUIサポートを無効にする。
  • -DWITH_NCURSES=0
    NCursesのTUIサポートを無効にする。
  • -DWITH_LIBCPUID=0
    libcpuidを使用しない。
    一部のCPU情報が取得できなくなる。
  • -DFORCE_LIBSTATGRAB=1
    Linuxではprocps-ngの代わりにlibstatgrabを使用する。
    FreeBSDではデフォルトでlibstatgrabが使用される。


必要ならば、CPU-Xを実行するためのラッパーシェルスクリプトを作成する。

vi /<CPU-Xのインストールディレクトリ>/bin/cpu-x.sh


 # /<CPU-Xのインストールディレクトリ>/bin/cpu-x.shファイル
 
 #!/usr/bin/env sh
 
 appname="cpu-x"
 
 # use -f to make the readlink path absolute
 dirname="$(dirname -- "$(readlink -f -- "${0}")" )"
 
 if [ "$dirname" = "." ]; then
    dirname="$PWD/$dirname"
 fi
 
 # Initialize interpreter path
 export LD_LIBRARY_PATH="$dirname/../lib:$LD_LIBRARY_PATH"
 export XDG_DATA_DIRS="$dirname/../share:$XDG_DATA_DIRS"
 
 # Run CPU-X binary
 "$dirname/$appname" "$@"


上記のラッパーシェルスクリプトに実行権限を付加する。

chmod u+x /<CPU-Xのインストールディレクトリ>/bin/cpu-x.sh


CPU-Xのデスクトップエントリファイルを作成する。

vi ~/.local/share/applications/CPU-X.desktop


 # ~/.local/share/applications/CPU-X.desktopファイル
 
 [Desktop Entry]
 Type=Application
 Name=CPU-X
 GenericName=CPU-X
 Comment=Gathers information on CPU, motherboard and more
 Exec=/<CPU-Xのインストールディレクトリ>/bin/cpu-x.sh %F
 Icon=/<CPU-Xのインストールディレクトリ>/share/icons/hicolor/128x128/apps/cpu-x.png
 Categories=GTK;System;
 Keywords=CPU;system;core;speed;clock;rate;Intel;AMD;motherboard;
 Terminal=false


ビルド後の実行には、追加のランタイムライブラリが必要となる場合がある。

# SUSE
sudo zypper install gtk3 libcpuid15



実行と権限昇格の仕組み

CPU-Xは通常のユーザ権限で実行できるが、一部の情報 (MSRレジスタ等) はroot権限が必要である。
このため、CPU-Xはデーモン (cpu-x-daemon) とPolkitポリシーを組み合わせて、必要に応じて権限を昇格させる仕組みを持つ。

デーモンとPolkitの設定

ソースコードからインストールした場合や、ローカルディレクトリに配置した場合は、Polkitアクションファイルをシステムディレクトリにコピーする必要がある。

sudo cp /<インストールディレクトリ>/share/polkit-1/actions/io.github.thetumultuousunicornofdarkness.cpu-x-daemon.policy \
        /usr/share/polkit-1/actions/


このポリシーファイルが正しく配置されていない場合、特権が必要な情報が空欄や不明な値として表示される。

実行方法

  • GUIモード
     cpu-x
    

  • TUIモード
     cpu-x --ncurses
    

  • ダンプモード
     cpu-x --dump
    


AppImageやFlatpakの場合も、基本的な実行方法は同様である。
AppImageの場合は、ポータブル実行の特性上、デーモン経由の権限昇格が制限される場合がある。


トラブルシューティング

ラベルが空欄になる

  • 原因
    デーモンが起動していない、または、Polkitポリシーが正しくインストールされていない。
  • 対処方法
    • Polkitポリシーファイルが /usr/share/polkit-1/actions/ ディレクトリに存在するか確認する。
    • 存在しない場合は、インストールディレクトリからコピーする。
    • CPU-Xを再起動する。


キャッシュタブやベンチマークタブでCPU使用率が高い

  • 原因
    ベンチマーク実行中や、キャッシュレイテンシの測定中は一時的にCPU負荷が上昇する。
  • 対処方法
    • これは正常な動作である。
      測定完了後に負荷は低下する。
    • 継続的に高負荷がかかる場合は、該当タブを閉じるか、アプリケーションを再起動する。


OpenCL関連で不安定になる

  • 原因
    特定のGPUドライバやOpenCL実装との互換性問題である。
  • 対処方法
    • OpenCL機能が不要な場合は、ビルド時に -DWITH_OPENCL=0 を指定して無効化する。
    • パッケージ版を使用している場合は、該当GPUドライバの更新を確認する。


libcpuid関連のビルドエラー

  • 原因
    インストールされているlibcpuidのバージョンが古い。
  • 対処方法
    Linuxディストリビューションのパッケージが 0.8.0以降であるか確認する。
    もし満たしていない場合は、libcpuidをソースコードからビルドしてインストールするか、Linuxディストリビューションを更新する。



関連情報