2017-10-03 11 views
0

Macbook Air 13 "(2017 모델, 기본 1.8Ghz)를 사용하고 있는데 매버릭스를 실행할 수 있는지 알고 싶었습니다. 업그레이드 된 프로세서와 다른 Board-ID (Mac-937CB26E2E02BB01)를 저장하는 2015와 동일한 보드 ID는 Sierra 10.12.4 또는 그 이상이 될 때까지 허용 목록에 포함되지 않습니다 .1010.3까지 갈 수 있습니다 (2015 Macbook airs)를 지원하고 platformsupport.plist 패치만으로 완벽하게 지원되지만 요요 마이트와 매버릭스는 아키텍처 측면에서 매우 유사합니다 (변경된 커널 기능은 거의 없음). AppleIntelBDWGraphics는 Broadwell Intel HD 6000.OS X WindowServer : 실제 맥에서 장치 (xxxxx)에 맞는 컨텍스트가 없음

그것은 Broadwell 칩을 가지고 있으며 물론 10.9.5 커널은 그것을 허용하지 않습니다. 그래서 i 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

. 관련 정보를 추가하고 마침내 커널을 컴파일하고 매버릭스가 부팅되었습니다. (물론 PlatformSupport.plist를 편집하고 내 board-id를 화이트리스트로 만든 후에) mavericks-on-mba2017

그러나 사실상 모든 것이 작동하지 않았습니다. 키보드 백라이트가 작동하고 Broadcom bcm4360이 작동했습니다. 키보드와 트랙 패드는 spi이며, 10.10.3의 apple keynts (applehsspihidriver 등)를 복사하고 kextloading 한 후 키보드와 트랙 패드는 마치 Mavericks의 기본 것처럼 작동합니다. 그러나 AppleIntelBDWGraphics 및 관련 드라이버가 작동하지 않았습니다. (또한 10.10.3에서 뽑았습니다.) AppleIntelBDWGraphicsFramebuffer가로드되어 CI (CoreImage) 지원을 받았지만 많이 찾은 반투명 메뉴 바 (Quartz Extreme 관련)가 아니 었습니다. 그래서 저는 일을해야합니다. 빠른 구글 검색 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에 관련된 코드를 추적 한 후 필자는 필요한 모든 파일을 복사하여이 두 기호를 해결 한 다음 손으로 수정 한 컴파일러 오류를 해결했습니다. 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 

다른 Google 검색을 통해 도움이되는 정보가 표시되지 않습니다. 모든 링크는 메시지를 단순히 조용히하는 것과 관련이 있으며 분명히 QE/CI 드라이버가없는 USB DisplayLink 모니터와 관련이 있습니다. 그러나, 지원되는 그래픽 카드를 사용하여로드 된 kext를 사용하고 있습니다. WindowServer 또는이 장치와 같은 장치를 수동으로 활성화하기 위해 바이너리 패치가 가능한지 알고 싶었습니다. 고맙습니다.

+0

이것은 수퍼 유저이어야합니다. –

+0

어느 쪽이 좋을지 모르겠지만 이것은 파워 유저보다 프로그래밍 관련입니다. 내가 틀렸을 수도 있지만 커널 모드의 내용을 직접 수정하는 것이 더 좋다고 생각합니다. –

답변

0

나는 당신이하려는 일이 합리적인 노력 안에서도 달성 할 수 있다는 것을 모릅니다. VM, 오래된 하드웨어, Thunderbolt 인클로저에서 Mavericks가 지원하는 GPU를 사용하는 등의 더 분명한 솔루션이 수행되지 않는 훌륭한 이유가 있다고 가정하겠습니다 ...

한 가지 확인할 사항 그래도 적절한 WindowServer 플러그인이로드되는지 여부입니다.가속화가 작동하려면 드라이버의 사용자 공간 부분도 WindowServer를 포함하여 드라이버를 사용하는 모든 프로세스에로드해야합니다. 브로드 웰의 경우, 이것은 10.11 및 최신에

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

뿐만 아니라 물론 금속의 하나 거기해야하지만, 그 매버릭스에 도움이되지 않습니다.

Activity Monitor를 루트로 열고 WindowServer 프로세스의 "파일 및 포트 열기"를 검사하여로드되었는지 확인할 수 있습니다. 그렇지 않은 경우 문제가있는 부분이있을 수 있습니다. 물론, 플러그인이로드되지 않는 많은 이유가있을 수 있습니다. 가장 확실하고 쉽게 고칠 수있는 방법은 사용자 공간 드라이버 번들을 복사하지 않은 경우입니다. 그런 다음 구축 된 배포 대상이 있습니다. 필요하면이를 피할 수 있습니다. 물론 WindowServer < -> GL 플러그인 인터페이스를 10.9와 10.10 사이에서 변경할 수 있습니다.이 경우 사용자는 대략적인 태도를 취할 수 있습니다.