본문 바로가기
1.C. Geeky Customering/Other Products

구형 PC에 NVMe 부팅 기능 추가하기 (미완성)

by Never Settle Down 2024. 5. 4.
반응형

 

 

목차

0. 서론

1. 본론

   1.a. 하드웨어

   1.b. UEFI 펌웨어 (리버싱, 인젝션)

 

에이 귀찮다.

 

 

0. 서론


스탠다드 PCIe, M.2 NGFF, mini pcie는
모두 동일한 프로토콜을 쓰지만 모양만 다른 형태이다.


 
 
PCIe는 Lane이란 개념으로 대역폭이 나뉘는데,
2의 n승의 형태로 대역폭이 확장된다.
n은 0부터 4까지, 즉
1레인부터 2, 4, 8, 16레인으로 하나의 통신채널로 묶어 쓸 수 있으며
이는 x1, x2, x4 ,x8, x16의 형태로표현한다.
 
 
PCIe의 경우 버전이 있다.
1.0, 2.0과 같이 정수로 표현하며
현재 (2024년) 시장에는 PCIe 5.0까지 나와있다.
 
주로 버전 3.0 (구형 그래픽카드, 구형 NVMe SSD), 4.0 (신형 그래픽카드, 보급형~중급 NVMe SSD), 5.0 (고성능 NVMe SSD)
들이 쓰이고 있다.
 
PCIe 버전 2.0의 경우 구형 CPU에서 지원한다.
나의 경우 인텔 2~4세대 컴퓨터들에 해당하며
현재 쓰고 있는 컴퓨터의 경우 다음과 같은 놈들이 PCIe 2.0까지만 지원한다:
2023.08.13 - [1.C. Geeky Customering/Apple Products] - 구형 맥북 SSD 교체 Log (15년 프로, 17년 에어)

 

구형 맥북 SSD 교체 Log (15년 프로, 17년 에어)

Pre-script ps.1. 2024.01.05 - [Electronics log/Electronics Log (as Consumer)] - 맥북에어 부품호환 Log (12 ~ 17년 맥북에어 13인치 파츠스왑) 맥북에어 부품호환 Log (12 ~ 17년 맥북에어 13인치 파츠스왑) 나는 고장난 맥

thewanderer.tistory.com

2023.03.13 - [1.C. Geeky Customering/Apple Products] - 맥 미니(2014) 퓨전 드라이브 구성 (NVME & SATA SSD) Feat. 아키텍쳐 고찰

 

맥 미니(2014) 퓨전 드라이브 구성 (NVME & SATA SSD) Feat. 아키텍쳐 고찰

맥 미니 NVMe를 업그레이드할 떄가 시부엉 되어버렸다. 어바웃 댐 타임~ 노래가 너무 캐치하다. 가끔씩 머릿속에서 맴돈다 ㅋㅋ https://support.apple.com/kb/SP710?locale=ko_KR Mac mini (2014년 후반 모델) - 제

thewanderer.tistory.com

 
인텔 4세대 모바일 CPU가 박힌
세 놈의 똥컴 맥은 모두 PCIe 2.0까지만 지원한다.
CPU 단에서.
 
 
대부분의 기술이 그러하듯
PCIe는 하위호환을 지원한다.
 
PCIe 5.0 인터페이스의 고성능 SSD를
PCIe 2.0만 지원하는 똥컴 맥북에 꽂으면
PCIe 2.0모드로 SSD가 작동한다는 뜻이다.
 
 
대부분의 PCIe는 버전이 올라갈수록
전송속도가 대략 2배가 된다.

PCIe 1.0 x16의 경우
PCIe 5.0 x1과 전송 대역폭이 동일하다.
 
물론 PCIe 5.0 x1 장치를 PCIe 1.0에 장착할 경우
PCIe 1.0 x1으로 동작한다.
 
 
 
