출처 : http://www.solanara.net/solanara/hardware


하드웨어 호환 목록(HCL) - 윈디하나의 솔라나라

목차

하드웨어 호환성

솔라리스의 하드웨어 지원

오라클과 후지쯔에서 판매하는 모든 Sparc 및 x86 시스템은 솔라리스를 매우 잘 지원한다. 적어도 이들 시스템에서는 하드웨어와 관련된 이슈가 없다. 아래의 내용은 모두 x86에 해당되는 내용이다.
  • CPU
    • AMD와 Intel CPU 및 32Bit, 64Bit를 잘 지원한다. Via는 지원을 보장하지 않는다.
    • AMD의 PowerNow!, Intel의 Speedstep은 Solaris 10 x86 5/08 부터 지원한다.
    • Sun xVM을 제대로 지원하기 위해서는 AMD 옵테론 리비전 F 이상, VT확장이 지원되는 인텔 CPU가 필요하다. 2008년 여름 이후에 리비전되어 나온 CPU는 모두 이를 지원한다.
  • VGA
    • nVIDIA칩을 사용한 그래픽 카드는 최신 그래픽 카드까지, 3D(OpenGL)까지 잘 지원해준다. nVidia 유닉스 드라이버에서 드라이버를 받을 수 있다. 최신 GPU를 사용하는 경우 솔라리스에 번들된 드라이버보다 좋으니 반드시 설치하자.
    • Intel칩셋을 사용한 IGP는 최신 버전까지 잘 지원해 준다.
    • 2011.09 현재 샌디브릿지CPU에 있는 내장 그래픽 시스템을 지원하지 못한다.
    • ATI칩을 사용한 그래픽 카드는 Radeon HD 이전의 그래픽 카드까지만 잘 지원해준다. Radeon HD 그래픽 카드라면, 화면이 나오는 정도다.
    • 그 이외의 VGA 카드는 화면이 나오는 정도다. (가속기능을 사용 못한다)
  • Storage
    • 표준 ATA및 SATA장치와, Adaptec, LSI Logic, Intel 의 SCSI, SAS, RAID 장치는 (저가형 어댑터를 제외하고) 대부분 지원한다. 벤더 홈페이지에 별도의 드라이버를 등록해 놓고 있다.
    • 솔라리스 10 5/08 이상부터는 Intel ICH6/7/8/9, VIA vt8251의 SATA AHCI와 NCQ를 지원한다. ICH10의 AHCI는 솔라리스 10 9/10부터 지원한다. 솔라리스 10 8/11 부터는 AMD 칩셋을 포함해 대부분의 AHCI 드라이버를 지원한다. 자세한 사항은 ahci(7D)를 읽어보자.
    • 솔라리스는 하드웨어에서 디스크 스케줄링이 지원되어야 성능이 좋아진다. IDE 컨트롤러와 SATA HDD 보다는, AHCI 컨트롤러와 SATA HDD가 훨씬 좋다는 의미다. 물론 SAN이나 SCSI기반 장치를 사용하면 더욱 좋다.
  • NIC
    • Intel과 BroadCom, 3Com, Realtek의 NIC이면 대부분 지원된다. 그렇지만 마더보드에 임베드되어 나오는 것은 간혹 지원되지 않는 경우가 있다.
    • 네트워크 가상화를 위해서는 GLDv3(Generic LAN Driver v3)와 호환되는 NIC가 필요하다. 드라이버 이름이 bge, e1000g, xge, nge, rge이면 지원될 것이다.
      bge: BroadCom 기가비트 이더넷 장치
      e1000g, igb: Intel의 기가비트 이더넷 장치
      xge: Neterion의 10기가비트 이더넷 장치
      nge: nVIDIA의 기가비트 이더넷 장치
      rge: Realtek의 기가비트 이더넷 장치
      이외에도 최근에 나온 솔라리스 설치본에 번들된 드라이버는 대부분 GLDv3를 지원한다. 각각의 드라이버에 대해서는 man페이지를 참고하자.
    • Wi-Fi는 솔라리스 11부터 지원한다. NIC지원만 놓고 본다면 솔라리스 11이 더 많은 장치를 지원한다.
    • 솔라리스에 번들되지 않은 NIC는 Free NIC drivers for Solaris에 방문해보자. 대부분의 마더보드 내장 NIC를 지원해준다.
  • Audio
    • 솔라리스 10 이하에서는 오디오 지원이 거의 전무하다. AC 97, Intel High Definition Audio 호환 사운드카드라면 지원 하는 경우도 있다. 그냥 바이오스에서 끄는 것이 좋다고 생각한다.
    • 솔라리스 10 이하에서 반드시 필요하다면 Open Sound System드라이버를 사용하는 것을 고려해보자.
    • 솔라리스 11부터 Open Sound System 4 가 번들되어있다. 따라서 대부분의 오디오 기기를 지원한다.
  • Printers
    • Lexmark는 자사가 제조한 대부분의 프린터에 대해 솔라리스 프린터 드라이버를 제공하고 있다.
    • Xerox 의 비즈니스 프린터라면 대부분 잘 지원해준다.
    • HP 의 경우 JetDirect 및 PostScript Driver를 이용해 네트워크로 연결할 수 있다. 솔라리스용 JetDirect 드라이버를 HP홈페이지에서 구할 수 있다.
    • 윈도우에서 공유중인 프린터가 PostScript 명령을 해석할 수 있으면 연결할 수 있다.
    • 솔라리스 11부터 CUPS(The Common UNIX Printing System)를 지원한다. 솔라리스 10까지 사용되었던 LP 프린팅 시스템을 대체할 것이다. CUPS는 대부분의 네트워크 프린터에서 지원되기 때문에, 프린터 사용에 문제가 없을 것으로 본다.
  • 서버 제조사별
    • 당연하지만, 오라클(썬 마이크로 시스템즈)에서 판매하는 x86서버는 솔라리스를 지원한다.
    • HP 나 IBM 에서 판매하는 x86서버도 대부분 솔라리스를 지원한다. 벤더에 확인해보라.
    • HP의 경우 Oracle Solaris Supported Matrix에서 각 서버의 지원 사항을 확인할 수 있다.

