LinuxにインストールされているGPUを確認する方法

  • LinuxコンピューターのGPUを把握することは、ディスプレイのドライバの問題のトラブルシューティングや他者へのサポートを提供するために重要です。
  • lspciコマンドとPCI IDデータベースを使用すれば、Linuxのコマンドラインからグラフィックカードを識別できます。
  • lshwコマンドとglxinfoコマンドは、グラフィックカードを識別するための代替手段であり、異なる種類の情報を提供します。

Linuxコンピューターのグラフィック処理ユニット(GPU)を識別する必要がありますか? 次に、コマンドラインとGNOMEでグラフィックカードを識別する方法を示します。

GPUの種類を知る必要があるのはなぜですか?

経験があるのではないでしょうか。ITに詳しくない親戚や同僚をサポートすることになり、これは簡単にはいかないだろうと直感します。それでも、あなたは頑張ります! 問題はおそらくディスプレイのドライバの問題であるとすぐに判断します。これはそれほど悪くないかもしれません! しかし、希望の光は、「どんな種類のグラフィックカードを持っていますか?」と尋ねるとすぐに消えてしまいます。

返答として得られる、ヘッドライトに照らされた鹿のような表情は、何も語っていません。何かをサポートするには、それが何であるかを知る必要があります。では、Linuxコンピューターでグラフィックカードをどのように識別すればよいでしょうか?

最悪のシナリオを想定し、グラフィックカードのドライバがインストールされていなかったとします。ヒントを得るためにそれらを見ることすらできません。問題ありません! この難問は、コマンドラインまたはグラフィカルユーザーインターフェイス(GUI)のいずれかから解決できます。

lspciとPCI IDデータベースを使用してGPUを確認する

ペリフェラルコンポーネントインターコネクト(PCI)規格は、グラフィックカードなどの内部ペリフェラルと通信するために使用できる一般的なプロトコルです。PCI IDリポジトリは、PCIデバイスのすべての既知のIDのデータベースを保持しています。つまり、デバイスに関する情報がわかっていれば、それを検索できます。

lspciコマンドを使用すると、LinuxコンピューターにインストールされているPCIデバイスとそのに関する情報を一覧表示できます。

PCIデータベースとlspciコマンドを結びつけることができたら素晴らしいと思いませんか? 実は、lspciコマンドを実行すると、まさにそれが起こります。検出されたPCIデバイスを識別するために、PCIデータベースのローカルコピーが確認されます。始める前に、PCIデータベースのローカルコピーを更新することをお勧めします。

update-pciidsコマンドを入力して、それを行います。

sudo update-pciids

最新のデータベースバージョンが取得されたので、lspciコマンドを使用できるようになりました。出力が多くなるので、lessにパイプします。-v(詳細)オプションは、lscpiに可能な限りの情報を提供するよう指示します。sudoを使用して、情報ができるだけ詳細になるようにします。

コマンドを次のように入力します。

sudo lspci -v | less

結果はlessに表示されます。スラッシュ(/)を押すと、less検索機能が有効になります。

「VGA」をすべて大文字で入力し、Enterキーを押します。

lessは文字列「VGA」を検索し、最初に見つかった一致を表示します。そこからスクロールしたりページを進めたりして、lspciが見つけたグラフィックカードの数を調べることができます。

この記事では、VirtualBox仮想マシンで実行されているさまざまなLinuxディストリビューションについて調査を行いました。もちろん、仮想マシンには仮想グラフィックカードがあります。

現実世界の結果の例を紹介するために、ホスト(物理)コンピューターからの出力を示します。

<code>26:00.0 VGA compatible controller: NVIDIA Corporation GP108 [GeForce GT 1030] (rev a1) (prog-if 00 [VGA controller])
Subsystem: Gigabyte Technology Co., Ltd GP108 [GeForce GT 1030]
Flags: bus master, fast devsel, latency 0, IRQ 97Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=256M]
Memory at f0000000 (64-bit, prefetchable) [size=32M]I/O ports at e000 [size=128]Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Legacy Endpoint, MSI 00Capabilities: [100] Virtual Channel
Capabilities: [250] Latency Tolerance ReportingCapabilities: [128] Power Budgeting <?>
Capabilities: [420] Advanced Error Reporting
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
Capabilities: [900] Secondary PCI Express <?>
Kernel driver in use: nouveauKernel modules: nouveau</code>

すぐに多くの有益な情報が得られました!

カードはNVIDIA Corporation GP108 [GeForce GT 1030]であり、検索エンジンで数秒検索したところ、そのデバイスのNVIDIA技術ページが見つかりました。1行目の末尾にある「[VGA controller]」というテキストは、これが「動作している」グラフィックカードであることを示しています。コンピューターに複数のカードがインストールされている場合、これは役立つ情報です。

lshwコマンドを使用してGPUを見つける

lshwコマンドを使用して、Linuxコンピューターにインストールされているハードウェアを一覧表示することもできます。また、PCIハードウェアだけでなく、さまざまな種類のハードウェアも報告します。

見つかったグラフィックカードを報告するようにするには、-C(クラス)オプションを使用して「display」修飾子を指定します。-numericオプションを指定すると、lshwでデバイスの名前だけでなく、数値IDも提供されます。

次のように入力します。

sudo lshw -numeric -C display

そのコマンドで物理コンピューターで見つかった内容を次に示します。

