리눅스 환경에서 그래픽 처리 장치(GPU)를 확인해야 할 때가 있나요? 이 글에서는 명령줄과 그놈 데스크톱 환경에서 그래픽 카드를 식별하는 다양한 방법을 소개합니다.
첫걸음
아마도 이런 경험이 있을 겁니다. 기술 전문가가 아닌 친척이나 동료를 돕기 위해 투입되었는데, 일이 순조롭게 진행되지 않을 것 같다는 느낌이 드는 상황이죠. 하지만 용감하게 문제 해결에 나섭니다! 문제를 확인해 보니 디스플레이 드라이버 문제일 가능성이 높다는 것을 알게 되었습니다. 하지만 “어떤 종류의 그래픽 카드를 사용하고 있나요?”라는 질문에 막히게 됩니다.
답변 대신 당황한 표정을 마주하게 될 것입니다. 문제를 해결하려면 먼저 대상이 무엇인지 파악해야 합니다. 그렇다면 리눅스 컴퓨터에서 그래픽 카드를 어떻게 식별할 수 있을까요?
최악의 시나리오를 가정해 봅시다. 그래픽 카드 드라이버가 설치되지 않아서 단서를 얻기 위해 드라이버 정보를 확인할 수도 없다고 가정해 봅시다. 걱정하지 마세요! 명령줄 또는 그래픽 사용자 인터페이스 (GUI)를 통해 이 문제를 해결할 수 있습니다.
lspci와 PCI ID 데이터베이스 활용
주변 구성 요소 상호 연결 (PCI) 표준은 그래픽 카드와 같은 내부 주변 장치와 통신하는 데 사용되는 일반적인 프로토콜입니다. PCI ID 저장소는 PCI 장치에 대해 알려진 모든 ID의 데이터베이스를 관리합니다. 장치에 대한 일부 정보를 알고 있다면 데이터베이스에서 검색할 수 있다는 의미입니다.
lspci 명령을 사용하면 리눅스 컴퓨터에 설치된 PCI 장치 목록과 관련 정보를 확인할 수 있습니다.
PCI 데이터베이스와 lspci 명령을 결합하면 더 효율적으로 장치를 식별할 수 있습니다. 실제로 lspci 명령을 실행할 때 PCI 데이터베이스의 로컬 복사본을 확인하여 감지된 PCI 장치를 식별합니다. 시작하기 전에 PCI 데이터베이스의 로컬 복사본을 최신 상태로 업데이트하는 것이 좋습니다.
다음 명령어를 입력하여 PCI 데이터베이스를 업데이트하세요. update-pciids:
sudo update-pciids
최신 데이터베이스 버전이 검색되었으므로 이제 lspci 명령을 사용할 수 있습니다. 출력량이 많을 것이므로 `less` 명령어를 사용합니다. `-v` (verbose) 옵션은 lspci에게 가능한 많은 정보를 표시하도록 지시합니다. 정보를 최대한 자세하게 얻기 위해 `sudo` 명령어를 함께 사용합니다.
다음과 같이 명령어를 입력합니다.
sudo lspci -v | less
`less` 결과가 출력됩니다. 슬래시(/)를 누르면 `less` 검색 기능이 활성화됩니다.
“VGA”를 모두 대문자로 입력하고 Enter 키를 누릅니다.
`less`는 “VGA” 문자열을 검색하여 찾은 첫 번째 일치 항목을 보여줍니다. 스크롤하거나 페이지를 넘겨 lspci가 찾은 그래픽 카드 수를 확인할 수 있습니다.
이 글을 위해 가상 머신인 VirtualBox에서 여러 리눅스 배포판을 실행하며 테스트를 진행했습니다. 가상 머신에는 당연히 가상 그래픽 카드가 있습니다.
실제 결과를 보여드리기 위해 호스트(물리적) 컴퓨터의 출력 결과를 아래에 제시합니다.
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 97 Memory 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 00 Capabilities: [100] Virtual Channel Capabilities: [250] Latency Tolerance Reporting Capabilities: [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: nouveau Kernel modules: nouveau
정말 유용한 정보가 많이 제공되었습니다!
이 카드는 NVIDIA Corporation GP108 [GeForce GT 1030]입니다. 검색 엔진을 통해 몇 초 만에 해당 장치에 대한 NVIDIA 기술 페이지를 찾을 수 있습니다. 첫 번째 줄 끝에 있는 “[VGA controller]” 텍스트는 이것이 “작동 중”인 그래픽 카드임을 나타냅니다. 컴퓨터에 두 개 이상의 카드가 설치된 경우 이 정보는 유용합니다.
lshw 명령 활용
lshw 명령을 사용하면 리눅스 컴퓨터에 설치된 하드웨어를 나열할 수 있습니다. 이 명령어는 PCI 하드웨어뿐 아니라 다양한 유형의 하드웨어를 보여줍니다.
찾은 그래픽 카드 정보를 표시하기 위해 `-C` (클래스) 옵션과 “display” 수정자를 사용합니다. `-numeric` 옵션은 lshw가 장치의 숫자 ID와 이름을 모두 표시하도록 합니다.
다음과 같이 입력합니다.
sudo lshw -numeric -C display
다음은 실제 컴퓨터에서 해당 명령어가 찾은 결과입니다.
*-display description: VGA compatible controller product: GP108 [GeForce GT 1030] [10DE:1D01] vendor: NVIDIA Corporation [10DE] physical id: 0 bus info: [email protected]: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
흥미롭게도, 두 명령어 모두 동일한 카드를 찾았습니다!
식별자 [10DE:1D01]은 제조업체 (10DE)와 모델 (1D01)을 나타냅니다. 제조업체와 모델을 즉시 찾으려면 검색 엔진에 “그래픽 카드 10de:1d01″을 입력하면 됩니다.
glxinfo 명령 활용
glxinfo 명령은 또 다른 유용한 방법입니다. 이 명령어는 X 윈도우 시스템용 OpenGL 확장에 대한 정보를 제공합니다. 해당 정보 중 일부를 검색하여 컴퓨터에 설치된 그래픽 카드 종류를 확인할 수 있습니다.
glxinfo 명령은 Manjaro 및 Fedora에는 이미 설치되어 있지만, Ubuntu에서는 설치해야 합니다. 다음 명령어를 입력하여 설치하십시오.
sudo apt-get install mesa-utils
`less`를 통해 glxinfo 출력을 파이프하고, `-B` (인쇄 ID) 옵션을 사용하려면 다음을 입력합니다.
glxinfo -B | less
그래픽 카드는 “Device” 줄에 설명되어 있습니다.
실제 컴퓨터의 출력 결과는 다음과 같습니다.
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.2 OpenGL 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
검색 엔진에 “NV138″을 입력하면 즉시 NVIDIA 그래픽 카드를 식별할 수 있습니다.
GUI를 사용하여 그래픽 카드 식별
컴퓨터가 CLI 전용 서버인 경우 위에서 설명한 기술 중 하나를 사용해야 합니다. 그러나 (작동하는) GUI가 있다면 그래픽 카드를 식별할 수 있는 그래픽 방식이 있을 수 있습니다. 실제로 이 옵션은 리눅스 데스크탑 설정 도구 어딘가에 있을 가능성이 높습니다.
그놈 데스크톱 환경에서 “설정” 대화 상자를 열고 사이드바에서 “세부 정보”를 클릭합니다. “정보” 패널에서 “그래픽” 항목을 찾습니다. 이 항목은 컴퓨터에 어떤 종류의 그래픽 카드가 있는지, 그리고 현재 사용 중인 그래픽 카드가 무엇인지 알려줍니다. 컴퓨터에 두 개 이상의 GPU가 있을 수 있습니다.
물리적 호스트의 그놈 설정 “정보” 탭에서도 이전과 동일한 “NV138” 카드 ID를 얻을 수 있습니다. 다시 말하지만, 해당 정보를 검색 엔진에 입력하여 카드 유형을 찾을 수 있습니다.
노트북의 그래픽 카드
많은 노트북에는 두 개의 그래픽 카드가 있습니다. 하나는 중앙 처리 장치 (CPU)에 내장된 것이고, 다른 하나는 주요 GPU 제조업체의 제품입니다.
이전과 동일한 lspci 명령을 입력하되 이번에는 노트북에서 실행합니다.
sudo lspci -v | less
예상대로 시스템의 그래픽 카드에 대한 설명이 나타납니다.
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: i915 01: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 00 Capabilities: [b4] Vendor Specific Information: Len=14 > Capabilities: [100] Virtual Channel Capabilities: [128] Power Budgeting > Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 > Kernel driver in use: nouveau Kernel modules: nouveau
이 노트북에는 인텔 코어 GPU와 NVIDIA GeForce 610M이라는 두 가지 그래픽 카드가 모두 있습니다. 그러나 두 카드 모두 “[VGA controller]” 문자열을 가지고 있으며 일반적으로 사용 중인 GPU를 나타냅니다.
두 개 모두 동시에 사용될 수는 없으므로 먼저 주요 GPU 공급업체에서 카드를 활성화해야 합니다. 이는 노트북 제조업체가 기본값으로 간주하고 컴퓨터의 하드웨어 사양에 포함하는 것입니다.
여기서 설명된 기술 중 하나가 확실히 도움이 될 것입니다! 컴퓨터 또는 노트북에 어떤 종류의 그래픽 카드가 있는지 확인한 후 적절한 그래픽 드라이버를 선택할 수 있습니다.