[Ubuntu 10.04 LTS] 하드웨어를 확인하는 명령어

사용환경

  • 운영체제 : Ubuntu 10.04 LTS
  • 커널버전 : Linux 2.6.32-27-generic-pae i686 GNU/Linux

01. 시작하기 전에…

이 전에 [Ubuntu 10.04 LTS] 메인보드 정보확인 명령어를 통해서 터미널의 명령어를 통해서 메인보드와 CPU에 대한 정보를 출력하는 법을 포스팅한 적이 있습니다. 사실 하드웨어에 대한 정보를 확인하는 방법은 그 외에 많이 있습니다. 지난 번에는 dmidecode를 통해서 메인보드와 CPU에 대한 정보를 확인해봤으니 이제는 다른 명령어들을 통해서 컴퓨터 내의 다른 하드웨어에 대한 정보를 확인하는 방법을 설명하고자 합니다. 제가 알고 있는 방법들과 검색을 통해서 찾은 방법은 아래와 같은 것들이 있습니다.

  1. lspci 명령어를 이용하는 방법
  2. /proc 하위의 파일을 cat 명령어로 열어서 보는 것
  3. mesa-utils 패키지를 이용하는 방법
  4. xrandr 명령어를 이용하는 방법
  5. ifconfig 명령어를 이용하는 방법
  6. df, fdisk 명령어를 이용하는 방법

위와 같이 여러가지 방법이 있는데요… 상황에 따라서 선택을 하셔서 사용을 하시면 될 것 같습니다. 이제는 위의 명령어들을 어떤 때에 어떻게 사용할 지 알아보도록 하겠습니다.

02. 네트워크 장치확인

요즘의 컴퓨터는 인터넷에 연결이 되어있지 않다면 사실 상 아무것도 할 수 없는 상태가 되어버립니다. 저의 경우에도 대부분의 시간을 블로그에 올릴 주제와 자료를 찾기 위해서 검색을 하고, 토렌트로 TV프로그램들 다운로드받고 제 개인서버에 설치한 도쿠위키를 이용해서 문서작업을 하는 등 인터넷에 항시 접속되어 있는 상태입니다. 그런데 리눅스를 설치한 이후에 인터넷이 되지 않는다면, 네트워크 장비의 드라이버가 정상적으로 설치가 되었는지 확인을 해봐야 합니다. 가장 좋은 것은 설치를 하기 전에 미리 설치하려는 배포판이 해당 네트워크 드라이버를 지원하는 지를 확인하는 것입니다. 확인하는 법은 각 배포판에서 제공하는 문서나 위키에서 확인하거나 요즘 대부분의 배포판이 지원하는 라이브 상태에서 설치를 하기 전에 직접 사용하는 법이 있습니다. 우분투의 경우에는 당연히 라이브CD를 지원하므로 설치 직전에 미리 사용해볼 수 있는 배포판입니다.

<strong>$ ifconfig</strong>

위 명령어를 입력하면, 사용이 가능한(드라이버가 설치된) 네트워크 장치의 IP, 서브넷마스크, MAC주소 등을 확인할 수 있습니다. 리눅스에서 대부분의 네트워크 디바이스는 eth0, eth1, eth2… 이런 식으로 이름이 부여가 됩니다. 만약, ifconfig의 출력결과가 아래와 같이 나온다면 정상적으로 네트워크 장치 드라이버가 설치되지 않은 것입니다. lo는 Local Loopback으로 자기 자신(127.0.0.1)을 가리키는 특수 IP주소입니다. 유선랜과 무선랜이 전부 있는 컴퓨터라면, eth0이 유선랜, eth1이 무선랜으로 잡혀야 정상이지만… eth0, eth1이 없고 lo만 있다면 유선랜, 무선랜이 전부 잡히지 않은 것이지요.

<strong>lo</strong>        Link encap:<strong>Local Loopback</strong>
           inet addr:127.0.0.1  Mask:255.0.0.0
           inet6 addr: ::1/128 Scope:Host
           UP LOOPBACK RUNNING  MTU:16436  Metric:1
           RX packets:13497 errors:0 dropped:0 overruns:0 frame:0
           TX packets:13497 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:0
           RX bytes:1868285 (1.8 MB)  TX bytes:1868285 (1.8 MB)