HCL(Hardware Compatibility List)

Solaris SPARC/x86 에서 호환되는 장치에 대해 Oracle Solaris OS: Hardware Compatibility Lists에 가서 검색해볼 수 있다. 사용자가 직접 올린 코멘트도 볼 수 있다.

Solaris for x86 Device Support (추천)

Solaris on x86 Platforms Device Support에서는 솔라리스 버전및 릴리즈 별로 호환되는 장치의 목록에 대해 볼 수 있다.

시스템의 장치와 솔라리스와의 호환성 알아내기

Oracle Device Detection Tool

Oracle Device Detection Tool페이지에서 Oracle Device Detection Tool(sddtool_23.jnlp)을 다운로드 받는다. 자바로 되어있는 프로그램이라 자바 1.4.2 이상 지원되는 운영체제라면 모두 사용할 수 있다. 현재 사용하고 있는 시스템에서 솔라리스가 지원되는지 지원되지 않는지, 드라이버는 어디서 받을 수 있는지 알려준다.
솔라리스: prtconf -pv > hcl.txt
리눅스: lspci -vv -n > hcl.txt
윈도우: reg query hklm\system\currentcontrolset\enum\pci /s > hcl.txt
와 같은 커맨드를 실행시키면 hcl.txt가 생성된다. 이를 Oracle Device Detection Tool의 [파일 → 가져오기...] 에서 읽으면 아래와 비슷한 결과를 얻을 수 있다.


※ [atge]장치가 지원되지 않는 것으로 나와있으나, 아래의 주를 보면, 서드파티 드라이버를 다운로드 할 수 있는 주소가 나와있다.

PCI ID

※ PCIDatabase.com이나 The PCI ID Repository에 가서 PCI 장치ID값을 입력하면 장치의 제조사와 종류및 이름을 알려 준다. 대부분의 PCI장치는 등록되어있기 때문에, 거의 확실하게 알 수 있다. PCI장치 아이디(벤더ID와 장치ID)는 바이오스에서 부팅시 알려주며, 다음과 같이 알아낼 수 있다.

