GitHubのページ
出典: GitHub

Apple Silicon向けのmacOSをIntelやAMDのCPUを搭載したPCで動かすプロジェクト「Stela」が公開されました。CPUの命令を変換する機能とNVIDIA製GPU向けの描画ドライバーを組み合わせ、macOSと多くのアプリが起動します。ただし開発途上で動作は遅く、対応ハードウェアでも起動しない場合があります。

Apple Silicon向けの命令をPC向けに変換

Stelaは、PCの起動時に動くUEFIプログラムです。Apple Siliconのハードウェアを模した環境を備え、現在はM2チップ搭載のMac miniとして振る舞います。改変していないApple Silicon版macOSを使う方式です。

Apple Silicon向けのarm64eコードは、x86-64コードに変換されます。変換には、実行前に処理するAOTと実行時に処理するJITの両方を使います。3000種類以上のAArch64命令形式に対応し、変換済みのコードをキャッシュします。

グラフィックスには、NVIDIA製GPU向けの独自のMetalドライバーを使います。MetalはAppleのグラフィックス向け技術です。ドライバーは描画処理に使うMetalの中間表現を、オープンソースのグラフィックスソフトウェア群であるMesaの中間表現へ直接変換します。

Intel版macOSを使う従来の方式との違い

従来のHackintoshは、Intel版macOSがPCと同じCPUで動くことを前提としていました。StelaはApple Silicon版macOSのコードをx86-64向けに変換し、現在の構成ではMac miniのハードウェアも模倣します。

macOS Tahoe 26は、Intel搭載Macに対応する最後のmacOSとされています。Stelaの初版では、macOSとほとんどのアプリが起動するものの、動作は遅い状態でした。対応するはずの構成でも起動中に停止した報告があります。

Stela自体にAppleのソフトウェアは含まれていません。Appleのソフトウェア使用許諾契約と利用規約に従うことは利用者の責任とされています。StelaのコードはGPL-2.0以降のライセンスで公開されています。

CPUとGPU、ストレージの要件

CPUはIntelまたはAMDのx86-64-v2対応製品が必要です。具体的にはIntel Nehalem、AMD Bulldozer以降が挙げられています。メモリーは8GB以上で、64ビットUEFIのセキュアブートを無効にする必要があります。

GPUはNVIDIA GeForce GTX 16シリーズ、またはRTX 20、30、40、50シリーズに対応します。ディスクはNVMe、またはAHCIモードのSATAが対象です。macOS用に60GB以上のGPTパーティションか、消去して使うディスク全体を用意します。

起動用USBメモリーはオンラインインストーラーの場合8GB、オフラインインストーラーの場合32GBが必要です。セットアップでは使用するUSBメモリーのデータが消去されます。インストーラーとmacOSのバージョン、Macのモデルを選び、作成したUSBメモリーからPCを起動します。

ネットワークと周辺機器の対応状況

Wi-Fiと音声は現在対応していません。有線LANはIntel、Realtek、Broadcomなどの対応コントローラーが挙げられています。USB接続の対応ネットワークアダプターもあります。

BluetoothはUSBとIntel製PCIeコントローラーに対応します。入力機器はUSBキーボードとマウスのほか、PS/2キーボードやマウス、SynapticsまたはElantechのタッチパッドを利用できます。USBはxHCIとEHCIのコントローラー、ハブ、USBディスクに対応します。

セットアップツールはWindows、Linux、macOSで動作し、必要な項目を選んで起動用USBメモリーを作成できます。問題が起きた場合は起動ログを保存し、報告に添付できます。

v0.3.1で起動と有線LANを修正

Stela v0.3.1では、ファームウェアのメモリーマップに512件を超える項目があるPCで、起動が途中で止まる問題が修正されました。Intel製ボードでPCIデバイスを引き継ぐ際に、内蔵ネットワークアダプターなどの設定ができなくなる問題にも対処しています。起動処理が終わらないデバイスはログに記録され、次回の起動時にはスキップされます。

有線LANでは、v0.3.0で多くのRealtek製アダプターが起動しなかった問題が修正されました。Intel製内蔵アダプターの起動処理や、低電力状態にあるBroadcom製アダプターの処理も変更されています。Wi-Fiはv0.3.1でも動作せず、対応に向けた作業が続いています。

変換済みコードのキャッシュは、macOSの動作中に小分けで書き込まれ、クラッシュ後も保持されるようになりました。GPUのパイプラインとシェーダーライブラリーも、それらを初めて使うフレームの外で構築されます。これらの修正の多くは利用者から送られた起動ログに基づき、モデルと仮想マシンでテストされています。