TianoCore + coreboot เป็น UEFI โอเพ่นซอร์สจริงหรือไม่


12

มีการถกเถียงกันมากเกี่ยวกับ UEFI แต่ก็ชอบหรือไม่มันกลายเป็นตัวเลือกเดียวเมื่อพูดถึงเมนบอร์ดเดสก์ท็อปที่มีอยู่ทั่วไป ฉันได้หลีกเลี่ยง UEFI mobos มาระยะหนึ่งแล้ว แต่ตอนนี้มันค่อนข้างยากเนื่องจากผู้ค้า mobo จัดส่งผลิตภัณฑ์ UEFI ที่มีคุณสมบัติมากกว่า BIOS (เช่นรองรับ RAM มากกว่า) ในใจฉันต้องการให้แน่ใจว่าอย่างน้อยก็มีตัวเลือกให้เปิดโอเพนซอร์สในอนาคตและถ้าไม่มีฉันก็สามารถมีคุณสมบัติน้อยลง แต่มีอิสระมากขึ้น

TianoCore เป็นของ Intel ดำเนินการเปิดแหล่งที่มาของอินเตอร์เฟซ UEFI และวิกิพีเดียมีนี้จะพูดเกี่ยวกับเรื่องนี้ :

TianoCore ขาดไดร์เวอร์เฉพาะที่เริ่มต้นฟังก์ชั่นชิปเซ็ตซึ่งมีให้โดย Coreboot ซึ่ง TianoCore เป็นหนึ่งในตัวเลือกในการบรรจุข้อมูล การพัฒนา Coreboot ต้องการความร่วมมือจากผู้ผลิตชิปเซ็ตในการให้ข้อมูลจำเพาะที่จำเป็นในการพัฒนาไดรเวอร์เริ่มต้น

คำถามของฉันคือทำไดรเวอร์เหล่านี้ให้โดย coreboot ยังคงต้องการ blobs ไบนารีบางอย่างจากผู้ขายชิปเซ็ต? นอกจากนี้Ronald G. Minnich ยังมีการพูดเกี่ยวกับ EFI:

การเข้าถึงที่อยู่ IDE I / O หรือที่อยู่หน่วยความจำบางอย่างสามารถติดกับรหัส EFI และอาจตรวจสอบและแก้ไขหรือยกเลิก หลายคนเห็นว่านี่เป็นความพยายามในการสร้าง "DRM BIOS"

ในการตั้งค่า TianoCore + coreboot เป็นส่วนที่อาจทำโอเพนซอร์สหรือเฟิร์มแวร์ไบนารีที่จัดทำโดยผู้จำหน่ายฮาร์ดแวร์หรือไม่

คำตอบ:


4

TianoCore + coreboot เป็น UEFI โอเพ่นซอร์สจริงหรือไม่

สำหรับแพลตฟอร์มของ Intel (ฉันได้พัฒนาบอร์ด Intel แล้วและฉันไม่สามารถพูดกับ AMD ได้ แต่ฉันเชื่อว่าเคสยังคงเหมือนเดิม) ไม่เพราะ TianoCore ด้วยตัวเองไม่สามารถเริ่มต้นฮาร์ดแวร์ระดับต่ำได้และต้องใช้ coreboot ในการทำฮาร์ดแวร์นี้ก่อน แต่ coreboot ทำเช่นนี้ได้อย่างไร coreboot เรียกใช้ blobs ไบนารีเฉพาะเพื่อทำหน้าที่เหล่านี้ blobs ไบนารีเหล่านี้เป็นอย่างไร (เช่นอัปเดตไมโครโค้ด, FSP ไบนารี, ME ไบนารี ฯลฯ ) สร้างขึ้นอย่างไร คุณไม่สามารถสร้างไบนารีเหล่านี้ได้ด้วยตัวเองเพราะเป็นรหัสที่เป็นกรรมสิทธิ์ของ Intel ที่ดีที่สุดคุณสามารถเรียกสิ่งที่เกี่ยวข้องกับแพลตฟอร์มของคุณและรวมไว้ในกระบวนการสร้าง coreboot จนกว่าคุณจะสามารถแก้ไขแหล่งที่มาได้อย่างอิสระและเปิดเผยสำหรับ blobs ไบนารีเหล่านี้คุณจะไม่ได้มี UEFI หรือ coreboot จริงสำหรับโอเพ่นซอร์ส