미니 pcie의 경우 PCIe *.0의 x1 커넥션을 이용하며
당연하지만 물리적인 모양이 완전히 다르므로 폼팩터 (물리적 구녕 모양)은 호환이 되지 않는다.
 
M.2 NGFF (New Generation Form Factor)의 경우 경우에 따라 다르다.
메인보드의 Wifi슬롯으로 불리는 A+F키 슬롯의 경우 x1의 레인을,
NVMe SSD 슬롯으로 불리는 M / M+B키는 주로 x4 레인을 사용한다.
 
 
 
 
 
 
쓸데없는 폼팩터와 PCIe 버전에 대해 구구절절 대충 설명한이유는 다음과 같다:
 
나는 구형 CPU가 박힌 컴퓨터를 여럿 가지고 있다.
이 중엔 데스크탑 CPU가 박힌 애들도 있고 (주로 인텔 3세대와 4세대 서버/컴퓨터 보드)
모바일 CPU가 박힌 애들도 있다. (미니PC, 노트북, 맥북)
 
 
노트북 CPU가 박힌 애들은 대부분 M.2 SSD를 쓰기가 어렵다.
왜? 포트가 없어서.
 
 
128GB M.2 NVMe SSD가 요즘 8천원대에 팔리고 있어서
동일한 용량의 Sata SSD보다 (새제품 1.3만원) 싸다.
 
 
이래서 이 녀석들을 구형 똥컴에 박는 방법에 대해 기재하려 한다.
 
1. 물리적 포트 연결
 
일단 일반 데스크탑의 경우
스탠다드 PCIe 슬롯이 있기 때문에
어댑터만 사면 된다.

 
다나와에서도 팔긴 하나
어차피 중국에서 떼와서 장당 2천원정도의 마크업을 붙여 판다.
 
x1이랑 x4 어댑터가 있으므로
반드시 주의해서 구매할 것.
(보드에 x1 슬롯만 있다면 x1을 사야할 것이고, 널찍한 슬롯이 넉넉히 있으면 x4를 사야할 것이다)

 
이 보드는 전에 바이오스를 개조한 놈이다.


2024.03.10 - [1.C. Geeky Customering/Other Products] - [토막글] BIOS/UEFI 개조 관련 기록 (삼성-폭스콘 H61 + 롬 라이터)

 

[토막글] BIOS/UEFI 개조 관련 기록 (삼성-폭스콘 H61 + 롬 라이터)

Look at it goLook at it dance over the sky like a rocket And we are, an atom and a starYou're a part of the movement and everything matters(To me, to me, to me, to me) 두아 리파도 존예지만오로라를 이길 사람은 없다... 목소리는 진

thewanderer.tistory.com

 
슬롯을 물리적으로 뜯기가 어렵다.
 
 

 
요 두 놈은 미니 PC이다.
 
위 놈은 Zotac 제품이고 (인텔 셀러론)
아랫 놈은 처음 들어보는 회사 제품이다 (AMD 이상한 프로세서)
 
기안다? 지안다? Gianda 라는 회사 제품.
 
 
개당 2만원 줬는데
파워 서플라이 (19V 3.42A)랑 SSD (128 SSD)만 해도
본전은 뽑았다고 보기 때문에 구매했다.
 
더 살까 하다가 굳이...
(당근에 매물이 30장 정도 있었음)
 

 
미니 PC는 그나마 공간이 넉넉해서
들어갈만한 놈들이 있고
못들어가는 놈들도 있다.
 

 
나는 일단 이런 단순한 어댑터만 샀는데
-> M.2 E키 (와이파이용) x1레인 슬롯이다... ㅜㅜ 잘못샀음.
 
공간에 따라 아래와 같은 리본케이블 기반 어댑터가 필요한 사람도 있을 것이다.
 
 

 
더럽게 비싸다...
 

