Clevo W65KJ1_KK1 (한성 XH57) 커피레이크 개조 바이오스 삽질기

들어가면서

데스크탑 용도로 한성 XH57을 사용하고 있어요<

이 노트북의 가장 큰 특징은 데스크탑 CPU를 장착하고 있다는 건데요, 그래서 그런지 노트북에 비해서 성능이 꽤 넉넉해서 (펜티엄인데도) 데스크탑으로 사용하기 좋은 것 같아요, 쿨링도 울트라북에 비하면 잘 되어있고요.

잘 쓰고 있는데, 왠지 이런 말을 인터넷에서 보게 되었죠:

???: 인텔의 7세대 보드에서 8세대 CPU는 사실 호환 된다, 인텔이 보드 더 팔아먹으려고 그냥 안되게 막아놓은 것이다.

아주 그럴듯한 말이죠, 인텔이 지금까지 우리에게 저지른 짓을 생각하면요.

그래서 분명 이렇게 많이 팔리고, 가성비로 소문난 노트북이라면 누군가가 미리 개조해 놓은게 있을 것이다 라는 생각이 들어서 검색을 해 봤더니, 세상에 진짜로 있는거에요.

그래서 빨리 다운로드를 해 놓으려고 했죠, 인터넷에 있는 자료는 생각보다도 유통기한이 짧으니까요. 그런…데 이미 좀 늦었더라고요. 바이오스를 개조해서 올리신 분이 커뮤니티의 유저들과 다소 마찰이 있어서, 올려놓은 파일들을 비공개로 전환한 것 같았어요.

권한 요청 버튼을 눌러놓고 개인적으로 메일이라거나 보낼 수 있는 방법을 찾아서 부탁을 드려볼까… 싶다가, 본인이 싫다는데 거기에 부탁하는 건 좀 예의가 아닌 것 같아서요. 못하는 것도 아니니 귀차니즘을 이기고 언제나처럼 직접™ 해보기로 했습니다.

닌텐도 전 대표, 이와타 사토루가 '직접' 이라고 말하면서 양 손을 얼굴 앞으로 뻗는 특유의 제스쳐를 취하는 그림
이와타 사토루 전 닌텐도 사장, 닌텐도 다이렉트의 저작권은 주식회사 닌텐도에 있습니다.

오늘만은 윈도우

바이오스 관련 툴들은 죄다 윈도우용으로만 있죠. 그래서 오늘만은 리눅스를 사용하지 못하고 윈도우 VM을 사용하기로 했어요.
우선 모든 작업을 하기 전에, 컴퓨터가 켜져있는 상태에서 한번 백업을 떠보기로 했어요.

$ sudo flashrom -p internal -r bios_raw_dump.bin

무리없이 8 메가바이트짜리 덤프가 떠졌고, 두번 연속으로 해도 같은 해시가 나와서 우선 저 파일을 보관해 두기로 했어요.

VirtualBox 를 사용해서 바이오스 작업용 윈도우를 새로 설치하면서 1)아무래도 주로 사용하는 게임 환경에 설치하기엔 좀 깔끔하진 않아서 어떤 작업을 해야 하는지 정리해 보았어요.

  1. 커피레이크 CPU 마이크로코드 삽입
  2. Intel ME 무력화 (아무짝에도 쓸모 없는 보안을 해치는 녀석이니 이참에)
  3. 바이오스에 든 옵션롬들도 이왕이면 업데이트 하자, 최신이 나쁠건 없으니
  4. 한성 로고는 영 아니니 이왕이면… 좀 모에한 로고로 바꾸자

그리고 필요한 프로그램들을 정리해 보았어요.

  1. MMTool2)AMI의 지적 자산이에요
  2. UBU
  3. me_cleaner
  4. UEFITool

연장은 이정도면 되었겠죠, 삽질을 시작해요<

우선 주목적인 CPU 마이크로코드부터, 덤으로 옵션롬들을 업데이트

