Corellium telah menghadirkan versi Linux yang diadaptasi untuk berjalan di komputer Apple yang lebih baru yang dilengkapi dengan chip M1, varian kernel Linux yang kompatibel dengan chip M1 Apple dirilis di bawah lisensi GPLv2, dan tambalan telah dikirimkan untuk dimasukkan dalam kernel utama.
Corellium memiliki pengalaman luas dalam bermigrasi dari Linux ke chip Apple digunakan di perangkat seluler seperti iPhone. Pada tahap awal migrasi, penguji didorong bahwa banyak komponen Apple M1 didasarkan pada teknologi yang sudah digunakan oleh Apple di SoC lain.
Tetapi dalam proses penulisan driver, menjadi jelas bahwa tidak semuanya sesederhana itu dan chip Apple M1 mencakup banyak solusi non-standar. Dukungan Linux untuk ARM 64-bit SoC didasarkan pada blok umum dan antarmuka firmware, tetapi Apple M1 hampir tidak menggunakan solusi umum.
Misalnya, dalam ARM SoC konvensional, aktivasi inti CPU dilakukan melalui PSCI (Antarmuka Koordinasi Status Daya) yang disediakan oleh firmware dan di Apple M1 diperlukan manipulasi register MMIO.
Di tahap ini, Pengembang Corellium mendahului proyek Asahi Linux, didirikan oleh Héctor Martin untuk mem-port Linux ke sistem dengan chip Apple M1, yang hingga saat ini terbatas pada rekayasa balik dan bereksperimen dengan bootloader. Namun, tujuan utama Asahi Linux tidak hanya untuk mem-boot Linux, tetapi untuk memberikan dukungan penuh untuk mekanisme manajemen daya dan untuk menggunakan kemampuan GPU Apple M1, yang menggunakan serangkaian instruksi tertentu.
Patch Corellium terbatas untuk menyediakan boot dan dukungan untuk fitur tertentu chip M1 yang terkait dengan mode SMP, timer, interupsi, penanganan dan inisialisasi keadaan idle.
Los Perwakilan Asahi Linux menyambut baik rilis patch Corellium dan menyatakan kesediaan mereka untuk memberikan bantuan tinjauan sejawat untuk mempercepat penggunaan utama kernel Linux.
Selain itu, Alyssa Rosenzweig (dari Collabora yang mengembangkan driver Panfrost GPU Mali) juga dikatakan telah menerbitkan laporan kedua tentang rekayasa balik dan mengembangkan driver open source untuk GPU Apple M1.
Pada tahap ini telah disiapkan prototipe awal dari kontroler yang dapat menggambar segitiga menggunakan GPU. Untuk GPU M1, shader verteks dan fragmen pertama juga diberi kode tangan. Pengandar kernel IOKit digunakan untuk berinteraksi dengan GPU.
Apple M1 juga menggunakan pengontrol interupsi AIC sendiri (Apple Interrupt Controller), yang untuk sebagian besar tidak kompatibel dengan ARM GIC standar dan mekanisme yang berbeda untuk mengikat interupsi dari pengatur waktu. Selain itu, untuk mengatur interaksi antara beberapa prosesor, register terpisah digunakan yang mengontrol IPI (interupsi antar prosesor).
Untuk mem-boot ke komputer Mac Mini M1 dengan chip Apple M1, gambar rootf yang siap digunakan telah disiapkan, dibangun atas dasar build Ubuntu untuk Raspberry Pi.
Untuk menginstal, Anda harus menyalin gambar ke drive USB, hubungkan unit ini ke port USB-C dan mulai komputer dalam mode 1TR (Recovery OS) dengan menekan dan menahan tombol Power saat booting. Setelah baris perintah muncul, Anda perlu menjalankan skrip linuxsetup.sh, yang akan menginstal kernel dan mengkonfigurasi lingkungan.
Ini adalah saat Linux akan mulai berjalan, sedangkan untuk mengembalikan macOS, Anda harus menjalankan perintah "bputil -n" dalam mode 1TR.
Siap membangun mendukung USB, I2C dan DART, disarankan untuk menggunakan adaptor USB eksternal untuk jaringan, sementara akselerasi perangkat keras grafis dan periferal tambahan belum didukung. Dukungan Bluetooth memerlukan penulisan driver baru karena penggunaan protokol berbasis PCIe non-standar.
sumber: https://corellium.com