그런 경우에는 자신의 노트북(이나 데스크탑)에 설치된 무선랜카드가 무엇인지 확인을 해야합니다. 그래야 인터넷을 통해서 해결법을 찾을 수 있겠지요;;ㅋ

<strong>$ lspci | grep Ethernet</strong>

또는,

<strong>$ lspci | grep Network</strong>

보통 grep을 통해서 걸러낼 때 Ethernet으로 걸러내면 유선랜이고, Network로 걸러내면 무선랜입니다. 위와 같이 grep으로 걸러내지 못한다면 lspci만 입력해서 PCI 장치목록을 출력해서 네트워크 장치로 보이는 것을 찾아봅니다. 그나마 다른 배포판에 비해서 우분투의 경우에는 드라이버 지원이 잘 되는 것 같습니다. 제가 여러 배포판을 설치해봤지만 우분투가 가장 많은 하드웨어를 지원하는 것 같았습니다.(특히 노트북은…)

03. 그래픽카드 장치확인

이제는 그래픽카드에 대해서 확인을 해보도록 하겠습니다. lspci 명령어를 이용하면 현재 시스템에 장착된 VGA카드(그래픽카드)를 확인할 수 있습니다.

<strong>$ lspci | grep VGA</strong>
01:00.0 VGA compatible controller: nVidia Corporation G98 [<strong><span style="color: #0000ff;">GeForce 9300 GS</span></strong>] (rev a1)

저의 경우에는 Nvidia의 Geforce 9300GS를 사용하고 있습니다. 위의 결과를 보면 그래픽카드의 이름을 확인할 수 있습니다. 그래픽카드의 종류뿐만이 아니라 더 자세한 정보와 성능에 대한 벤치마크를 위한 패키지를 설치한 뒤에 해당하는 명령어를 소개하도록 하겠습니다.

<strong>$ sudo apt-get install mesa-utils</strong>

위의 명령어를 터미널에 입력해서 mesa-utils 패키지를 설치합니다. 그래픽카드가 3D 렌더링을 직접 수행하는지를 확인하기 위해서 아래의 명령어를 입력합니다.

<strong>$ glxinfo | grep rendering</strong>
direct rendering: <strong><span style="color: #0000ff;">Yes</span></strong>

위 처럼 Yes가 출력된다면 그래픽카드가 직접 3D렌더링을 수행한다는 의미입니다. 그래픽카드의 성능을 확인하기 위해서 아래의 명령어를 입력해봅니다.

<strong>$ glxgears</strong>

위의 명령어를 실행하면 새로운 창이 하나 나오면서 아래와 같은 톱니바퀴가 굴러가는 영상이 재생됩니다.

위와 같은 화면이 나오면서 터미널에는 아래와 같은 내용이 출력됩니다.

<strong>$ glxgears</strong>
Running synchronized to the vertical refresh.  The framerate should be
approximately the same as the monitor refresh rate.
10312 frames in 5.0 seconds
10329 frames in 5.0 seconds
9502 frames in 5.0 seconds

위와 같은 결과가 출력됩니다. 아무래도 숫자가 클 수록 성능이 좋다는 것이겠지요? 그런데 이 수치 값은 드라이버나 설정, 그리고 현재 상황에 따라서 수치가 크게 달라질 수 있습니다. 실제로 동영상을 재생하는 중에 결과를 확인해보면 프레임 수치가 급격하게 줄어듭니다.;;(고화질의 영상을 재생하면서 glxgears를 실행하면 거의 절반가까이 줄어들게 됩니다.;;) 종료를 하기 위해서 위의 톱니바퀴 창을 끄거나 터미널에서 Ctrl + C(강제종료 시그널)를 누르면 종료가 됩니다. 이제는 현재 시스템의 해상도를 확인하는 명령어를 실행해보도록 하겠습니다. 아래의 명령어를 터미널에 입력해보세요.

