อ่าน 4 นาที
เปิดระบบฝังตัว
OpenEmbedded ( OE ) เป็น เฟรมเวิร์ก อัตโนมัติสำหรับการสร้าง และ สภาพแวดล้อม การคอมไพล์ข้ามแพลตฟอร์ม ที่ใช้ในการสร้าง ระบบปฏิบัติการ Linux สำหรับ อุปกรณ์ฝังตัว [ 2 ] เฟรม...
เปิดระบบฝังตัว
| เปิดระบบฝังตัว | |
|---|---|
| นักพัฒนา | นักพัฒนามากกว่า 75 คน[ 1 ] |
| ระบบปฏิบัติการ | ลินุกซ์ |
| แพลตฟอร์ม | ข้ามแพลตฟอร์ม |
| พิมพ์ | สร้างระบบอัตโนมัติ |
| ใบอนุญาต | เอ็มไอที |
| เว็บไซต์ | www.openembedded.org |
| ที่เก็บข้อมูล |
|
OpenEmbedded ( OE ) เป็นเฟรมเวิร์กอัตโนมัติสำหรับการสร้าง และ สภาพแวดล้อม การคอมไพล์ข้ามแพลตฟอร์มที่ใช้ในการสร้างระบบปฏิบัติการ Linuxสำหรับอุปกรณ์ฝังตัว [ 2 ] เฟรมเวิร์กนี้ได้รับการพัฒนาโดยชุมชน OpenEmbedded ซึ่งก่อตั้งขึ้นอย่างเป็นทางการในปี 2546 OpenEmbedded เป็นระบบการสร้างที่แนะนำของโครงการ Yoctoซึ่งเป็น กลุ่มงาน ของมูลนิธิ Linuxที่ให้ความช่วยเหลือบริษัทเชิงพาณิชย์ในการพัฒนาระบบที่ใช้ Linux สำหรับผลิตภัณฑ์ฝังตัว
ระบบการสร้างซอฟต์แวร์ใช้BitBake เป็นพื้นฐาน ไฟล์การกำหนดค่า BitBake หรือที่เรียกว่า recipe จะระบุข้อมูลต่างๆ เช่น ตำแหน่งของไลบรารีและซอร์สโค้ด วิธีการสร้างแพ็กเกจ และวิธีการติดตั้งและถอนการติดตั้งแพ็กเกจที่คอมไพล์แล้ว เครื่องมือของ OpenEmbedded ใช้ recipe เหล่านี้ในการดึงและแก้ไขซอร์สโค้ด คอมไพล์และเชื่อมโยงไบนารี สร้างแพ็กเกจไบนารี ( deb , rpm , ipk) และสร้างอิมเมจ ที่สามารถบูต ได้
ในอดีต สูตร OpenEmbedded ถูกจัดเก็บไว้ในที่เก็บข้อมูลเดียว และเมตาเดต้ามีโครงสร้างที่เรียกว่า "OpenEmbedded-Classic" ตั้งแต่ปี 2010 โครงสร้างนี้ได้รับการปรับเปลี่ยนเพื่อให้รองรับจำนวนสูตรที่เพิ่มขึ้นเรื่อยๆ ได้ดียิ่งขึ้น เมตาเดต้าของสูตรถูกแบ่งออกเป็นหลายชั้น ชั้นที่ต่ำที่สุด ซึ่งรวมถึงเมตาเดต้าที่ไม่ขึ้นกับแพลตฟอร์มและไม่ขึ้นกับระบบปฏิบัติการ เรียกว่า "OpenEmbedded-Core" [ 3 ]คำสั่งเฉพาะสถาปัตยกรรม เฉพาะแอปพลิเคชัน และขึ้นอยู่กับระบบปฏิบัติการ จะถูกนำไปใช้ในชั้นสนับสนุนเป้าหมายที่เหมาะสม ซึ่งสามารถแทนที่หรือเสริมคำสั่งจากชั้นที่ต่ำกว่าได้ นอกจากนี้ การเปลี่ยนแปลงสูตรในชั้นหลักจะได้รับการจัดการด้วยโมเดลแบบดึง (pull model) แทนที่จะส่งการเปลี่ยนแปลงไปยังที่เก็บข้อมูลโดยตรง (ดังเช่นที่เคยเป็นมาก่อน) นักพัฒนาจะส่งแพตช์ไปยังรายชื่อผู้รับจดหมาย เมื่อได้รับการอนุมัติ แพตช์จะถูกรวม (pull) โดยผู้ดูแล[ 3 ]
เฟรมเวิร์ก OpenEmbedded สามารถติดตั้งและอัปเดตโดยอัตโนมัติผ่านGitได้[ 2 ]
โปรแกรม OpenEmbedded Image Creator ที่เรียกว่า Wic สามารถใช้สร้างไฟล์อิมเมจดิสก์ได้ โดยทั่วไปจะมีนามสกุล.wic.
ประวัติศาสตร์
โครงการOpenEmbeddedซึ่งสร้างโดย Chris Larson, Michael Lauer และ Holger Schurig ได้รวมเอาความสำเร็จของOpenZaurusเข้ากับผลงานจากโครงการต่างๆ เช่นFamiliar LinuxและOpenSIMpadเข้าไว้ในฐานโค้ดเดียวกัน OpenEmbedded ได้เข้ามาแทนที่โครงการเหล่านั้นและถูกใช้ในการสร้างโครงการใดๆ ก็ตามจากฐานโค้ดเดียวกัน
OpenEmbedded-Core (OE-Core) เกิดจากการรวมYocto Projectเข้ากับ OpenEmbedded [ 4 ]นับตั้งแต่นั้นเป็นต้นมา สูตรแพ็กเกจทั้งหมดได้รับการดูแลผ่าน OpenEmbedded-Core
OpenEmbedded-Core (OE-Core) ประกอบด้วยชุดเมตาเดตาหลัก รวมถึงสูตรพื้นฐานและคลาสที่ใช้โดย OpenEmbedded และระบบที่เกี่ยวข้อง[ 5 ]ในโครงสร้างนี้ นักพัฒนาสามารถขยายระบบการสร้างได้โดยไม่ต้องแก้ไขเมตาเดตาหลัก โดยมีเลเยอร์ต่างๆ ที่รองรับแพลตฟอร์มฮาร์ดแวร์และการกำหนดค่าซอฟต์แวร์ที่เฉพาะเจาะจง[ 6 ]
เครื่องมือสร้าง BitBake ซึ่งพัฒนาควบคู่ไปกับ OpenEmbedded ทำหน้าที่เป็นเครื่องมือดำเนินการงานและจัดการการสร้างแพ็กเกจและการพึ่งพา[ 7 ]
การจัดระเบียบแบบชั้น
OpenEmbedded-Core ได้ปรับโครงสร้างเลเยอร์นี้ในการผสานรวมกับ Yocto และมีการเพิ่มรายการเลเยอร์ใหม่เมื่อเวลาผ่านไป[ 8 ] [ 9 ] เลเยอร์แสดงถึงโครงสร้างที่มีลักษณะเป็นแบบประกาศเท่านั้น รายการเฉพาะมีความเข้มงวดมากขึ้นในขอบเขตของการตัดสินใจว่ารายการใดจัดเตรียมแพ็กเกจใด ภาพรวมของเลเยอร์มีอยู่ใน: layers
- ชั้นนักพัฒนา
- เลเยอร์ที่ผู้ใช้กำหนดเองสำหรับสูตร Bitbake แบบกำหนดเอง นักพัฒนาซอฟต์แวร์ระบบฝังตัวจะวางสูตรของตนไว้ที่นี่ หากซอฟต์แวร์นั้นไม่เหมาะสมกับเลเยอร์เชิงพาณิชย์หรือเลเยอร์พื้นฐาน
- ชั้นเชิงพาณิชย์
- แพ็กเกจ ปลั๊กอิน และการตั้งค่าจากผู้จำหน่ายโอเพนซอร์สจะถูกจัดเก็บไว้ในเลเยอร์นี้
- เลเยอร์เฉพาะ UI
- เลเยอร์ต่างๆ ที่มีอยู่ในเลเยอร์ meta-openembedded ในปัจจุบัน ได้แก่:
- meta-efl ( ตัวจัดการหน้าต่างEnlightenment )
- เมตา-โนม ( ตัวจัดการหน้าต่างGNOME )
- meta-gpe ( ตัวจัดการหน้าต่างGPE )
- meta-xfce ( ตัวจัดการหน้าต่างXfce )
- เลเยอร์เฉพาะฮาร์ดแวร์
- meta-efikamx ( อุปกรณ์Efika )
- meta-fsl-arm ( บอร์ดพัฒนาที่ได้รับการสนับสนุนอย่างเป็นทางการจาก Freescale Semiconductor )
- meta-fsl-arm-extra ( บอร์ดที่ได้รับการสนับสนุนจากชุมชน Freescale Semiconductor )
- อุปกรณ์ พกพาแบบเมตา ( ผู้ช่วยดิจิทัลส่วนบุคคล , PDA)
- เมตา-อินเทล ( อุปกรณ์ฝังตัวของอินเทล )
- meta-nslu2 ( อุปกรณ์NSLU2 )
- meta-openpandora ( อุปกรณ์Openpandora )
- เมตาสมาร์ทโฟน (อุปกรณ์สมาร์ทโฟนหลากหลายประเภท)
- meta-ti ( อุปกรณ์ของ Texas Instruments )
- เมตา-ซิลิ่นซ์ ( อุปกรณ์ซิลิ่นซ์ )
- เมตา-อัลเทรา ( อุปกรณ์อัลเทรา )
- meta-ettus ( อุปกรณ์ Ettus Research USRP SDR)
- (คนอื่น)
- เลเยอร์ OpenEmbedded-Core
- เปิดแกนฝังตัว
- เมตา-โอเพ่นฝังตัว
การแจกจ่ายที่ได้รับการสนับสนุน
ใน OpenEmbedded-Classic การกำหนดค่าตั้งแต่ระดับพื้นฐานไปจนถึงระดับ UI สามารถเสริมด้วยระบบปฏิบัติการ Linux ต่างๆ ได้ รายชื่อต่อไปนี้มีให้ใช้งานสำหรับ OpenEmbedded:
ฮาร์ดแวร์ที่รองรับ
อุปกรณ์ต่างๆ รองรับ: [ 13 ]
- บอร์ดและโปรเซสเซอร์
- รองรับ การใช้งาน BeagleBoardจากTexas Instruments และอุปกรณ์ต่างๆ ที่ใช้ CPU ARM
- สมาร์ทโฟน
- สมาร์ทโฟนอย่างNokia N800และNeo FreeRunnerรองรับการใช้งานนี้
- การพอร์ตไปยังฮาร์ดแวร์ใหม่
- กลุ่มดาวของ OpenEmbedded โดยเฉพาะการออกแบบแบบเปิด ช่วยให้ OpenEmbedded สามารถปรับใช้กับฮาร์ดแวร์ใหม่ได้ค่อนข้างง่าย[ 14 ] [ 15 ]
ดูเพิ่มเติม
- Buildroot – เครื่องมือสำหรับสร้างระบบ Linux
- Emdebian Grip
- Familiar Linux – ระบบปฏิบัติการ Linux สำหรับเครื่อง iPAQ และ PDA อื่นๆ
- Openpandora – คอมพิวเตอร์เล่นเกมแบบพกพา
- OpenZaurus – ระบบปฏิบัติการลินุกซ์
- T2 SDE – ชุดเครื่องมือโอเพนซอร์สสำหรับการแจกจ่าย Linux
ลิงก์ภายนอก
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ เปิดระบบฝังตัว
OpenEmbedded ( OE ) เป็น เฟรมเวิร์ก อัตโนมัติสำหรับการสร้าง และ สภาพแวดล้อม การคอมไพล์ข้ามแพลตฟอร์ม ที่ใช้ในการสร้าง ระบบปฏิบัติการ Linux สำหรับ อุปกรณ์ฝังตัว [ 2 ] เฟรม...
ประวัติศาสตร์
โครงการ OpenEmbedded ซึ่งสร้างโดย Chris Larson, Michael Lauer และ Holger Schurig ได้รวมเอาความสำเร็จของ OpenZaurus เข้ากับผลงานจากโครงการต่างๆ เช่น Familiar Linux และ OpenSIMpad เข้าไว้ในฐานโค้ดเดียวกัน OpenEmbedded...
การจัดระเบียบแบบชั้น
OpenEmbedded-Core ได้ปรับโครงสร้างเลเยอร์นี้ในการผสานรวมกับ Yocto และมีการเพิ่มรายการเลเยอร์ใหม่เมื่อเวลาผ่านไป [ 8 ] [ 9 ] เลเยอร์แสดงถึงโครงสร้างที่มีลักษณะเป็นแบบประกาศเท่านั้น...
การแจกจ่ายที่ได้รับการสนับสนุน
ใน OpenEmbedded-Classic การกำหนดค่าตั้งแต่ระดับพื้นฐานไปจนถึงระดับ UI สามารถเสริมด้วย ระบบปฏิบัติการ Linux ต่างๆ ได้ รายชื่อต่อไปนี้มีให้ใช้งานสำหรับ OpenEmbedded: