展示了在配備 Apple M1 晶片的裝置上使用 GNOME 啟動 Linux 環境

由 Asahi Linux 和 Corellium 專案推動的實現對 Apple M1 晶片的 Linux 支援的舉措已經達到了可以在採用 Apple M1 晶片的系統上運行的 Linux 環境中運行 GNOME 桌面的程度。 螢幕輸出使用幀緩衝區進行組織,並使用 LLVMPipe 軟體光柵器提供 OpenGL 支援。 下一步將是使顯示協處理器能夠輸出高達 4K 的分辨率,其驅動程式已經經過逆向工程。

Project Asahi 已在主 Linux 核心中實現了對 M1 SoC 的非 GPU 元件的初步支援。 在演示的Linux環境中,除了標準核心的功能之外,還使用了與PCIe、內部匯流排的pinctrl驅動程式和顯示驅動程式相關的幾個附加修補程式。 這些附加功能使得提供螢幕輸出並實現 USB 和乙太網路功能成為可能。 尚未使用圖形加速。

有趣的是,為了對M1 SoC 進行逆向工程,Asahi 專案沒有嘗試反彙編macOS 驅動程序,而是實現了一個在macOS 和M1 晶片之間運行的虛擬機管理程序,並透明地攔截和記錄晶片上的所有操作。 SoC M1 難以在第三方作業系統中實現對該晶片的支援的特徵之一是在顯示控制器 (DCP) 中添加了協處理器。 macOS 顯示驅動程式的一半功能轉移到指定協處理器一側,透過特殊的 RPC 介面呼叫協處理器的現成函數。

愛好者已經解析了對此 RPC 介面的足夠調用,以使用協處理器進行螢幕輸出,以及控制硬體遊標並執行合成和縮放操作。 問題在於 RPC 介面依賴韌體,並且隨 macOS 的每個版本而變化,因此 Asahi Linux 計劃僅支援某些韌體版本。 首先,將為 macOS 12“Monterey”附帶的韌體提供支援。 無法下載所需的韌體版本,因為韌體是在將控制權轉移到作業系統之前由 iBoot 安裝的,並使用數位簽章進行驗證。

展示了在配備 Apple M1 晶片的裝置上使用 GNOME 啟動 Linux 環境
展示了在配備 Apple M1 晶片的裝置上使用 GNOME 啟動 Linux 環境


來源: opennet.ru

添加評論