$ xrandr Screen 0: minimum 3840 x 1080, current 3840 x 1080, maximum 3840 x 1080 default connected 3840×1080+0+0 0mm x 0mm 3840×1080 50.0*

저의 경우에는 1920 * 1080 Full HD 해상도의 24인치 모니터 두 개를 사용하고 있습니다. 그래서 전체 해상도가 3840 * 1080으로 출력이 됩니다.

04. 사운드 장치확인

이제는 사운드(오디오)장치에 대한 정보를 확인해보도록 하겠습니다. 마찬가지로 lspci 명령어와 grep을 조합해서 사운드장치가 어떤 칩셋을 사용하고 있는지 확인합니다.

<strong>$ lspci | grep Audio</strong>
00:1b.0 Audio device: Intel Corporation 82801JI (ICH10 Family) HD Audio Controller

아, 위에서 설명은 하지 않았는 데 예전(구형)의 컴퓨터에 비해서 요즘에 출시되는 대부분의 컴퓨터는 메인보드에 대부분의 PCI 장치를 장착되어 출시가 됩니다. 사운드, 랜카드 이런 것들이 예전에는 PCI 슬롯이라는 부분에 추가적으로 장착이 되었지만 요즘에는 큰 것은 엄지손톱만하게 작은 것은 새끼손톱보다 작은 칩으로 메인보드에 부착되어서 나오는 것입니다. 그래서 예전에 비해서 컴퓨터의 무게가 줄어들고 크기도 줄어들 수 있었던 것입니다. 실제로 본인의 데스크탑 컴퓨터의 옆판을 떼어내서 메인보드를 보게되면 친숙한 꽃개 모양의 칩들을 찾을 수 있을 것입니다.(Realtek이라는 회사로… 랜 칩셋과 사운드 칩셋과 같은 칩을 제조하는 회사입니다.) 그리고 위의 정보로는 부족할 것 같다면 아래와 같은 명령어를 이용해서 현재 시스템에서 사용 중인 하드웨어 장치 목록을 출력해봅니다.

<strong>$ aplay --list-devices</strong>
**** PLAYBACK 하드웨어 장치 목록 ****↵
0 카드: Intel [HDA Intel], 0 장치: ALC888 Analog [<strong><span style="color: #0000ff;">ALC888</span></strong> Analog]
    하위장치: 0/1
    하위장치 #0: subdevice #0
0 카드: Intel [HDA Intel], 1 장치: ALC888 Digital [<strong><span style="color: #0000ff;">ALC888</span></strong> Digital]
    하위장치: 1/1
    하위장치 #0: subdevice #0

저의 경우에는 메인보드에 ALC888이라는 사운드칩셋이 장착되어 있는 것 같습니다.

05. CPU 확인

이전의 포스팅에서 dmidecode를 이용해서 CPU에 대한 정보를 확인하는 법을 포스팅했습니다만, 이번에는 가상파일시스템인 /proc 파일시스템 내에 있는 파일을 이용해서 확인하는 법을 설명하도록 하겠습니다. 리눅스 시스템에서는 운영체제의 프로세스에 대한 정보와 다른 시스템의 정보를 /proc라는 가상의 파일시스템에 계층적인 파일형태의 구조로 보관하고 있습니다. 파일로 구성되어 있으므로 cat 명령어와 같은 것으로 터미널 상에서 읽어보는 것이 가능한 것입니다.

<strong>$ cat /proc/cpuinfo | grep <span style="color: #ff0000;">"model name"</span></strong>
model name	: Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz
model name	: Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz
model name	: Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz
model name	: Intel(R) Core(TM)2 Quad CPU    Q9550  @ 2.83GHz

위 처럼 입력을 하게 되면 CPU의 모델명을 확인할 수 있습니다. 출력되는 결과는 코어의 갯수에 따라서 결정이 됩니다. 저의 경우에는 쿼드코어이므로 모델명이 4번 출력이 됩니다.

이제는 CPU의 성능을 확인해볼 차례입니다.

