x86 IBM-PC에 Das U-Boot 레거시 부팅을 설치하는 방법은 무엇입니까?

x86 IBM-PC에 Das U-Boot 레거시 부팅을 설치하는 방법은 무엇입니까?

다스 U-부트는둘 다첫 번째 및 두 번째 단계 부트로더(IBM-PC의 FSBL은 첫 번째 단계에 맞아야 함)446바이트(또는 그 이하) 첫 번째 섹터의 MBR 앞에 위치합니다.

FSBL 코드를 사용하여 디스크에서 31,744바이트를 읽고 해당 디스크로 점프하는 1.5단계 부트 로더도 있습니다(섹터 1에서 62, DOS 호환 첫 번째 파티션은 섹터 63에서 시작할 수 있음). 나는 그것이 U-Boot의 경우가 아니라고 생각합니다.

나는 kexec와 마찬가지로 UEFI를 찾고 있지 않으며, coreboot나 다른 부트로더 코드가 필요하지 않다면읽다가능하지만 아무도 그 방법을 명확하게 밝히지 않았습니다.

어떤 구성을 사용해야 합니까? 크롬북 링크 또는 에디슨? MBR에 넣을 446바이트 청크를 생성합니까? 섹터 1부터 62까지 뭔가를 넣어야 하나요? 1.5 스테이지에는 맞지 않을 것 같은데, 디스크에서 나머지 부분을 어떻게 찾을 수 있을까요?

답변1

U-Boot는 x86을 지원하지만하드웨어, x86 BIOS에 대한 지원은 포함되지 않습니다.펌웨어.

따라서 레거시 x86 PC에서 U-Boot를 사용하는 첫 번째 단계는 BIOS를 U-Boot의 첫 번째 단계가 포함된 사용자 정의 펌웨어로 교체하는 것입니다.

그런 다음 첫 번째 하드 디스크의 블록 #0에서 446바이트 부팅 코드를 로드하는 것과 같은 이전 BIOS 부팅 규칙은 더 이상 적용되지 않으며 대신 U-Boot의 규칙이 사용됩니다.

물론 BIOS를 교체하려면 사용자 정의 펌웨어가 먼저 시스템 칩셋의 초기화를 처리하고 콜드 스타트 ​​후 RAM을 테스트하고 활성화할 수 있어야 합니다. PC 하드웨어에서는 칩셋 프로그래밍 문서가 모든 PC 칩셋에 대해 쉽게 제공되지 않을 수 있으므로 예상보다 더 큰 문제가 될 수 있습니다.

U-Boot는 BIOS 호환 부트로더도 아니고 BIOS를 쉽게 대체할 수도 없습니다. 문서에 x86을 지원한다고 나와 있는 것은 U-Boot가 맞춤형 하드웨어에서 x86 프로세서를 사용하는 하드웨어 프로젝트와 쉽게 통합될 수 있다는 의미일 뿐입니다.

GRUB 레거시(1단계, 2단계, 1.5단계)에 특정한 용어를 부트로더에 대한 보다 일반적인 시스템 설계 용어와 혼동하고 있는 것 같습니다.

시스템 설계 측면에서 Linux 실행을 목표로 하는 레거시 x86 PC에서BIOS1단계 부트로더입니다. 콜드 리셋 후 프로세서가 가장 먼저 실행할 작업이 되도록 ROM(또는 플래시 EEPROM)에 배열되어 있으며, 이 작업은 필요한 하드웨어를 초기화하고 고정 또는 비교적 컴팩트한 프로그램을 로드하는 것입니다. 그렇지 않으면 잘 정의된 위치입니다.

시스템 설계 측면에서 GRUB 전체는 2단계 부트로더가 됩니다. GRUB 레거시도 "스테이지"라고 불리는 구성 요소로 나누어져 있지만 이는 레거시 BIOS 제한 사항을 해결하기 위해 만들어진 GRUB의 내부 부분일 뿐입니다. GRUB 단계는 시스템 설계와 동일하지 않습니다.첫 번째/두 번째 단계 부트로더술어.

관련 정보