Corellium telah membentangkan versi Linux yang disesuaikan untuk berjalan pada komputer Apple yang lebih baru yang dilengkapi dengan cip M1, varian kernel Linux yang serasi dengan cip Apple M1 dikeluarkan di bawah lesen GPLv2, dan tambalan telah dihantar untuk dimasukkan ke dalam kernel utama.
Corellium mempunyai pengalaman luas dalam melakukan migrasi dari Linux ke cip Apple digunakan dalam peranti mudah alih seperti iPhone. Pada tahap awal migrasi, penguji didorong bahawa banyak komponen Apple M1 didasarkan pada teknologi yang sudah digunakan oleh Apple di SoC lain.
Tetapi dalam proses menulis pemacu, menjadi jelas bahawa tidak semuanya begitu mudah dan cip Apple M1 merangkumi banyak penyelesaian bukan standard. Sokongan Linux untuk ARM 64-bit SoCs berdasarkan blok biasa dan antara muka firmware, tetapi Apple M1 hampir tidak menggunakan penyelesaian biasa.
Contohnya, dalam ARM SoC konvensional, pengaktifan core CPU dilakukan melalui PSCI (Power State Coordination Interface) yang disediakan oleh firmware dan pada Apple M1 memerlukan manipulasi daftar MMIO.
Pada peringkat ini, Pembangun Corellium mendahului projek Asahi Linux, diasaskan oleh Héctor Martin untuk menyalurkan Linux ke sistem dengan cip Apple M1, yang hingga kini hanya terhad untuk membalikkan teknik dan bereksperimen dengan bootloader. Walau bagaimanapun, tujuan utama Asahi Linux bukan hanya untuk boot Linux, tetapi untuk memberikan sokongan penuh untuk mekanisme pengurusan kuasa dan menggunakan kemampuan GPU Apple M1, yang menggunakan sekumpulan arahan tertentu.
Corellium patch terhad untuk menyediakan but dan sokongan untuk ciri-ciri tertentu cip M1 yang berkaitan dengan mod SMP, pemasa, gangguan, pengendalian dan inisial keadaan tidak aktif.
The Perwakilan Asahi Linux menyambut baik pembebasan patch Corellium dan menyatakan kesediaan mereka untuk memberikan bantuan tinjauan rakan sebaya untuk mempercepat penggunaan utama kernel Linux.
Selain itu, Alyssa Rosenzweig (dari Collabora yang mengembangkan pemandu Panfrost GPU Mali) juga dikatakan telah menerbitkan laporan kedua mengenai kejuruteraan terbalik dan mengembangkan pemacu sumber terbuka untuk GPU Apple M1.
Pada tahap sekarang, prototaip pengawal awal telah disiapkan, yang dapat menggambar segitiga menggunakan GPU. Untuk GPU M1, bucu bucu dan pecahan pertama juga dikodkan dengan tangan. Pemacu kernel IOKit digunakan untuk berinteraksi dengan GPU.
Apple M1 juga menggunakan pengawal gangguan AIC sendiri (Apple Interrupt Controller), yang sebahagian besarnya tidak sesuai dengan GIC ARM standard dan mekanisme yang berbeza untuk mengikat gangguan dari pemasa. Di samping itu, untuk mengatur interaksi antara beberapa pemproses, digunakan register terpisah yang mengawal IPI (inter-processing interupts).
Untuk boot ke komputer Mac Mini M1 dengan cip Apple M1, gambar rootfs siap digunakan disediakan, dibina berdasarkan binaan Ubuntu untuk Raspberry Pi.
Untuk memasang, anda mesti menyalin gambar ke pemacu USB, sambungkan unit ini ke port USB-C dan hidupkan komputer dalam mod 1TR (OS Pemulihan) dengan menekan dan menahan butang Power semasa boot. Setelah baris arahan muncul, anda perlu menjalankan skrip linuxsetup.sh, yang akan memasang kernel dan mengkonfigurasi lingkungan.
Ini adalah ketika Linux akan mula berjalan, sedangkan untuk mengembalikan macOS, anda mesti menjalankan perintah "bputil -n" dalam mod 1TR.
Binaan siap menyokong USB, I2C dan DART, disarankan untuk menggunakan penyesuai USB luaran untuk rangkaian, sementara percepatan perkakasan grafik dan periferal lanjutan belum disokong. Sokongan Bluetooth memerlukan penulisan pemacu baru kerana penggunaan protokol berasaskan PCIe yang tidak standard.
Fuente: https://corellium.com