윈도우 툴들은 처음 쓰는 사람도 쉽게 쓰기 좋아서 참 좋은 것 같아요, 하지만 개인적으론 OS가 정말로 마음에 안 들죠<

UBU를 사용해서 아까 뜬 덤프를 열었어요. 다행히 잘 열리네요. 마이크로코드 업데이트 옵션으로 우선 바이오스에 있는 마이크로코드들을 업데이트 해요.
그리고 나서 새로운 커피레이크 CPU용 마이크로코드를 삽입해야 하는데, 프로그램 자체엔 그 메뉴가 없더라구요.
꼼수로 필요하지 않은 스카이레이크 CPU의 마이크로코드의 최신 버전이라고 속이면서 커피레이크 CPU용 마이크로코드를 강제로 밀어넣었어요. 뭐 어차피 상관 없겠죠.

마이크로코드를 밀어넣고 나서 랜카드의 옵션롬 같은 자잘한 옵션롬을 업데이트 해요. 안해도 상관 없겠지만 뭐 최신이라는데 나쁠건 없겠죠.

로고!

한성 로고는 아주 지루해요.

그러니 좀 바꿔봤어요.

이제 좀 낫네요, 최근에 mNetwork 안에 만들어진 연구소인 mNetwork 비전리 방사선 연구소 의 자산이라는 표시도 넣기로 해요<

UEFITool 에 있는 모듈 Body 바꿔치기 기능으로 새로운 로고를 넣을 수 있어요. 이름은 Logo.bmp 이지만 사실은 jpg라는 걸 잊지 말기로 해요.

Intel ME 무력화

사실 로고는 아무래도 좋고 (바탕화면을 많이 보지, 부팅 로고는 안 보잖아요) 더 중요한건 Intel ME를 없애버리는 거였어요.

$ me_cleaner -S bios_microcode_vbios_realtek_updated_logo.bin -O bios_microcode_vbios_realtek_updated_logo_aggressiveclean.bin
$ me_cleaner -s bios_microcode_vbios_realtek_updated_logo.bin -O bios_microcode_vbios_realtek_updated_logo_passiveclean.bin

ME 펌웨어 부분에 HAP 비트만 설정해도 물론 ME를 끌 수 있긴 하지만, 찝찝하니까 가능하면 ME 펌웨어의 대부분을 삭제하고 싶었어요. 하지만 실패할 가능성이 좀 있으니 (이 노트북은 Boot Guard가 활성화 되어 있으니) HAP 비트만 설정한 버전도 하나 준비하기로 해요.

플래싱!

을 컴퓨터에서 하고 싶었어요. 사실 못하는 건 아니에요. 하는 방법이 있긴 한데… 아까 뜬 덤프가 맞는지 좀 의심스러운 점도 있어서 직접 분해해서 SPI 플래셔로 EEPROM에 접근하기로 했어요.

말은 쉽지, EEPROM이 쉽게 접근하기 어려운 위치에 있더라고요 (M.2 슬롯과 CPU 쿨러 사이에 있는 히트싱크과 검정 플라스틱 아래), 열심히 나사를 정리하면서 분해했습니다. 뭐 이리 나사가 많아, 전동드라이버를 사던지 해야지 원…

듀퐁 케이블 난장판으로 싸구려 SOIC8 클립을 연결하고, 스팩시트를 침침한 눈으로 한 다섯번 읽어가면서 전압이랑 핀 배열을 체크했죠. 3.3볼트 칩에 5볼트를 넣는다거나, 1.8볼트 칩에 3.3볼트 혹은 5볼트를 넣는다거나3)사실 3.3볼트는 로직 레벨 컨버터가 도착을 안 했을때 한번 해본적 있었어요, 다행스럽게도 고장 안났죠. 플래싱 하는동안 얼마나 심장이 쫄깃하던지 하면 큰일 나니까요.