요 놈은 칼리 리눅스 & 우분투 리눅스 머신으로 쓰는
MSI 게이밍 노트북이다.
 
 
저기에 커패시터 박은 샛기 나와
대가리 박아...!!! ㅜㅜ
 

 
요거는 조금 더 연식이 있는
LG전자의 엔지니어링 샘플 노트북으로 기억한다.
 
시판제품이 아니고 ES라서
mini PCIe 슬롯이 2개 다 실장되어있다.
 
노트북 자체는 파워쪽이 죽었다.
전압이 제대로 안 찍혀나옴.
 
 
물리적 폼팩터를 변환하였다면
별 탈 없이 인식은 될 것이다.
 
 
 
그러나 부팅 디스크로 쓰는건 별개의 문제이다.
 
컴퓨터의 전원버튼을 누르면
메인보드쪽 칩셋이 자기 펌웨어를 내부 메모리에 업로드한다.
 
POST (하드웨어 테스트)를 간단하게 하고 나서
현재 칩셋이 인식할 수 있는 보조 저장소 (SSD)를 탐색한다.
 
해당 디스크들의 앞쪽 특정 구역 (부트스트랩 할당 영역)을 탐색하고
'음 여기에 운영체제가 깔려있군' 하고 인식하면
이 부분을 주 저장장치 (RAM)에 적재한다.
 
운영체제가 여러개 깔려있을 경우
(하나의 디스크에 여러개가 아니라, 여러개의 디스크마다 부트스트랩이 있을 경우)
이전에 UEFI / BIOS 설정값에 따라 우선순위대로 부트스트랩 적재를 시도한다.
 
 
부트스트랩 어셈블리 코드를 메모리에 적재했으면
CPU에게 ' it's show time! ' 하고 인터럽트? 아니면 trap을 보낸다.
 
그 다음엔 CPU가 알아서 하는 부분.
 
 
그림을 그려서 같이 설명하고 싶은데
그림 그리기가 너무 구찮아서 그냥 말로 쓴다
 
나중에 시간 나면 그림 추가 예정.
 
 
 
 
 
여기서 보드 칩셋 (사우스브릿지)이
PCIe SSD를 단순 PCIe 장치가 아니라
보조 저장소로 인식을 할 수 있어야
PCIe SSD로 부팅을 시도할 수 있다.
 
 
전에는 Sata SSD (32GB)에 부트스트랩만 집어넣고
메인 OS는 PCIe SSD에 깔았던 적이 있다.
 
윈도우 7은 호작질 조금 하면 가능하다.
 
 
요즘 OS는 자동화가 완전히 잘 되어있어서
부팅 USB로 PCIe SSD에 운영체제를 깔아도
부팅을 못한다.
 
어떻게 장난질을 할 수도 없고.
 
 
 
 
그래서 제조사에서 PCIe SSD 부팅을 지원하는
바이오스를 공급하지 않는 이상
정상적인 부팅을 할 수가 없다.
 
이를 지원하기 위해선 BIOS 파일을 개조해야한다.
 
 
과정은 생각보다 간단하다.
 
1. BIOS 파일 구하기
2. BIOS 파일에 PCIe SSD 인식하는 마이크로 코드 주입
3. BIOS에 개조한 파일 덮어쓰기.
 
 
1과 3번의 경우
이전 글에서 다루었다.
2024.03.10 - [1.C. Geeky Customering/Other Products] - [토막글] BIOS/UEFI 개조 관련 기록 (삼성-폭스콘 H61 + 롬 라이터)

 

[토막글] BIOS/UEFI 개조 관련 기록 (삼성-폭스콘 H61 + 롬 라이터)

Look at it goLook at it dance over the sky like a rocket And we are, an atom and a starYou're a part of the movement and everything matters(To me, to me, to me, to me) 두아 리파도 존예지만오로라를 이길 사람은 없다... 목소리는 진

thewanderer.tistory.com

 
롬 라이터가 있다면
- 제조사에서 BIOS 파일을 구할 수 없거나
- BIOS에서 업데이트를 지원하지 않는 경우
에도 개조가 가능하다.
 
 
칩셋은 어떻게 찾냐고?
대부분 Windbond? 의 칩셋이 박혀있고
다리는 8개 짜리이다.
 