* 솔라리스 x86, x64
root@wl ~ # /usr/X11/bin/scanpci
...
pci bus 0x0002 cardnum 0x05 function 0x00: vendor 0x10b7 device 0x1700
 3Com Corporation 3c940 10/100/1000Base-T [Marvell]
...
root@wl ~ #
* 리눅스
root@wllinux ~ # /sbin/lspci
...
00:07.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
...
root@wllinux ~ # /sbin/lspci -n
...
00:07.0 0200: 10ec:8139 (rev 10)
...
root@wllinux ~ #
※ 솔라리스x86에서 각각의 PCI장치에 대해 붙어있는 드라이버의 이름을 보려면 아래와 같이 한다.
root@wl ~ # prtconf -D
...
            pci10b7,9055, instance #0 (driver name: elxl)
            pci8086,70, instance #0 (driver name: iprb)
...
root@wl ~ # 

장치보기

  • sysdef

    시스템의 모든 장치(Pseudo장치 포함)에 대해 알려준다. 주로 -d옵션과 같이 사용된다.
    root@wl ~ # sysdef -d
    Node 'i86pc', unit #-1
            Node 'scsi_vhci', unit #0
            Node 'isa', unit #0
                    Node 'i8042', unit #0
                            Node 'keyboard', unit #0
                            Node 'mouse', unit #0
                    Node 'fdc', unit #0
                            Node 'fd', unit #0
                    Node 'lp', unit #0
            Node 'pci', unit #0
                    Node 'pci8086,1237', unit #-1 (no driver)
                    Node 'pci8086,7000', unit #-1 (no driver)
                    Node 'pci-ide', unit #0
                            Node 'ide', unit #0
                                    Node 'cmdk', unit #0
                            Node 'ide', unit #1
                                    Node 'sd', unit #0
                    Node 'display', unit #0
                    Node 'pci8086,1e', unit #0
                    Node 'pci80ee,cafe', unit #0
                    Node 'pci8086,0', unit #-1 (no driver)
                    Node 'pci106b,3f', unit #0
                    Node 'pci8086,7113', unit #-1 (no driver)
                    Node 'pci8086,265c', unit #0
                    Node 'pci1000,8000', unit #0
                            Node 'sd', unit #10
                            Node 'sd', unit #9
            Node 'iscsi', unit #0
            Node 'pseudo', unit #0
                    Node 'zconsnex', unit #1
    ...
                    Node 'llc2', unit #0
            Node 'options', unit #0
            Node 'agpgart', unit #0
            Node 'objmgr', unit #0
            Node 'xsvc', unit #0
            Node 'acpi', unit #-1 (no driver)
            Node 'used-resources', unit #-1 (no driver)
            Node 'cpus', unit #0
                    Node 'cpu', unit #-1 (no driver)
    root@wl ~ #
    
  • prtconf

    시스템 설정 사항을 출력해준다.
    root@wl ~ # prtconf
    System Configuration:  Sun Microsystems  i86pc
    Memory size: 768 Megabytes
    System Peripherals (Software Nodes):
    
    i86pc
        scsi_vhci, instance #0
        isa, instance #0
            i8042, instance #0
                keyboard, instance #0
                mouse, instance #0
            fdc, instance #0
                fd, instance #0
            lp, instance #0
        pci, instance #0
            pci8086,1237 (driver not attached)
            pci8086,7000 (driver not attached)
            pci-ide, instance #0
                ide, instance #0
                    cmdk, instance #0
                ide, instance #1
                    sd, instance #0
            display, instance #0
            pci8086,1e, instance #0
            pci80ee,cafe, instance #0
            pci8086,0 (driver not attached)
            pci106b,3f, instance #0
            pci8086,7113 (driver not attached)
            pci8086,265c, instance #0
            pci1000,8000, instance #0
                sd, instance #10
                sd, instance #9
        iscsi, instance #0
        pseudo, instance #0
        options, instance #0
        agpgart, instance #0
        objmgr, instance #0
        xsvc, instance #0
        acpi (driver not attached)
        used-resources (driver not attached)
        cpus, instance #0
            cpu (driver not attached)
    root@wl ~ #
    
  • prtdiag

    시스템을 분석해 출력한다. x86보다는 스팍에서, 대형 서버에서 더 잘 출력해준다.
    root@wl ~ # prtdiag -v
    시스템 구성: Sun Microsystems  sun4u Sun Ultra 45 Workstation
    시스템 클록 주파수: 200 MHz
    메모리 크기: 1GB
    
    ==================================== CPUs ====================================
                   E$          CPU                    CPU
    CPU  Freq      Size        Implementation         Mask    Status      Location
    ---  --------  ----------  ---------------------  -----   ------      --------
    0    1600 MHz  1MB         SUNW,UltraSPARC-IIIi    3.4    on-line     MB/0
    
    ================================= IO 장치 =================================
    
    ============================== 메모리 구성 ==============================
    세그먼트 테이블:
    -----------------------------------------------------------------------
    기본 주소       크기       인터리브 계수 포함
    -----------------------------------------------------------------------
    0x200000000        1GB               1           BankIDs 0
    
    뱅크 테이블:
    -----------------------------------------------------------
               물리적 위치
    ID       ControllerID  GroupID   크기       인터리브 방식
    -----------------------------------------------------------
    0        0             1         1GB             0
    
    메모리 모듈 그룹:
    --------------------------------------------------
    ControllerID   GroupID  Labels         Status
    --------------------------------------------------
    0              1        MB/DIMM2
    0              1        MB/DIMM0
    
    =============================== usb 장치 ===============================
    
    Name          Port#
    ------------  -----
    mouse           1
    keyboard        2
    
    =============================== usb 장치 ===============================
    
    Name          Port#
    ------------  -----
    hub             7
    
    =============================== 환경 상태 ===============================
    팬 상태:
    -------------------------------------------
    Location             Sensor          Status
    -------------------------------------------
    F0                   cpu0-fan        okay
    F2                   pci-fan         okay
    F3                   system-fan3     okay
    F4                   system-fan4     okay
    
    온도 센서:
    -----------------------------------------
    Location       Sensor              Status
    -----------------------------------------
    MB/0           cpu0-sensor         okay
    MB             mb-sensor           okay
    MB             adt7462-sensor      okay
    MB             lm95221-sensor      okay
    MB             fire-sensor         okay
    MB             lsi1064-sensor      okay
    FIOB           front_panel-sensor  okay
    MB             psu-sensor          okay
    
    ================================= HW 개정 =================================
    ASIC Revisions:
    -------------------------------------------------------------------
    Path                   Device           Status             Revision
    -------------------------------------------------------------------
    /pci@1e,600000         pciex108e,80f0   okay               3
    /pci@1f,700000         pciex108e,80f0   okay               3
    
    시스템 PROM 개정:
    ----------------------
    OBP 4.21.6 2006/03/31 15:02 Sun Ultra 45 Workstation
    POST 4.21.6 2006/03/31 15:24
    root@wl ~ #
    
  • dmidecode

    x86 시스템의 DMI영역을 디코드해 보여주는 유틸리티다. 리눅스 배포판에는 기본으로 포함되어있지만, 솔라리스에서도 설치해 사용할 수 있다. dmidecode
    root@wl ~/src # wget http://download.savannah.gnu.org/releases/dmidecode/dmidecode-2.11.tar.bz2
    root@wl ~/src # tar xvfj dmidecode-2.11.tar.bz2
    root@wl ~/src # cd dmidecode-2.11
    root@wl ~/src/dmidecode-2.11 # vi Makefile
    CC      = /usr/sfw/bin/gcc
    root@wl ~/src/dmidecode-2.11 # /usr/sfw/bin/gmake
    root@wl ~/src/dmidecode-2.11 # cp dmidecode /usr/local/bin
    root@wl ~/src/dmidecode-2.11 # dmidecode
    # dmidecode 2.11
    SMBIOS 2.4 present.
    60 structures occupying 1782 bytes.
    Table at 0x000F0000.
    
    Handle 0x0000, DMI type 0, 24 bytes
    BIOS Information
            Vendor: Phoenix Technologies, LTD
            Version: ASUS M2A-VM HDMI ACPI BIOS Revision 5001
            Release Date: 02/04/2010
            Address: 0xE0000
            Runtime Size: 128 kB
            ROM Size: 1024 kB
    
    ...
    
    End Of Table
    

  • CPU 마이크로 코드 업데이트

    마이크로 업데이트
    특별한 문제가 없다면 굳이 마이크로 코드를 업데이트 할 필요 없다. 솔라리스에서도 기본적으로 제공해준다.
    ※ 인텔 프로세서 마이크로 코드 데이터 파일 업데이트
    우선 인텔 다운로드 사이트에서 Processor Microcode Data File로 검색해 최신의 마이크로 코드 파일(microcode-*.tgz)을 다운로드 받는다.
    root@wl ~ # tar xvfz microcode-20110915.tgz
    root@wl ~ # mv microcode.dat /platform/i86pc/ucode/intel-ucode.txt
    root@wl ~ # ucodeadm -i /platform/i86pc/ucode/intel-ucode.txt
    root@wl ~ # ucodeadm -u /platform/i86pc/ucode/intel-ucode.txt
    root@wl ~ # reboot
    
    ※ AMD 프로세서 마이크로 코드 데이터 파일 업데이트
    우선 AMD 다운로드 사이트(OSRC: Microcode)에서 최신의 마이크로 코드 파일(amd-ucode-latest.tar)을 받는다.
    root@wl ~ # tar xvf amd-ucode-latest.tar
    root@wl ~ # cd amd-ucode-2011-01-11
    root@wl ~/amd-ucode-2011-01-11 # mv microcode_amd.bin /platform/i86pc/ucode/amd-ucode.bin
    root@wl ~/amd-ucode-2011-01-11 # ucodeadm -i /platform/i86pc/ucode/amd-ucode.bin
    root@wl ~/amd-ucode-2011-01-11 # ucodeadm -u /platform/i86pc/ucode/amd-ucode.bin
    root@wl ~/amd-ucode-2011-01-11 # reboot
    
  • IRQ 충돌 확인

    부팅 도중 아래와 같은 메시지가 나오는 경우가 있다.
    root@wl ~ # cat /var/adm/messages
    ...
    Nov 14 xx:xx:xx wl unix: [ID 954099 kern.info] NOTICE: IRQ19 is being shared by drivers with different interrupt levels.
    Nov 14 xx:xx:xx wl This may result in reduced system performance.
    ...
    
    IRQ가 충돌된다는 의미다. 그리고 시스템 성능을 낮추는 결과를 가져온다. 필요 없는 장치를 제거하거나, BIOS에서 IRQ를 수동으로 조절해 해결할 수 있다.

    솔라리스의 IRQ 할당 내역은 아래와 같이 확인할 수 있다. 솔라리스의 APIC테이블을 조회해서 알아온다.
    root@wl ~ # mdb -k
    Loading modules: [ ... ]
    > ::interrupts
    IRQ  Vector IPL Bus   Type  CPU Share APIC/INT# ISR(s)
    ...
    19   0x83   9   PCI   Fixed 0   2     0x0/0x13  uhci_intr, ata_intr
    ...
    > Ctrl+D
    root@wl ~ # 
    
    uhci(7D)는 USB 1.x 컨트롤러 드라이버고, ata(7D)는 ATA/SATA 하드디스크 드라이버의 이름이다. uhci, ata 와같은 단어의 의미는 man페이지를 참조하면 된다. 만약 이런 시스템에서 USB장치와 하드디스크를 동시에 사용하면 시스템 성능이 느려질 수 있다. IRQ 충돌 해결은 서버의 바이오스에서 해결해 줘야 한다. IRQ를 강제로 할당할 수 있는 마더보드라면 시도해볼 수 있다.

    SPARC 에서는 이런 문제가 없다.

링크

HCL 관련

서드파티 드라이버 관련

Twitter RSS IconTexto 올바른 XHTML 1.0 Transitional 입니다 올바른 CSS입니다!

+ Recent posts