다행스럽게도 이 칩은 3.3볼트여서 로직 레벨 컨버터에 물릴 필요는 없어요. 레노버 싱크패드 쓸땐 1.8볼트라서 궁시렁 거리면서 로직 레벨 컨버터에 연결하곤 했는데, 이건 그점은 참 마음에 드네요.

언제나 하던것처럼 다시 한번 정식으로 덤프를 뜨고 md5를 한번 아까 시작할 때 덤프 뜬 거랑 비교해봤죠. 어, 다르네…

뭐지…?

이미 XH57을 다 분해해 둔 상태라서 XH57 안에 있는 하드 안에 있는 VM 이미지에서 자료를 꺼내오기도 곤란하고4)USB-SATA 연결할 수 있는 외장하드 케이스를 사둘까… 아쉬운대로 XPS에 있는 VM에다가 UEFITool을 설치해서 실제 롬 덤프 안에 있는 리전들을 비교해보기로 했어요.

BIOS 리전 - 해시 일치
ME 리전 - 해시 불일치

다른 부분 - EC 등 은... 뭐 확인은 안되지만 같겠죠, 뒷부분쪽은 vbindiff 해보니 같았으니

어차피 ME는 날릴거니, 그냥 해보자는 생각이 들었어요. 그래서 다시 덤프 데이터가 맞는지 한번 더 떠보고, 그래도 불안해서 또 한번 더 떠보고 md5가 모두 일치한다는 걸 확인하고 로고 & ME HAP 설정 그리고 대부분 ME 펌웨어 삭제 버전 롬을 플래싱 했어요. 그리고 머리 한 구석에서 불안감을 떨치지 못하면서 부랴부랴 다시 노트북을 조립했죠. 조립하면서 팔이 아파서 진짜 전동드라이버를 사고 싶었어요.

두근두근

책상은 전선과 여러대의 컴퓨터, 여러개의 키보드 등으로 난장판이라서, 비교적 좀 더 자리가 넓은 책상 역할을 하고 있는 침대 위에서 배터리로 XH57을 켜보려고 40% 쯤으로 충전해서 보관중이던 배터리를 가져왔어요. 배터리를 장착하고 전원을 켰는데… 화면이 검정색이네요.

아, 망했다 생각이 드는 찰나에 삐- 하는 POST 비프가 들렸어요. 그리고 systemd-boot 의 부트 선택 화면이 보였죠. 다행스럽게 로고만 망했네요, 아직까진.

그리고 OS로 부팅해서 ME가 어떻게 되었는지 급하게 명령어를 쳤어요

$ sudo ./intelmetools -m
Can't find ME PCI device

만세!

하지만 30분 더 있어봐야죠, ME를 잘못 제거하면 컴퓨터가 30분 후에 강제로 꺼지니까요.

watch -n 1 uptime

유튜브라도 보면서 시간을 보내다 구석에 있는 터미널을 보니 어느새 부팅 후 31분이 지나고 있었어요. 성공적으로 ME를 제거한거에요.

앞으로 더 할 일

나중에 뜯을 기운이 있을 때 (아마도 i5-8400으로 CPU를 교체할 때) 로고를 다시 건드리기로 했어요. 아마 파일 크기 한계나 압축 형식 같은 문제겠죠. 서멀을 대충 조립하느라 새걸로 바르지 않고 그냥 그대로 덮었는데, 이것도 그때 다시 발라야겠죠. 우선은 삽질 성공!

ME를 제거하고 마이크로코드를 넣은 바이오스 파일은 전례를 보았으니 공개하지 않을거에요. 하지만 대충 어떻게 하는지 필요한 도구들과 과정을 적어놓았으니 컴퓨터를 잘 다루시는 분들이라면 할 수 있겠죠. 이 작업을 제대로 된 장비 없이 하면 진짜로 컴퓨터가 딴딴한 벽돌이 될 수 있으니, 할 수 있는 분들만 하세요.

Sn   [ + ]