Corellium ประกาศพอร์ตของชิป Linux เป็น M1

Corellium ได้ปล่อยเวอร์ชันของ Linux ที่ดัดแปลงให้ทำงานบนคอมพิวเตอร์ Apple รุ่นใหม่ที่ติดตั้ง ชิป M1แล้ว เคอร์เนล Linux เวอร์ชันที่เข้ากันได้กับชิป Apple M1 นี้เผยแพร่ภายใต้ใบอนุญาต GPLv2 และมีการส่งแพตช์เพื่อรวมเข้ากับเคอร์เนลหลักแล้ว

Corellium มีประสบการณ์มากมายในการย้ายระบบปฏิบัติการ Linux ไปยังชิปของ Appleที่ใช้ในอุปกรณ์พกพา เช่น iPhone ในช่วงเริ่มต้นของการย้ายระบบ ผู้ทดสอบได้รับการสนับสนุนให้เรียนรู้ว่าส่วนประกอบหลายอย่างของ Apple M1 นั้นใช้เทคโนโลยีที่ Apple ใช้ใน SoC อื่นๆ อยู่แล้ว

แต่ในระหว่างกระบวนการพัฒนาไดรเวอร์ ก็ได้ปรากฏชัดว่าเรื่องราวไม่ได้ง่ายอย่างที่คิดและชิป Apple M1 นั้นมีโซลูชันที่ไม่เป็นไปตามมาตรฐานอยู่มากมายการรองรับ Linux สำหรับ ARM SoC 64 บิตนั้นอาศัยส่วนประกอบพื้นฐานและอินเทอร์เฟซเฟิร์มแวร์ทั่วไป แต่ Apple M1 แทบไม่ได้ใช้โซลูชันทั่วไปเลย

ตัวอย่างเช่น ในชิป ARM SoC ทั่วไป การเปิดใช้งานคอร์ CPU จะทำผ่าน PSCI (Power State Coordination Interface) ที่จัดเตรียมโดยเฟิร์มแวร์ ในขณะที่ในชิป Apple M1 จำเป็นต้องจัดการรีจิสเตอร์ MMIO

ในขั้นตอนนี้นักพัฒนาของ Corellium ได้แซงหน้าโครงการ Asahi Linuxซึ่งก่อตั้งโดย Héctor Martin เพื่อพอร์ต Linux ไปยังระบบที่มีชิป Apple M1 ซึ่งจนถึงขณะนี้ยังจำกัดอยู่เพียงแค่การวิศวกรรมย้อนกลับและการทดลองกับบูตโหลดเดอร์เท่านั้น อย่างไรก็ตาม เป้าหมายหลักของ Asahi Linux ไม่ใช่แค่การบูต Linux เท่านั้น แต่ยังรวมถึงการให้การสนับสนุนอย่างเต็มรูปแบบสำหรับกลไกการจัดการพลังงานและการใช้ประโยชน์จากความสามารถของ GPU Apple M1 ซึ่งใช้ชุดคำสั่งเฉพาะอีกด้วย

แพทช์ของ Corellium มีข้อจำกัดในการรองรับการบูตและการทำงานเฉพาะด้านของชิป M1 ที่เกี่ยวข้องกับโหมด SMP, ตัวจับเวลา, การขัดจังหวะ, การจัดการสถานะว่าง และการเริ่มต้นระบบ

ตัวแทนจาก Asahi Linux ยินดีกับการเผยแพร่แพตช์ Corelliumและแสดงความเต็มใจที่จะให้ความช่วยเหลือในการตรวจสอบโดยผู้เชี่ยวชาญเพื่อเร่งการนำเคอร์เนล Linux ไปใช้ในวงกว้าง

นอกจากนี้ Alyssa Rosenzweig (จาก Collabora ผู้พัฒนาไดรเวอร์ Panfrost GPU Mali) ยังได้รับการเผยแพร่รายงานฉบับที่สองเกี่ยวกับวิศวกรรมย้อนกลับและการพัฒนาไดรเวอร์โอเพ่นซอร์สสำหรับ Apple M1 GPU

ในขั้นตอนปัจจุบันมีการเตรียมต้นแบบเริ่มต้นของคอนโทรลเลอร์ซึ่งสามารถวาดสามเหลี่ยมโดยใช้ GPU ได้ สำหรับ M1 GPUs จุดยอดแรกและตัวแบ่งส่วนจะถูกเข้ารหัสด้วยมือ ไดรเวอร์เคอร์เนล IOKit ใช้เพื่อโต้ตอบกับ GPU

โปรเซสเซอร์ Apple M1 ยังใช้ตัวควบคุมการขัดจังหวะของ Apple (AIC) ซึ่งโดยส่วนใหญ่แล้วไม่สามารถใช้งานร่วมกับ GIC มาตรฐานของ ARM ได้และมีกลไกที่แตกต่างกันสำหรับการเชื่อมโยงการขัดจังหวะจากตัวจับเวลา นอกจากนี้ ยังมีการใช้รีจิสเตอร์แยกต่างหากที่ควบคุม IPI (การขัดจังหวะระหว่างโปรเซสเซอร์) เพื่อจัดการการโต้ตอบระหว่างโปรเซสเซอร์หลายตัว

ในการบูตเครื่อง Mac Mini M1 ที่ใช้ชิป Apple M1 นั้นจะมีการเตรียมอิมเมจ rootfs ที่พร้อมใช้งานไว้ซึ่งสร้างขึ้นบนพื้นฐานของ Ubuntu เวอร์ชันสำหรับ Raspberry Pi

ในการติดตั้ง ให้คัดลอกไฟล์อิมเมจไปยังไดรฟ์ USB เสียบไดรฟ์เข้ากับพอร์ต USB-C และบูตเครื่องคอมพิวเตอร์เข้าสู่โหมด 1TR (ระบบปฏิบัติการกู้คืน) โดยกดปุ่มเปิด/ปิดค้างไว้ระหว่างการเริ่มต้น เมื่อหน้าต่างคำสั่งปรากฏขึ้น ให้เรียกใช้สคริปต์ linuxsetup.sh ซึ่งจะทำการติดตั้งเคอร์เนลและกำหนดค่าสภาพแวดล้อม

เมื่อ ถึงขั้นตอนนี้ Linux จะเริ่มทำงานส่วนการกลับไปใช้ macOS นั้น คุณต้องรันคำสั่ง "bputil -n" ในโหมด 1TR

Ready build รองรับ USB, I2C และ DART ขอแนะนำให้ใช้อะแดปเตอร์ USB ภายนอกสำหรับเครือข่ายในขณะที่ยังไม่รองรับการเร่งฮาร์ดแวร์กราฟิกและอุปกรณ์ต่อพ่วงเพิ่มเติม การสนับสนุนบลูทู ธ จำเป็นต้องเขียนไดรเวอร์ใหม่เนื่องจากการใช้โปรโตคอลที่ใช้ PCIe ที่ไม่ได้มาตรฐาน

แหล่งที่มา: https://corellium.com


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google