TianoCore + coreboot는 진정한 오픈 소스 UEFI입니까?


12

UEFI를 둘러싼 많은 논쟁이 있었지만, 그와 비슷하거나 그렇지 않더라도 일반적으로 사용 가능한 데스크탑 마더 보드와 관련하여 유일한 옵션이되고 있습니다. 한동안 UEFI mobo를 피하고 있었지만 이제는 mobo 공급 업체가 UEFI 제품보다 많은 기능을 갖춘 UEFI 제품 (예 : 더 많은 RAM 지원)을 제공함에 따라 상당히 어려워졌습니다. 그 점을 염두에두고, 앞으로 오픈 소스로 갈 수있는 옵션이 적어도 있는지 확인하고 싶지 않다면 더 적은 기능으로 더 많은 자유를 누릴 수 있습니다.

TianoCore는 UEFI 인터페이스의 인텔 오픈 소스 구현이며 Wikipedia는 이에 대해 다음과 같이 말합니다 .

TianoCore에는 칩셋 기능을 초기화하는 특수 드라이버가 없으며 대신 Coreboot에서 제공하며 TianoCore는 많은 페이로드 옵션 중 하나입니다. Coreboot를 개발하려면 초기화 드라이버 개발에 필요한 사양을 제공하기 위해 칩셋 제조업체의 협력이 필요합니다.

내 질문은, coreboot에서 제공하는 이러한 드라이버가 여전히 칩셋 공급 업체의 일부 바이너리 블롭을 필요로합니까? 또한 Ronald G. Minnich는 EFI에 대해 다음과 같이 말합니다 .

IDE I / O 주소 또는 특정 메모리 주소에 대한 액세스는 EFI 코드에 갇히고 검사 및 수정 또는 중단 될 수 있습니다. 많은 사람들이 이것을 "DRM BIOS"를 구축하려는 노력으로보고 있습니다.

TianoCore + coreboot 설정에서 하드웨어 공급 업체가 제공하는 오픈 소스 또는 이진 펌웨어를 잠재적으로 수행 할 수있는 부분이 있습니까?

답변:


4

TianoCore + coreboot는 진정한 오픈 소스 UEFI입니까?

TianoCore 자체는 저수준 하드웨어 초기화를 수행 할 수 없으며이 하드웨어를 먼저 초기화하려면 코어 부트가 필요하기 때문에 인텔 플랫폼의 경우 (인텔 보드 개발을 수행했으며 AMD와 대화 할 수 없지만 AMD와 대화 할 수 없습니다.) 아니오. 그러나 coreboot는 어떻게이 작업을 수행합니까? coreboot는 특정 바이너리 BLOB을 호출하여 이러한 기능을 수행합니다. 이 바이너리 블로 브 (예 : 마이크로 코드 업데이트, FSP 바이너리, ME 바이너리 등)는 어떻게 생성됩니까? 이 바이너리는 인텔 독점 코드이기 때문에 직접 만들 수 없습니다. 기껏해야 플랫폼과 관련된 것을 검색하여 코어 부트 빌드 프로세스에 포함시킬 수 있습니다. 이 바이너리 블롭의 소스를 자유롭고 공개적으로 수정할 수있을 때까지는 해당 오픈 소스 UEFI 또는 코어 부트가 없습니다.

내 질문은, coreboot에서 제공하는 이러한 드라이버가 여전히 칩셋 공급 업체의 일부 바이너리 블롭을 필요로합니까?

출처 :

경험

coreboot 소스 코드

http://www.coreboot.org/TianoCore

인텔 펌웨어 지원 패키지 (FSP)
http://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-support-package/intel-fsp-overview.html

마이크로 코드 업데이트 (종종 BIOS에 의해 적용되지만 반드시 그럴 필요는 없습니다.)
https://wiki.debian.org/Microcode


2
Milind R은 개방형 하드웨어가 필수 요건이라는 점에서 좋은 지적을합니다.
penguin4hire

4

코어 부팅 (초기 하드웨어 초기화 수행)과 TianoCore (UEFI API 제공)를 완전한 UEFI 펌웨어 구현에 결합 할 수 있습니다. 그러나 여전히 개발 중입니다. 또한 외부 계층이 코어 부트되므로 "정식"UEFI가 아닙니다.

Duet 기반의 한 가지 방법은 http://notabs.org/coreboot/duet-payload/ 에서 찾을 수 있습니다 . 실제 하드웨어에서는 다소 부팅됩니다.

더 많은 Tiano를 재사용하고 UEFI 아키텍처에 더 가깝게 시도하는 또 다른 (공개 : 내 프로젝트) 시도는 github에 있습니다 : https://github.com/pgeorgi/edk2/ . 이것은 실제 하드웨어에서 아직 많은 테스트를 보지 못했지만 Qemu입니다.

원칙적으로 코어 부트 코드를 가져 와서 Tianocore 패키지를 만들 수 있으므로 모든 측면에서 사용자와 OS가 볼 수있는 것이 아니라 UEFI처럼 보입니다. 분명히 coreboot 개발자는 그다지 관심이 없습니다.


3

칩셋 초기화 및 기타 매우 낮은 수준의 하드웨어 특정 코드는 항상 폐쇄 소스였습니다. BIOS / UEFI는 보드 공급 업체가 메모리 컨트롤러 초기화 등에 대한 세부 정보를 거의 공개하지 않는다는 사실을 변경하지 않습니다.

진정한 오픈 소스 보드를 갖기 위해서는 마더 보드에있는 각 하드웨어 구성 요소의 모든 사양을 공개하는 일부 공급 업체 인 오픈 소스 하드웨어를 찾아야합니다. 가장 찾기 어렵습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.