Corellium推出了適用於Linux的版本 在裝有該芯片的新型Apple計算機上運行 M1,與Apple M1芯片兼容的Linux內核變體以GPLv2許可發布,並且已發布了一些修補程序以包含在主內核中。
Corellium在從Linux遷移到Apple芯片方面具有豐富的經驗 用於iPhone等移動設備。 在遷移的早期,測試人員受到鼓舞,認為許多Apple M1組件都基於Apple在其他SoC中已經使用的技術。
但是在編寫驅動程序的過程中,很明顯,並非所有事情都那麼簡單 蘋果M1芯片包括許多非標準解決方案。 Linux對ARM 64位SoC的支持基於常見模塊 和固件接口,但是Apple M1幾乎不使用典型的解決方案。
例如,在常規ARM SoC中,CPU內核的激活是通過固件和硬件提供的PSCI(電源狀態協調接口)完成的。 在Apple M1上,它需要對MMIO寄存器進行操作。
在這個階段, Corellium開發人員領先於Asahi Linux項目,由HéctorMartin創立,目的是將Linux移植到具有Apple M1芯片的系統,到目前為止,Apple M1芯片僅限於逆向工程和對引導程序進行試驗。 但是,Asahi Linux的主要目標不僅是引導Linux,而且是為電源管理機制提供全面支持並使用Apple MXNUMX GPU的功能,該功能使用一組特定的指令。
Corellium修補程序僅限於提供引導和對特定功能的支持 與SMP模式,定時器,中斷,空閒狀態處理和初始化有關的M1芯片。
很多 朝日Linux代表歡迎Corellium修補程序的發布 並表示願意提供同行評審幫助,以加速Linux內核的主流採用。
此外,據說Alyssa Rosenzweig(來自Collabora,開發了Panfrost GPU Mali驅動程序)已經發布了第二份有關反向工程和開發Apple M1 GPU開源驅動程序的報告。
在當前階段,已經準備了控制器的初始原型,可以使用GPU繪製三角形。 對於M1 GPU,第一個頂點著色器和片段著色器也是手工編碼的。 內核驅動程序IOKit用於與GPU交互。
蘋果M1還使用自己的AIC中斷控制器 (Apple中斷控制器), 在大多數情況下,它與標準ARM GIC不兼容 以及綁定計時器中斷的另一種機制。 另外,為了組織多個處理器之間的交互,使用了單獨的寄存器來控制IPI(處理器間中斷)。
要引導到裝有Apple M1芯片的Mac Mini M1計算機, 準備好可用的rootfs映像, 基於Raspberry Pi的Ubuntu構建。
要安裝,必須將映像複製到驅動器 USB,將本機連接到USB-C端口並以1TR模式啟動計算機 (Recovery OS)在啟動時按住電源按鈕。 命令行顯示後,您需要運行linuxsetup.sh腳本,該腳本將安裝內核並配置環境。
這是Linux開始運行的時候, 而要返回macOS,必須在1TR模式下運行命令“ bputil -n”。
Ready build支持USB,I2C和DART,建議使用外部USB適配器進行網絡連接,但不支持圖形硬件加速和擴展外圍設備。 藍牙支持由於使用了非標準的基於PCIe的協議而需要編寫新的驅動程序。