레노버 팅크센터의 바이오스 칩셋
(현재 VPN 서버로 쓰고 있는 미니 PC)
2023.01.19 - [1.A. High Level Computing/On Premise Computing] - VPN서버 (재)구축기 - OpenVPN (feat. Dedicated HW)

 

VPN서버 (재)구축기 - OpenVPN (feat. Dedicated HW)

At first I was afraid, I was petrifiedKept thinking I could never live without you by my sideBut then I spent so many nights thinking how you did me wrongAnd I grew strongAnd I learned how to get alongAnd I am a big fan of Evan Fong (lol the rhyme)  웹

thewanderer.tistory.com

 

요건 AMD 프로세서가 박힌 듣보잡 (지안다? 제조사) 미니PC
 

 
Zotac 미니PC의 바이오스 롬.
 
 
 
덤핑 뜨는 과정은 앞서 언급한 H61 보드 UEFI 개조 글로 갈음한다.
(마우스에서 가운데 휠 클릭으로 링크를 열면 새 탭으로 열 수 있다)

2024.03.10 - [1.C. Geeky Customering/Other Products] - [토막글] BIOS/UEFI 개조 관련 기록 (삼성-폭스콘 H61 + 롬 라이터)

 

[토막글] BIOS/UEFI 개조 관련 기록 (삼성-폭스콘 H61 + 롬 라이터)

Look at it goLook at it dance over the sky like a rocket And we are, an atom and a starYou're a part of the movement and everything matters(To me, to me, to me, to me) 두아 리파도 존예지만오로라를 이길 사람은 없다... 목소리는 진

thewanderer.tistory.com

 

 

 

바이오스 파일 개조 과정은 다음과 같다:

0. 제조사에서 NVMe 부팅을 지원하는 UEFI를 제공하는지 확인한다

    (물론 당연히 앱솔룻을리 안되니까 이 짓거리를 하고 있을 것이라 생각한다)

1. 기존 UEFI 펌웨어를 리버스 엔지니어링 한다.

2. UEFI에서 NVMe SSD의 드라이버를 로드하고, 부팅 디스크로 인식할 수 있도록 하는 코드를 찾는다.

3. UEFI에 해당 코드를 삽입한다.

4. 개조한 UEFI로 ROM을 덮어쓴다.

 

 

흠...

 


...
 
ㅜㅜ 일단 글은 공개처리 해두고
mini PCIe - M.2 NGFF 어댑터가 오면
개조를 수행할 예정이다.
 
 

넘 바쁘다.... ㅜㅜ
 
 

 

 

참고자료
https://www.hamishmb.com/booting-nvme-older-pc-refind/

 

Booting from an NVME SSD on an older PC using Clover

In this post, I show you how to install and boot from an NVME drive on an older PC that doesn't have an M.2 slot. Read this post to learn more.

www.hamishmb.com

이 사람은 클로버 부트스트랩으로
바이오스 개조 없이 부팅하는 내용을 써놨다.
 
흠 이런 방법도 있구만.
 
https://forums.tomshardware.com/threads/modding-bios-to-allow-bootable-nvme-storage.3554678/

 

[SOLVED] - Modding BIOS to allow bootable NVME storage

Hello all, I recently bought a NVME storage from Amazon. It is from Silicon power and it is the 1 TB series. I installed it (with an adapter) into my ASUS Sabertooth 990FX R1 motherboard. Now, I am aware that my board does not support pcie 3.0. But, with t

forums.tomshardware.com


아 저번에 제대로 된 아티클을 찾았는데
왜 안 보이는거지 ㅜㅜ


https://www.tachytelic.net/2021/12/dell-optiplex-7010-pcie-nvme/
 
 
 
 
 
끝. End of Doc.

 

반응형

Comment(s)