<strong>$ cat /proc/cpuinfo | grep bogomips</strong>
bogomips	: 5646.37
bogomips	: 5646.74
bogomips	: 5646.79
bogomips	: 5646.80

참고로 위에 나오는 bogomips 출력은 비과학적인 측정법(참고문서 2번)입니다. 절대적인 성능 수치가 아니므로 참고만 하시길 바라겠습니다. 위의 결과는 4개의 코어를 가진 CPU이므로 4줄이 출력됩니다.

06. 하드디스크 장치확인

이제는… 대표적인 보조기억장치인 하드디스크에 대한 정보를 알아볼 차례입니다. 아래의 명령어를 입력해서 현재 시스템에 장착된 하드디스크(와 부록으로 ODD까지)의 모델을 출력해봅니다.

<strong>$ cat /proc/scsi/scsi | grep Vendor</strong>
    Vendor: ATA      Model: <strong><span style="color: #0000ff;">WDC WD6400AAKS</span></strong>-2 Rev: 01.0
    Vendor: ATA      Model: <strong><span style="color: #0000ff;">WDC WD6400AAKS</span></strong>-0 Rev: 01.0
    Vendor: ATA      Model: <strong><span style="color: #0000ff;">WDC WD20EARS</span></strong>-00M Rev: 51.0
    Vendor: TSSTcorp Model: CDDVDW TS-H663B  Rev: KC00

/proc 파일시스템 내에 scsi 디렉토리 내의 scsi 파일의 내용을 출력하면 시스템에 현재 장착된 SATA 장치들이 출력됩니다.(요즘에 대부분 Sata를 사용하므로…) 만약에 ide 장치라면 ide 디렉토리 내에 있을 것입니다.(확인을 못해봐서 죄송..ㅠ^ㅠ)

저의 경우에는 Western Digital(WD)사의 캐비어 블루 640GB 하드디스크 2개와 2TB짜리 백업용 하드디스크 하나를 장착해서 사용 중입니다.(2차 백업으로 히타치 외장이 있긴하지만… 거의 연결안합니다.;;) 마지막의 장치는 DVD 슈퍼멀티인데.. 하드디스크는 아니니까 넘어가도록 하겠습니다.

장치명을 확인했으니 이제는 하드디스크의 파티션 상태를 확인해보도록 하겠습니다. 두 가지가 있는데요… df 명령어를 이용하는 것이 있고, fdisk를 이용하는 방식이 있습니다. df의 경우에는 시스템에 연결된 전체 파일시스템(가상 파일시스템까지 포함해서…)의 크기와 사용량을 확인할 수 있습니다. 일단은 사용율과 상태를 확인하기 위해서… df 명령어부터 설명하겠습니다.

<strong>$ df -HT</strong>
파일시스템 형식     크기  사용됨 사용가능 사용율% 마운트 됨
/dev/sda1     <strong><span style="color: #0000ff;">ext3</span></strong>      16G   4.9G   9.5G  35% /
none      devtmpfs     2.2G   390k   2.2G   1% /dev
none         tmpfs     2.2G   6.4M   2.2G   1% /dev/shm
none         tmpfs     2.2G   115k   2.2G   1% /var/run
none         tmpfs     2.2G      0   2.2G   0% /var/lock
none         tmpfs     2.2G      0   2.2G   0% /lib/init/rw
none       debugfs      16G   4.9G   9.5G  35% /var/lib/ureadahead/debugfs
/dev/sdb1     <strong><span style="color: #0000ff;">ext3</span></strong>     631G   539G    60G  91% /media/sdb1
/dev/sdc1     <strong><span style="color: #0000ff;">ext3</span></strong>     2.0T   1.1T   867G  54% /media/sdc1
/dev/sda6     <strong><span style="color: #0000ff;">ext3</span></strong>     607G   457G   120G  80% /home