<code>*-display
description: VGA compatible controller
product: GP108 [GeForce GT 1030] [10DE:1D01]
vendor: NVIDIA Corporation [10DE]
physical id: 0
bus info: pci@0000:26:00.0 version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom
configuration: driver=nouveau latency=0
resources: irq:97 memory:f6000000-f6ffffff memory:e0000000-efffffff memory:f0000000-f1ffffff ioport:e000(size=128) memory:c0000-dffff</code>

どちらの方法でも同じカードが見つかりました!

[10DE:1D01]識別子は、製造元(10DE)とモデル(1D01)を表しています。ブランドとモデルをすぐに確認するには、「グラフィックカード 10de:1d01」を検索エンジンに入力します。

glxinfoコマンド

glxinfoコマンドは、使用できるもう1つの方法です。X WindowsシステムのOpenGL拡張機能から情報が得られます。その後、その情報を検索して、マシンにどのような種類のグラフィックカードがインストールされているかを確認できます。

glxinfoコマンドは、ManjaroとFedoraにはすでに存在しますが、Ubuntuにはインストールする必要があります。インストールするには、次のコマンドを入力します。

sudo apt-get install mesa-utils

glxinfoからの出力をlessでパイプし、-B(IDを印刷)オプションを使用するには、次のように入力します。

glxinfo -B | less

グラフィックカードは「Device」行に記載されています。

これは、物理コンピューターからの出力です。

<code>name of display: :1
display: :1 screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
Vendor: nouveau (0x10de)
Device: NV138 (0x1d01)Version: 19.3.2
Accelerated: yes
Video memory: 1987MB
Unified memory: no
Preferred profile: core (0x1)
Max core profile version: 4.3
Max compat profile version: 4.3
Max GLES1 profile version: 1.1
Max GLES[23] profile version: 3.2
OpenGL vendor string: nouveau
OpenGL renderer string: NV138
OpenGL core profile version string: 4.3 (Core Profile) Mesa 19.3.2
OpenGL core profile shading language version string: 4.30
OpenGL core profile context flags: (none)OpenGL core profile profile mask: core profile
OpenGL version string: 4.3 (Compatibility Profile) Mesa 19.3.2O
penGL shading language version string: 4.30
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 19.3.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20</code>

「NV138」を検索エンジンに入力すると、NVIDIAグラフィックカードがすぐに特定されます。

GUIを使用してグラフィックカードを識別する

コンピューターがCLI専用のサーバーである場合、上記で説明した手法の1つを使用する必要があります。ただし、(機能する)GUIがある場合は、グラフィックカードを識別するグラフィカルな方法がある可能性があります。実際、そのオプションはおそらくLinuxデスクトップ設定ツールのどこかにあります。

GNOMEデスクトップでは、「設定」ダイアログ(右上のドロップダウンメニューの歯車アイコン)を開き、サイドバーの「詳細」をクリックします。「概要」パネルで、「グラフィック」エントリを探します。これにより、コンピューターにどのような種類のグラフィックカードがあるか、またはより具体的には現在使用されているグラフィックカードがわかります。マシンには複数のGPUがある場合があります。

ノートパソコンのグラフィックカード

多くのノートパソコンには2つのグラフィックカードが搭載されています。1つは中央処理装置(CPU)の製造元から、もう1つは主流のGPUプロバイダーから提供されています。

先ほどと同じlspciコマンドを入力してみましょう。今回は、ノートパソコンで実行します。

sudo lspci -v | less

予想通り、マシン内のグラフィックカードの説明が表示されます。

<code>00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. 3rd Gen Core processor Graphics Controller
Flags: bus master, fast devsel, latency 0, IRQ 33
Memory at f7400000 (64-bit, non-prefetchable) [size=4M]
Memory at d0000000 (64-bit, prefetchable) [size=256M]
I/O ports at f000 [size=64]
[virtual] Expansion ROM at 000c0000 [disabled] [size=128K]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [d0] Power Management version 2
Capabilities: [a4] PCI Advanced Features
Kernel driver in use: i915

Kernel modules: i91501:00.0 VGA compatible controller: NVIDIA Corporation GF119M [GeForce 610M] (rev a1) (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. GF119M [GeForce 610M]Flags: bus master, fast devsel, latency 0, IRQ 34
Memory at f6000000 (32-bit, non-prefetchable) [size=16M]
Memory at e0000000 (64-bit, prefetchable) [size=128M]
Memory at e8000000 (64-bit, prefetchable) [size=32M]
I/O ports at e000 [size=128]
Expansion ROM at f7000000 [disabled] [size=512K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Endpoint, MSI 00Capabilities: [b4] Vendor Specific Information: Len=14 <?>
Capabilities: [100] Virtual ChannelCapabilities: [128] Power Budgeting <?>
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
Kernel driver in use: nouveau
Kernel modules: nouveau</code>

このノートパソコンには、Intel Core GPUとNVIDIA GeForce 610Mの両方が搭載されています。ただし、どちらのカードにも「[VGA controller]」という文字列があり、通常はどのGPUが使用されているかを示しています。

両方を同時に使用することはできないため、まず主流のGPUプロバイダーのカードを動作させてみましょう。それは、ノートパソコンの製造元がデフォルトとみなして、マシンのハードウェア仕様に含めているものです。

ここで説明した手法のいずれかが確実に役立ちます! コンピューターまたはノートパソコンにどのような種類のグラフィックカードがあるかがわかったら、適切なグラフィックドライバーを選択できます。