2017-10-03 10 views
0

私はMacbook Air 13 "(2017モデル、ベース1.8Ghz)を持っていて、Mavericksを実行できるかどうか確認したいと思いました。アップグレードされたプロセッサと別のボードID(Mac-937CB26E2E02BB01)を保存する2015年と同一のボードIDは、Sierra 10.12.4などまでホワイトリストに登録されていません。 YosemiteとMavericksはアーキテクチャに関して非常に似ています(変更されたカーネル機能はほとんどありません)。AppleIntelBDWGraphicsはBroadwell IntelのドライバですHD 6000.OS X WindowServer:本物のMacでデバイス(xxxxx)と一致するコンテキストがありません

これはBroadwellチップを持っていますが、もちろん10.9.5カーネルはそれをホワイトリストに登録していません。 tは始めることを拒否する。この便利なポスト(https://pikeralpha.wordpress.com/2013/06/11/xnu-10-8-3-haswell-compatibility/)を使用して、Broadwellのサポートを追加するために編集が必要なファイルが見つかりました。私はここからOS Xのxnuソースをダウンロードしました:opensource.apple.com/tarballs/xnu/xnu-2422.115.4.tar.gz

私は関連情報を追加し、最後にカーネルをコンパイルし、Mavericksが起動しました。 (もちろん、PlatformSupport.plistを編集して私の掲示板IDをホワイトリストに入れた後)mavericks-on-mba2017

しかし、事実上すべてが機能しませんでした。キーボードのバックライトが動作し、Broadcom bcm4360が機能し、それがそれでした。キーボードとトラックパッドはspiで、10.10.3(最初のosを含む)の関連するkexts(applehsspihidriverなど)をコピーしてkextloadingした後、キーボードとトラックパッドはMavericksにネイティブであるかのように機能します。しかし、AppleIntelBDWGraphicsとそれに関連するドライバは動作しませんでした。 (また、10.10.3から引っ張られました)AppleIntelBDWGraphicsFramebufferがロードされ、CI(CoreImage)サポートが提供されましたが、あまりにも人気の高い半透明のメニューバー(Quartz Extreme関連)ではなく、私は動作するようになりました。迅速なGoogle検索はIOLockWakeupが同一である私の疑いを確認したとして、

$ sudo kextutil AppleIntelBDWGraphics.kext 
Diagnostics for /System/Library/Extensions/AppleIntelBDWGraphics.kext: 
Code Signing Failure: code signature is invalid 
WARNING - Invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext "/System/Library/Extensions/AppleIntelBDWGraphics.kext" 
(kernel) kxld[com.apple.driver.AppleIntelBDWGraphics]: The following symbols are unresolved for this kext: 
(kernel) kxld[com.apple.driver.AppleIntelBDWGraphics]: _IOLockWakeup_darwin14 
(kernel) kxld[com.apple.driver.AppleIntelBDWGraphics]: _gpu_accumulate_time 
(kernel) kxld[com.apple.driver.AppleIntelBDWGraphics]: _gpu_describe 
(kernel) Can't load kext com.apple.driver.AppleIntelBDWGraphics - link failed. 

私は簡単にIOLockWakeup_darwin14を修正する可能性があり、darwin14を切り捨てても何の害を引き起こさないだろう。ただ、すぐに何が悪かったのかを私に与えたkextutil呼び出します。私は実行可能ファイルを編集して、未解決のシンボルを_gpu_accumulate_timeと_gpu_describeに減らしました。ソースに戻り、関連コードをDarwin 14.0.0(ヨセミテ)のosfmk/kern/energy_perf.cに追跡した後、私はこれらの2つのシンボルを解決するために必要なすべてのファイルを苦労してコピーし、手作業でコンパイルしたエラーを修正しました。カーネルは(最終的に)コンパイルされ、私はすぐにそれをテストし、実際のkextがロードされたシンボルが、解決された後は:

$ sudo kextutil AppleIntelBDWGraphics.kext 
Diagnostics for /System/Library/Extensions/AppleIntelBDWGraphics.kext: 
Code Signing Failure: code signature is invalid 
WARNING - Invalid signature -67061 0xFFFFFFFFFFFEFA0B for kext "/System/Library/Extensions/AppleIntelBDWGraphics.kext" 

$ kextstat | grep AppleIntel 
    14 0 0xffffff7f808e7000 0x2b000 0x2b000 com.apple.driver.AppleIntelCPUPowerManagement (217.92.1) <7 6 5 4 3 1> 
    24 0 0xffffff7f809a3000 0x3000  0x3000  com.apple.driver.AppleIntelCPUPowerManagementClient (217.92.1) <7 6 5 4 3 1> 
    36 1 0xffffff7f80a58000 0x8000  0x8000  com.apple.driver.AppleIntelLpssDmac (2.0.57) <11 10 5 4 3> 
    37 1 0xffffff7f80a60000 0xa000  0xa000  com.apple.driver.AppleIntelLpssGspi (2.0.57) <11 10 7 5 4 3> 
    43 1 0xffffff7f80b28000 0x14000 0x14000 com.apple.driver.AppleIntelLpssSpiController (2.0.57) <37 36 10 5 4 3> 
    78 0 0xffffff7f81248000 0x54000 0x54000 com.apple.driver.AppleIntelBDWGraphicsFramebuffer (10.0.6) <77 76 75 18 11 10 7 6 5 4 3 1> 
    111 0 0xffffff7f81689000 0x79000 0x79000 com.apple.driver.AppleIntelBDWGraphics (10.0.6) <110 76 75 11 7 6 5 4 3 1> 

私はソースで編集する方法と、どのようなファイルのあまり詳細には触れません。 QE(Quartz Extreme)はまだGUIでは動作しません。 Console.appをすばやく確認すると、理由がわかります。

10/2/17 9:19:36.687 PM WindowServer[523]: _CGXGLDisplayContextForDisplayDevice: No matching context for device (0x7ff91241e030) - disabling OpenGL 

もう1つのGoogle検索では何も役立ちません。すべてのリンクは、単にメッセージを消音することに関連しており、明らかにQE/CIドライバが書かれていないUSB DisplayLinkモニタと関係があります。しかし、私はサポートされているグラフィックスカードにkextがロードされているので、バイナリパッチWindowServerなどが可能かどうかを確認して、デバイスの手動サポートを有効にしたいと考えました。ありがとうございました。

+0

これはスーパーユーザである必要があります –

+0

私はそれをどこに置くべきか分かりませんでしたが、これは単なるパワーユーザーのものよりプログラミングに関連しています。私は間違っているかもしれませんが、私はカーネルモードのものを直接修正しているのでここでは良いと思います。 –

答えて

0

あなたがしようとしていることがわかりませんが、妥当な努力の中で達成することさえ可能です。 VM、旧式のハードウェア、ThunderboltエンクロージャなどでMavericksがサポートするGPUを使用した方が明らかなソリューションが実現しない理由は非常にわかります。

適切なWindowServerプラグインがロードされているかどうかです。アクセラレーションを機能させるには、ドライバのユーザースペース部分もWindowServerを含むすべてのプロセスにロードする必要があります。 Broadwellマイクロアーキテクチャの場合、これは10.11以降で

/System/Library/Extensions/IOAccelerator2D.plugin/Contents/MacOS/IOAccelerator2D 
/System/Library/Extensions/AppleIntelBDWGraphicsGLDriver.bundle/Contents/MacOS/AppleIntelBDWGraphicsGLDriver 

だけでなく、もちろんの金属1がありますする必要がありますが、それはマーベリックスであなたを助けにはなりません。

Activity Monitorをルートとして開き、WindowServerプロセスの[ファイルとポートを開く]を調べることで、ロードされているかどうかを確認できます。もしそうでなければ、あなたの問題がどこにあるのだろう。もちろん、プラグインがロードされていない可能性がある理由はたくさんあります。最も明白で簡単に解決できるのは、ユーザー空間のドライババンドルをコピーしなかった場合です。次に、それが構築された展開ターゲットがあります - 必要に応じておそらく回避することができます。もちろん、WindowServer < - > GLプラグインのインターフェイスを10.9から10.10の間で変更することも可能です。この場合、あなたは大まかに乗っています。

関連する問題