위 처럼 명령어를 입력하면, 각 파일시스템과 크기, 사용량, 사용율, 마운트 위치와 같은 정보가 출력이 됩니다. 사실 상 리눅스 파일시스템에 익숙하신 분이라면 위와 같은 출력결과만 보더라도 시스템의 상태를 쉽게 파악하실 수 있습니다. 간단하게 설명하면 sda, sdb, sdc가 물리적인 디스크(하드디스크)를 의미하구요… sda1과 같이 번호가 붙은 것들은 sda 하드디스크의 논리적인 파티션을 나타냅니다. 파티션이 늘어나면 sda2, sda3 이런 식으로 증가를 하는 것이구요…

사실 상 위에서 필요한 거의 모든 정보를 확인할 수 있어서 fdisk라는 명령어가 필요없을 것입니다. 그렇지만, 아래의 명령어를 입력하면 현재 시스템에 설치된 하드디스크의 파티셔닝 상태를 확인할 수 있습니다.

<strong>$ sudo fdisk -l</strong>

출력 결과는 너무 길어서 생략하도록 하겠습니다. 직접 본인의 시스템에서 입력해보세요~ fdisk의 명령어는 사실 하드디스크의 재포맷팅이 가능한 명령어라서 root 권한을 필요로 하므로 sudo를 이용해서 실행해야 합니다.

07. 마치면서…

이번 포스트가 작성이 어려웠습니다. 그 이유는… 전달력의 문제입니다. 가장 중요한 것은 이 글을 보시는 분들이 이해할 수 있는 형태의 글을 작성해야하는데, 하드웨어 지식이 있다는 것을 전제하에 설명을 전개할 수 밖에 없다는 점입니다.

사실 하드웨어 지식에 대한 공부는 필요가 없을 수 있습니다. 그렇지만, 리눅스를 사용하면서(혹은 윈도우즈를 사용하더라도…) 간단한 하드웨어 지식은 가지고 있으셔야 보다 유연하게 대처할 수 있습니다.(아는 것이 힘이니까요…ㅋ)

칩셋이니 노스/사우스 브릿지(메인보드 칩셋), 하드디스크의 포맷, 파티셔닝, SATA 이런 개념들이 생소할 수 있습니다. 저의 경우에는 무식하게 하나씩 뜯어보고 다시 조립해보고 이런 식으로 공부해서 마땅히 초보자분들에게 소개를 할 만한 하드웨어 관련 서적을 알고 있지 못해서 아쉽네요… 그래도 인터넷이라는 방대한 지식의 보고가 있으므로 검색을 통하면 단편적으로라도 지식을 습득하실 수 있습니다. 혹시라도 이 글을 보시는 분들 중에서 하드웨어에 대해서 친절하게 알려주는 책이라든지, 체계적으로 정리된 웹문서나 블로그가 있으시다면 소개해주시면 감사하겠습니다.

아.. 이 포스트만 거의 3일동안 작성한 것 같아서 뿌듯하긴 하지만… 아무래도 미덥지 않네요…ㅠ^ㅠ(아직 제가 글 솜씨가 조악해서… 앞으로 보다 수련해서 모든 분들이 이해할 수 있는 글을 작성하도록 노력하겠습니다.)

08. 참고문서

  1. http://tombuntu.com/index.php/2008/01/31/dig-up-system-information-using-the-terminal/
  2. http://en.wikipedia.org/wiki/BogoMips
  3. http://minimonk.tistory.com/1395
  • yistee

    좋은 포스트 잘 봤구요..
    저도 $ lspci | grep Ethernet명령을 주려고 하는데, 제컴퓨터에 | 버튼이 없는데 어떻게 해결해야 하나요..?

  • yistee

    저도 $ lspci | grep Ethernet명령을 주려고 하는데, 제컴퓨터에 | 버튼이 없을시 어떻게 해야 할지 알려주세요..

    • 입력법은 Shift + ₩입니다. 지금 아이팟에서 쓰고 있는 것이라서 헷갈리긴 하는데 아마 맞을껍니다 ㅋㅋ

  • 좋은 정보 감사합니다.

    • 댓글달아주셔서 감사합니다^^;

  • cosmos

    많은 도움이 되었습니다.

    • simplism

      댓글달아주셔서 감사합니다!!