하드웨어 호환 목록(HCL) - 윈디하나의 솔라나라
|
솔라리스: 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의 [파일 → 가져오기...] 에서 읽으면 아래와 비슷한 결과를 얻을 수 있다.
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 ~ #
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 ~ #
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 ~ #
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 ~ #
smbios
는 x86 시스템의 SMBIOS(System Management BIOS)영역을 관리할 수 있는 유틸리티다. 솔라리스에 포함되어있다. 자세한 사항은 smbios(1M)을 읽어보자.root@wl ~ $ smbios ID SIZE TYPE 0 101 SMB_TYPE_BIOS (BIOS information) Vendor: Phoenix Technologies, LTD Version String: ASUS M2A-VM HDMI ACPI BIOS Revision 5001 Release Date: 02/04/2010 Address Segment: 0xe000 ROM Size: 1048576 bytes Image Size: 131072 bytes Characteristics: 0x7fcb9e90 SMB_BIOSFL_ISA (ISA is supported) SMB_BIOSFL_PCI (PCI is supported) ...
root@wl ~/src # wget http://ftp.igh.cnrs.fr/pub/nongnu/dmidecode/dmidecode-3.0.tar.gz root@wl ~/src # tar xvfj dmidecode-3.0.tar.bz2 root@wl ~/src # cd dmidecode-3.0 root@wl ~/src/dmidecode-3.0 # vi Makefile CC = /usr/sfw/bin/gcc root@wl ~/src/dmidecode-3.0 # /usr/sfw/bin/gmake root@wl ~/src/dmidecode-3.0 # cp dmidecode /usr/local/bin root@wl ~/src/dmidecode-3.0 # dmidecode # dmidecode 3.0 Scanning /dev/xsvc for entry point. 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
root@wl ~ # modinfo | grep -i tzmon root@wl ~ # modload /kernel/drv/tzmon root@wl ~ # modinfo | grep -i tzmon 173 fffffffff7e1e090 10b0 265 1 tzmon (ACPI Thermal Zone Monitor)데이터를 뺴오려면 DTRACE 를 사용하자. 아래와 같은 내용으로 tzmon.d 로 저장하자.
#!/usr/sbin/dtrace -s #pragma D option quiet sdt:tzmon:tzmon_eval_zone:tz-temp { printf("temp %d.%1u°K/%d.%1u°C", arg0 / 10, arg0 % 10, (arg0 - 2732) / 10, (arg0 - 2732) % 10); } sdt:tzmon:tzmon_eval_zone:tz-temp /(int)arg1 > 0/ { printf(", crit hot %d.%1u°K/%d.%1u°C", arg1 / 10, arg1 % 10, (arg1 - 2732) / 10, (arg1 - 2732) % 10); } sdt:tzmon:tzmon_eval_zone:tz-temp /(int)arg2 > 0/ { printf(", hot %d.%1u°K/%d.%1u°C", arg2 / 10, arg2 % 10, (arg2 - 2732) / 10, (arg2 - 2732) % 10); } sdt:tzmon:tzmon_eval_zone:tz-temp { printf(", %s\n", stringof(arg3)); }
root@wl ~ # dtrace -l -s tzmon.d ID PROVIDER MODULE FUNCTION NAME 92996 sdt tzmon tzmon_eval_zone tz-temp 92996 sdt tzmon tzmon_eval_zone tz-temp 92996 sdt tzmon tzmon_eval_zone tz-temp 92996 sdt tzmon tzmon_eval_zone tz-temp// TODO
root@wl ~/src # tar xvfz microcode-20140430.tgz root@wl ~/src # mv microcode.dat /platform/i86pc/ucode/intel-ucode.txt root@wl ~/src # ucodeadm -i /platform/i86pc/ucode/intel-ucode.txt root@wl ~/src # ucodeadm -u /platform/i86pc/ucode/intel-ucode.txt root@wl ~/src # reboot※ AMD 프로세서 마이크로 코드 데이터 파일 업데이트
root@wl ~/src # wget http://www.amd64.org/microcode/amd-ucode-latest.tar.bz2 root@wl ~/src # tar xvf amd-ucode-latest.tar.bz2 root@wl ~/src # cd amd-ucode root@wl ~/src/amd-ucode # mv microcode_amd.bin /platform/i86pc/ucode/amd-ucode.bin root@wl ~/src/amd-ucode # ucodeadm -i /platform/i86pc/ucode/amd-ucode.bin root@wl ~/src/amd-ucode # ucodeadm -u /platform/i86pc/ucode/amd-ucode.bin root@wl ~/src/amd-ucode # reboot
부팅 도중 아래와 같은 메시지가 나오는 경우가 있다.
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가 충돌된다는 의미다. IRQ 충돌은 시스템 성능을 낮추는 결과를 가져올 수 있다. 일반적으로 필요 없는 장치를 제거하거나 비활성화하고, BIOS에서 IRQ를 수동으로 조절해 해결할 수 있다.
솔라리스에서 IRQ 할당 내역은 아래와 같이 확인할 수 있다. APIC 테이블을 조회해서 알아온다.
root@wl ~ # mdb -k Loading modules: [ ... ] > ::interrupts IRQ Vect IPL Bus Trg Type CPU Share APIC/INT# ISR(s) ... 19 0x82 9 PCI Lvl Fixed 0 2 0x0/0x13 uhci_intr, ata_intr ... > ::interrupts -d IRQ Vect IPL Bus Trg Type CPU Share APIC/INT# Driver Name(s) ... 19 0x82 9 PCI Lvl Fixed 0 2 0x0/0x13 uhci#1, pci-ide#1 > Ctrl+D root@wl ~ # intrstat 1 device | cpu0 %tim cpu1 %tim -------------+------------------------------ ehci#0 | 0 0.0 1 0.0 iprb#0 | 0 0.0 2 0.0 pci-ide#1 | 161 0.2 0 0.0 rge#0 | 0 0.0 0 0.0 uhci#0 | 0 0.0 1 0.0 uhci#1 | 161 0.0 0 0.0 Ctrl+C
::interrupts
는 IRQ별로 ISR (인터럽트 핸들러와 같은 의미임)를 보여주고, ::interrupts -d
명령은 장치 이름을 보여준다. intrstat(1m)은 인터럽트 상태를 보여주는데, CPU #0 에 할당되어있는 pci-ide#1 의 인터럽트 호출 회수가 초당 1로 이 시스템은 그리 부하가 걸리지 않음을 알 수 있다.
/var/adm/messages
에서는 IRQ19가 충돌이라고 나와있고, mdb(1M)에서 ::interrupts
로 확인해보면 IRQ19 는 CPU0 에서 수행되며, uhci_intr, ata_intr
인터럽트 루틴을 사용중이다. 이때 사용되는 장치명은 ::interrupts -d
명령을 통해 uhci#1, pci-ide#1
임을 알 수 있다. uhci(7D)는 USB 1.x 컨트롤러 드라이버고, ata(7D)는 ATA/SATA 하드디스크 드라이버의 이름이다. uhci, ata 와같은 단어의 의미는 man페이지를 참조하면 된다. 만약 이런 시스템에서 USB장치와 하드디스크를 동시에 사용하면 시스템 성능이 느려질 수 있다. IRQ 충돌 해결은 서버의 바이오스에서 해결해 줘야 한다. 서버 하드웨어에서 IRQ를 강제로 할당할 수 있는 기능이 있다면 IRQ 를 바꿔주자.
SPARC 에서는 이런 문제가 없다.
/etc/driver_aliases
파일을 vi(1)등을 사용해 연다.
드라이버이름 "벤더ID,디바이스ID"형대로 목록이 보일 것이다. 새로운 줄에 위 형식대로 저장한다.
root@wl ~ # update_drv 드라이버이름 root@wl ~ # devfsadm -i 드라이버이름시스템을 재시작한다.
root@wl ~ # reboot
root@wl ~ # modload drv/audiohd
RSS ATOM XHTML 5 CSS3 |
Copyright © 2004-2025 Jo HoSeok. All rights reserved. |