HP ProLiant ML110 G7¿¡¼ Ivy Bridge CPU »ç¿ëÇϱâ
mac.c (265byte), Down : 26, 2014-07
http://green-rabbit.sakura.ne.jp/note/2013/03/27/6/ (1056)
이 글은 system BIOS를 수정하여 제조사가 공식 지원하지 않는 CPU를 지원하도록 하는
내용을 다루고 있습니다. 아래 내용은 모두 확실한 근거가 없으며, 경험적인 내용을
다루고 있습니다. System BIOS 수정은 매우 위험한 작업이며, main board를 사용
불가로 만들 수 있습니다. 또한, 제조사가 이에 대한 A/S를 거부할 수도 있습니다.
작업에 대한 모든 책임 역시 본인에게 있다는 것을 명심하고 행동에 옮기시기
바랍니다.
2CPU에서 ML110 G7을 구입한 분들이면 모두 Ivy Bridge CPU를 사용 가능하다는 아래
게시물을 알고 계실겁니다:
제가 ML110 G7에서 E3-1230v2를 사용하기 위해서 위 게시물의 내용을 따라하면서
발견한 내용을 간단히(?) 정리해보겠습니다. 위 게시물에서 충분히 설명되었다고
생각되는 부분에 대해서는 중복해서 설명하지 않겠습니다.
이 작업을 했을 때 예상되는 결과는:
1. Ivy Bridge Xeon E3-1200v2 CPU를 사용 가능
2. Ivy Bridge CPU 장착시 PCIe 1, 2번 슬롯 사용 불가
현재로써는 PCIe 1, 2번 슬롯 문제를 해결하지 못한 상태입니다. BIOS update의
문제가 아니기 때문에, 해결이 가능할지가 불투명하고.. 살린다고 해도 몇가지
제한이 있을 것으로 예상됩니다. 이와 같은 장단점을 자신의 사용 환경에서 저울질
해보시고 작업 여부를 결정하시기 바랍니다.
시작하기 전 아래의 준비물을 가지고 있는지 확인합시다:
1. E3-1200v2 CPU
2. 써멀 그리스
3. 좀 큰 1자 드라이버 (CPU 쿨러 분해/장착용)
4. 바이너리 에디터
5. 최신 ML110 G7용 system BIOS update
6. 최신 Intel CPU microcode update
7. microdecode
System BIOS update를 다운받아 설치한 후에, ROMPAQ.EXE를 이용해서 BIOS update
파일(제 경우에는 CPQJ0102.AE1)을 압축해제해서 DUMP.BIN 파일을 생성해둡니다.
최신 microcode update에서 E3-1200v2 CPU에 해당하는 306A9를 microdecode로
추출합니다. 글을 쓰는 시점에서는 0x1b 버전이 최신이네요. 여기서 한가지 확인할
것이 있습니다. microdecode의 버그로 보이는데, 가끔 추출된 microcode 파일에
불필요한 garbage가 붙어있을 때가 있습니다. Microcode update의 내용 중에서 0x20
부터의 4바이트가 little endian 으로 total length 입니다. 이 값과 추출된 파일
크기가 일치하는지 확인하세요.
이제 준비는 끝났고, 생성해둔 DUMP.BIN을 수정해봅시다. 원래의 게시물에서 가이드
하고있는 수정 포인트는 3가지입니다:
1. 지원 CPU 관련 정보 중 하나를 Ivy Bridge 해당 내용으로 수정
2. 206A7 processor family에 대한 microcode update를 306A9으로 overwrite
3. checksum 유지를 위한 임의의 byte 수정
제가 수차례 테스트 해본 결과로는, 1번은 아무 의미 없는 작업입니다. 수정 내용을
바꿔도 되고, 심지어 수정하지 않아도 괜찮았습니다. 따라서 생략합니다.
2번 microcode 관련 내용이 실제로 Ivy Bridge CPU 인식을 가능하게 하는 부분으로
짐작됩니다. 공식 BIOS 이미지가 가지고 있는 microcode update는 두 가지입니다:
1. 00360000-00361800 206A5 ver. 0x04
2. 00361800-00364000 206A7 ver. 0x29
206A5 update 뒤에 바로 206A7 update가 붙어있습니다. 그 뒤에는 offset 0x00370000
직전까지 0xff로 채워져 있는 빈 공간입니다. 0x00360000부터 64kB가 microcode
update를 위해 할당된 공간이라는 것을 짐작 할 수 있습니다. 처음에는 저도 원래
게시물의 가이드 대로 206A7 microcode update를 덮어썼습니다만, overwrite하지 않고
0x00364000부터의 빈 공간에 overwrite해도 똑같이 Ivy Bridge 인식이 가능했습니다.
그리고 이렇게 했을 때의 큰 장점은 같은 BIOS로 Sandy Bridge CPU를 여전히 사용할
수 있다는 것입니다. E3-1230v2 upgrade 이전에 사용하던 CPU가 G530인데, BIOS를
되돌리지 않고도 교체해서 사용할 수 있는 것을 확인했습니다.
따라서, 306A9 microcode update는 0x00364000부터 overwrite하는 것을 추천합니다.
바이너리 에디터를 이용해서 306A9 microcode update의 전체 내용을 복사하고,
DUMP.BIN 파일의 offset 0x00364000부터 덮어씁니다.
이제 system BIOS update 프로그램을 속이기 위해서 checksum을 원래의 BIOS와
일치시키는 3번 작업입니다. BIOS 이미지의 checksum 계산하는 방법은 MAC, Multiply-
Accumulate라는 방식입니다. Checksum 계산에 곱하기와 더하기라는 산술 연산이
들어있어서.. 솔직히 checksum으로 작용이 가능할 것으로 보이진 않습니다. 만약
N-byte 파일이 있다면, byte[n]과 byte[n+1]을 곱한 값을 모두 더한 것입니다. (물론
n과 n+1은 [1..N] 범위 내에 있습니다) 제가 사용한 무지 간단한 계산 코드(mac.c)를
첨부합니다.
제가 작업한 2013/07/01 BIOS의 경우에는 원본 checksum이 0xb4였습니다. 수정할
대상은 microcode update 뒷부분의 0xff로 채워진 부분 중에서 한 바이트를 골라
잡으면 됩니다. 저는 마지막(offset 0x0036ffff) 바이트를 수정했습니다. Checksum
계산 방식이 산술연산이고 해당 바이트의 앞/뒤로 0xff, 0x00이 있기 때문에 금방
적절한 수정 값을 찾을 수 있습니다.
이제 수정은 끝났습니다. 수정된 이미지 파일을 ROMPAQ.EXE로 BIOS update용 포맷으로
되돌리고, HPQUSB.EXE로 update용 USB를 만듭니다. 그리고 완성된 USB로 부팅시키면
됩니다. 이미 최신 BIOS로 update한 경우에도 경고가 한번 나오긴 하지만 update는
가능하게 되어 있더군요.
Update가 끝나면 전원을 끄고, 준비한 Ivy Bridge CPU를 장착합니다. 써멀 그리스를
잊지 마시고.. 기도하는 마음으로 전원을 다시 켭니다. 아마 금방 다시 꺼질겁니다.
잠시 기다리면 다시 켜집니다. 근데 좀 있으면 다시 꺼집니다. 불안한 마음으로 좀 더
기다리면 다시 켜지는데.. 여기까지 왔다면 아마 부팅이 잘 될 것 같습니다. 근데
원래 CPU를 바꾸면 무조건 이런 과정을 거치는지.. E3-1230v2를 쓰다가 G530을 꽂아도
똑같이 여러번 꺼졌다 켜집니다.
여러가지 테스트를 해보면서, 초기 로고도 나오지 못하는 상태가 되거나, 초기 로고가
나온 직후 상태로 멈추는 경우가 있었습니다. 이럴 때는 침착하게 아래와 같이
해봅시다:
1. 전원을 끕니다
2. 전면 및 측면 커버를 제거합니다
3. System Management Switch에서 1, 5, 6번을 on으로 바꿉니다 (default는 모두 off)
4. 전원을 켭니다
5. 다소 긴 삐~ 소리를 두 번 정도 들어줍니다
5. 전원을 끕니다
6. System Management Switch에서 1, 5, 6번을 off로 되돌립니다
7. 전면 및 측면 커버를 설치합니다
8. 전원을 켭니다
Trouble-Shooting Guide에 나오는 내용입니다. 제 경우에는 이렇게 해서 Redundant
ROM에 저장된 원래 내용으로 복구되고, 다시 정상 부팅 되었습니다. 모든 경우에 복구
된다는 보장은 없으니, 너무 믿지는 마시기 바랍니다.
±×·¡µµ ±â¾ïÇصΰڽÀ´Ï´Ù.
Àü 2¹øÀº ÇØ°áÇß¾ú´Âµ¥...
1¹ø°ú 3¹ø üũ¼¶À» ¾î¶»°Ô ÇؾߵÉÁö ¸ô¶ó¼ ½ÃµµÇÒ ¾öµÎ¸¦ ¸ø³»¾ú´Âµ¥..
ÇØ°áÀÌ ÀÖ¾ú³×¿ä. ^^
ÀÌÁ¦ ÀÌÇØ°¡ °¡³×¿ä.. »ó¼¼ÇÑ ¼³¸í °¨»çÇÕ´Ï´Ù.
ML110 G7¸¸ ÇÑ 7´ë °ÅÃÄ°£°Í °°³×¿ä.
¾È¾²°í °®°íÀÖ´Â°Í Çϳª Àִµ¥ ÁÖ¸»¿¡ Çѹø ÇغÁ¾ß°Ú³×¿ä.