คำถามของฉันคือทำไดรเวอร์เหล่านี้ให้โดย coreboot ยังคงต้องการ blobs ไบนารีบางอย่างจากผู้ขายชิปเซ็ต?

ใช่

แหล่งที่มา:

ประสบการณ์

รหัสที่มา coreboot

http://www.coreboot.org/TianoCore

แพคเกจการสนับสนุนเฟิร์มแวร์ของ Intel (FSP)
http://www.intel.com/content/www/us/en/intelligent-systems/intel-firmware-support-package/intel-fsp-overview.html

อัพเดตไมโครโค้ด (มักใช้กับไบออส แต่ไม่จำเป็นต้อง)
https://wiki.debian.org/Microcode


2
Milind R เป็นจุดที่ดีเช่นกันในฮาร์ดแวร์แบบเปิดนั้นเป็นข้อกำหนดที่จำเป็น
penguin4hire

4

เป็นไปได้ที่จะรวม coreboot (ทำการเริ่มต้นฮาร์ดแวร์ล่วงหน้า) และ TianoCore (มอบ UEFI API) เพื่อการใช้งานเฟิร์มแวร์ UEFI ที่สมบูรณ์ อย่างไรก็ตามยังคงอยู่ในการพัฒนา มันจะไม่เป็น UEFI "บัญญัติ" เนื่องจากเลเยอร์ด้านนอกจะเป็น coreboot

วิธีการหนึ่งซึ่งมีพื้นฐานจาก Duet สามารถดูได้ที่http://notabs.org/coreboot/duet-payload/ซึ่งจะทำการบูทบนฮาร์ดแวร์จริง

อื่น ๆ (การเปิดเผยข้อมูล: โครงการของฉัน) พยายามที่พยายามที่จะนำมาใช้มากขึ้นของ Tiano และอยู่ใกล้ชิดกับสถาปัตยกรรม UEFI อยู่บน GitHub: https://github.com/pgeorgi/edk2/ อันนี้ยังไม่ได้ทดสอบฮาร์ดแวร์จริงเท่าไหร่เพียง Qemu

โดยหลักการแล้วมันสามารถทำงานเพื่อรับรหัส coreboot และสร้างแพ็คเกจ tianocore จากมันดังนั้นมันจึงดูและรู้สึกเหมือน UEFI ในทุกด้าน (ไม่ใช่แค่ที่ผู้ใช้และระบบปฏิบัติการมองเห็น) เห็นได้ชัดว่านักพัฒนา coreboot ไม่ค่อยสนใจในเรื่องนั้นมากนัก


3

การเริ่มต้นของชิปเซ็ตและรหัสเฉพาะฮาร์ดแวร์ระดับต่ำอื่น ๆ นั้นส่วนใหญ่มักเป็นแหล่งที่มาปิด BIOS / UEFI ไม่ได้เปลี่ยนความจริงที่ว่ารายละเอียดของการเริ่มต้นของตัวควบคุมหน่วยความจำ ฯลฯ ไม่ค่อยเปิดเผยโดยผู้จำหน่ายบอร์ด

ในการมีบอร์ดโอเพนซอร์ซจริงคุณจะต้องมองหาฮาร์ดแวร์โอเพ่นซอร์สผู้ขายบางรายที่เปิดเผยรายละเอียดทั้งหมดของส่วนประกอบฮาร์ดแวร์แต่ละรายการบนเมนบอร์ด มันหายากที่จะพูดน้อย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.