일반 PC에서 AppleTV OS 순정 이미지 부팅하기 - 기술 토론 및 구현
Mac OS X Tiger(10.4.7) 기반에 BackRow(Front Row) 인터페이스를 얹은 AppleTV 전용 OS 디스크 이미지를 PC_EFI와 해킨토시 Kext를 이용해 일반 x86 PC 하드웨어에서 네이티브로 부팅하고 구동하기 위한 기술 연구 및 개발 스레드입니다.
- 주 저자
-
@NebKiwi
게시일: 2009-05-01
- 소속 컬렉션
- OSx86 10.X 코어 아키텍처 및 부트 시스템
- 아카이브 기록 규모
- 누적 조회 229,460회 · 선별된 필드 노트 45건 (원본 게시물 48건에서 추출) · 2009-05-01 – 2009-08-06
- 참여 및 검증 멤버 (8)
- @andyvand (15)@NebKiwi (12)@alexkidd (6)@naquaada (5)@pαuℓzurrr. (4)@cmdshft (3)@milanca (2)@BlackCH
- 관련 하드웨어 참조
- USB 3.2 Boot Flash Drives ↗ SATA III & NVMe SSDs ↗ AMD Radeon GPUs (QE/CI) ↗
자... 우선 배경 설명부터 드리자면 이렇습니다. AppleTV의 하드웨어는 본질적으로 아주 저사양으로 맞춘 인텔 Mac과 다를 바 없으며, 마찬가지로 EFI 펌웨어를 사용합니다. 그리고 AppleTV의 운영체제 소프트웨어는 기본적으로 Mac OS X Tiger(제 기억이 맞다면 10.4.7 빌드) 위에 화려한 거실용 GUI를 입힌 구조입니다. 물론 기존의 일반 Tiger 해킨토시 환경에 대체 Finder 격인 "Backrow.app"만 따로 추출해 이식할 수 있다는 건 저도 알고 있습니다. 하지만 아예 완전한 순정 AppleTV OS 통째로 일반 PC 하드웨어에서 직접 부팅하지 못할 이유가 무엇이 있을까요? PC_EFI 부트로더가 이미 Tiger 부팅을 완벽히 지원하지 않았던가요? 마침 제 수중에 Apple 공식 서버에서 직접 추출한 AppleTV OS 업데이트 DMG 이미지가 있는데, 이를 가지고 직접 몇 가지 실험을 해볼 생각입니다.. 여러분의 기술적인 조언과 아이디어를 부탁드립니다.
커뮤니티 실측 및 기술 필드 노트
총 48개의 원본 스레드 응답 중 기술적 가치가 높은 45개의 필드 노트 수록
예전에 제 Tiger 시스템에 BackRow를 설치해 본 적이 있는데, 아직 그 인스톨러 파일이 남아 있는지 한 번 찾아보겠습니다. 하지만 요즘은 Leopard에 내장된 Front Row 2.x의 인터페이스가 이미 AppleTV와 똑같이 생겨서 굳이 따로 설치할 필요가 없더군요. 개인적으로는 커다란 아이콘들이 입체적으로 회전하던 구형 Front Row 1.x 시절의 디자인이 훨씬 더 멋졌던 것 같습니다.
단순히 앱만 실행하는 게 아니라 실제 순정 AppleTV 운영체제 전체를 통째로 부팅하는 건 정말 멋진 일이 될 것 같습니다.
솔직히 Leopard의 기본 Front Row 2 앱은 좀 밋밋하거든요. UI 자체는 깔끔하지만, 저는 단순히 화면이 페이드아웃/페이드인 되는 방식보다는 실제 AppleTV 전원을 켰을 때 나오는 화려한 시작 스플래시 영상과 더 직관적인 전용 메뉴 구성을 원합니다. 안타깝게도 예전 Tiger용 패치 인스톨러는 Leopard에서 작동하지 않아서 아쉽네요.
향후 Chameleon 2.1 부트로더에서 AppleTV OS를 별도의 독립된 운영체제 파티션 아이콘으로 정식 지원해 준다면 정말 멋지겠네요!
@NebKiwi자... 우선 배경 설명부터 드리자면 이렇습니다. AppleTV의 하드웨어는 본질적으로 아주 저사양으로 맞춘 인텔 Mac과 다를 바 없으며, 마찬가지로 EFI 펌웨어를 사용합니다. 그리고 AppleTV의 운영체제 소프트웨어는 기본적으로 Mac OS X Tiger(제 기억이 맞다면 10.4.7 빌드) 위에 화려한 거실용 GUI를 입힌 구조입니다. 물론 기존의 일반 Tiger 해킨토시 환경에 대체 Finder 격인 "Backrow.app"만 따로 추출해…
가능하긴 하지만 전체 디스크 이미지와 커스텀 프리링크 커널(Prelinked kernel)이 필요합니다...
AppleTV Take 2 버전도 가능합니다(참고로 이 버전은 실제로는 임베디드용 XNU 10.5.6 커널을 사용합니다...)
일반 PC 하드웨어 지원을 위해 추가 Kext들도 필요하고요...
또한 BackRow 프레임워크(내부에 디스크 GUID가 하드코딩됨...)를 수정해야 하며, 워치독(Watchdog) Kext를 반드시 제거해야 합니다(그렇지 않으면 부팅 후 얼마 지나지 않아 강제로 재부팅됩니다...)
마지막 단계는 Finder.app(= BackRow.app) 바이너리를 패치하여 현재 일반 PC를 정품 AppleTV 하드웨어로 인식하도록 만드는 것입니다(특정 분기점의 branch if equal 명령어를 branch if not equal로 바이트 패치...)
AMD 시스템의 경우 바이너리들의 CPUID를 패치하는 작업도 추가로 필요합니다...
참고(NOTE): AppleTV OS의 Finder.app은 기본적으로 USB IrDA 적외선 수신기와 Apple Remote 리모컨을 요구하기 때문에 일반 키보드로는 조작할 수 없습니다...
다행히 이 문제에 대한 우회책(Workaround)이 존재합니다...
리모컨의 6개 버튼을 일반 키보드 키에 매핑해 주는 리모컨 에뮬레이션 Kext와 데몬(Daemon)을 사용하면 됩니다...
커널의 경우 제가 보유한 커널 소스를 바탕으로 직접 빌드해 제공할 수 있습니다. 이렇게 하면 AMD와 Intel 프로세서 양쪽에서 모두 완벽히 작동하며 AppleTV 전용 커스텀 동적 링커(일반적인 Voodoo 스타일 dyld와는 다른 소스 파일로 빌드됨...)도 그대로 지원할 수 있습니다.
@andyvand가능하긴 하지만 전체 디스크 이미지와 커스텀 프리링크 커널(Prelinked kernel)이 필요합니다... AppleTV Take 2 버전도 가능합니다(참고로 이 버전은 실제로는 임베디드용 XNU 10.5.6 커널을 사용합니다...). 일반 PC 하드웨어 지원을 위해 추가 Kext들도 필요하고요... 또한 BackRow 프레임워크 내부에 하드코딩된 디스크 GUID 값을 수정해야 하며, AppleTCOWatchDog 워치독 Kext를 제거해야 합니다(그렇지 않으면 부팅 후 얼마 지나지 않아 강제 재부팅됩니다...)
와, 정말 깊이 있는 설명 감사합니다, Andy 님.. 생각보다 만만치 않은 도전 과제가 되겠군요. AppleTV OS에 그렇게나 많은 보호 장치들이 걸려 있을 줄은 몰랐습니다...
@NebKiwi와, 정말 깊이 있는 설명 감사합니다, Andy 님.. 생각보다 만만치 않은 도전 과제가 되겠군요. AppleTV OS에 그렇게나 많은 보호 장치들이 걸려 있을 줄은 몰랐습니다...
덧붙이는 걸 깜빡했네요...
BackRow.framework 바이너리 내부에는 디스크의 GUID 값뿐만 아니라 /dev/diskXsY 파티션 경로 문자열도 하드코딩되어 있어서, 이를 실제 설치된 드라이브 및 파티션 번호인 /dev/diskXsY 항목으로 치환해 주어야 합니다...
실제 정품 인텔 초기형 iMac4,1에서 이 작업을 수행해 성공한 지인을 알고 있습니다...
해킨토시에서도 똑같이 구현할 수 있으며 기술적으로 문제 될 것은 전혀 없습니다...
다만 한 가지 흥미로운 점은 AppleTV Take 2가 비록 Leopard(10.5) 커널을 사용하고 있긴 하지만, 그 위에서 돌아가는 유저랜드 앱들과 Kext들은 여전히 Tiger(10.4) 기반으로 빌드되어 있다는 것입니다...
따라서 하드웨어 구동용 Kext들은 Tiger 버전(가급적 10.4.11 버전이 가장 좋습니다...)으로 준비하셔야 합니다.
IR 리모컨 에뮬레이터(IR Remote EMU)는 제가 직접 개선해 둔 버전을 제공해 드릴 수 있습니다...
다만 Tiger SDK 환경에 맞춰 다시 컴파일해야 합니다... (아예 AppleTV Take 2 OS에 특별히 최적화된 커스텀 SDK 환경을 하나 구축할까 생각 중입니다...)
또한 Finder 바이너리의 정품 인증 체크 패치는 일반 Mac OS X 위에서 이식해 실행할 때만 필요하고 순정 AppleTV OS 통째로 부팅할 때는 필요 없을 가능성도 있습니다...
제 기억으로는 /System/Library/CoreServices/SystemVersion.plist 파일의 OS 이름이 AppleTV OS로 설정되어 있는지를 검사했던 것 같습니다(정확한 명칭은 약간 다를 수 있으니 DMG 이미지 내부의 해당 파일을 직접 확인해 보세요).
설령 바이너리 패치가 필요하다고 해도... 코드 참조와 어셈블리 분기점을 탐색하는 데는 ht 에디터가 최고의 친구가 되어줄 것입니다...
그 툴을 쓰면 아주 손쉽게 패치할 수 있습니다...
저는 현재 eHome 호환 적외선 수신기(예: Windows Media Center 리모컨용 수신기)와 Mira 소프트웨어를 조합해 정품 Apple Remote 리모컨을 사용하고 있습니다. 물론 그건 일반 OS X 환경에서의 이야기이긴 합니다. Andy 님이 말씀하신 IR Receiver Emulator도 잘 알고 있는데, 예전에 일반 Tiger 시스템에 초기형 Front Row를 설치할 때 필수였던 드라이버였지요. 당시에는 BackRow 메뉴에 '종료(Quit)' 옵션을 추가해 수정된 일반 Finder로 빠져나올 수 있게 해주는 패치들도 있었습니다. 다만 솔직히 그렇게까지 힘들게 순정 AppleTV OS를 통째로 올릴 가치가 있을지는 조금 의문입니다. 그냥 저가형 베어본 하드웨어로 일반 해킨토시를 구축한 뒤 로그인 시작 항목(Login Items)에 Front Row를 등록하고 Mira로 Apple Remote를 연결해도 사실상 똑같은 결과를 얻을 수 있으니까요.
아 맞다, 그 /dev/diskXsY 문자열 수정 작업이 이제 기억나네요. 헥사 에디터(Hex editor)로 직접 수정해야 했었죠, 맞나요? 그리고 제 기억이 맞다면 AppleTV 소프트웨어가 지정된 미디어 드라이브의 루트 디렉터리에 00부터 99까지인가 수많은 숫자로 된 캐시 폴더들을 자동으로 대량 생성해서 폴더 구조가 엉망으로 보였던 기억이 납니다.
@naquaada저는 현재 eHome 호환 적외선 수신기(예: Windows Media Center 리모컨용 수신기)와 Mira 소프트웨어를 조합해 정품 Apple Remote 리모컨을 사용하고 있습니다. 물론 그건 일반 OS X 환경에서의 이야기이긴 합니다. Andy 님이 말씀하신 IR Receiver Emulator도 잘 알고 있는데, 예전에 일반 Tiger 시스템에 초기형 Front Row를 설치할 때 필수였던 드라이버였지요. 당시에는 BackRow 메뉴에 '종료(Quit)' 옵션을 추가해…
Mira는 실제 Apple Remote의 로우레벨 적외선 신호 변환을 에뮬레이션하는 것이 아니라 리모컨 입력을 상위 애플리케이션 기능에 직접 매핑하는 방식이라 순정 AppleTV OS에서는 작동하지 않을 것입니다...
따라서 다른 대안은 Finder.app을 수정하여 내부의 BRFullScreenRenderer 호출을 BRWindowRenderer로 교체하는 것입니다(이렇게 창 모드로 띄우면 키보드의 Command + Tab 단축키를 통해 백그라운드 OS와 전환할 수 있습니다).
물론 그 경우에도 인터페이스를 실제로 조작하려면 백그라운드에 리모컨 에뮬레이터 데몬(Remote Emu daemon)이 떠 있어야 합니다...
예전에 저는 6개의 버튼 각각에 대응하는 아주 작은 미니 앱 6개를 직접 만들어서, 마우스 버튼을 앱에 할당해 주는 유틸리티를 통해 AppleTV.app 조작에 매핑해 쓴 적이 있습니다(물론 마우스에 버튼이 최소 6개는 달려 있어야 합니다...)
그 미니 앱들의 구조는 아주 단순했는데... 단지 해당 리모컨 신호에 맞는 kern.* 계열의 sysctl 액션을 커널로 전달해 주는 역할만 수행했습니다.
이 방식을 쓰면 AppleTV 앱이 실행 중일 때 마우스만으로 모든 메뉴를 조작할 수 있습니다... (게다가 평소 일반 키보드 동작과 전혀 충돌하지 않기 때문에 키보드 매핑용 백그라운드 데몬을 상시 띄워둘 필요도 없었지요...)
당시 Tiger 10.4.11이 설치된 AMD PC 환경에서 이 방식을 테스트해 완벽히 작동하는 것을 확인했었습니다.
@NebKiwiPC_EFI 부트로더가 이미 Tiger 부팅을 완벽히 지원하지 않았던가요?
EFI 에뮬레이션을 지원하는 부트로더라면 어떤 것이든 상관없이 작동합니다...
최신 Chameleon V2를 쓰시면 아무런 문제 없이 아주 매끄럽게 부팅될 것입니다...
만약 PC용 커스텀 AppleTV Take 2 OS를 만드실 생각이라면 제가 임베디드 AppleTV 스타일 구조에 맞춘 커널 세트를 직접 다시 빌드해 드릴 의향이 있습니다...
다만 지금은 Mac OS X 10.4.11 설치 DVD가 수중에 없어서 필요한 드라이버들을 커널에 프리링크(mach_kernel.prelink 생성용)하기가 조금 어렵긴 합니다...
하지만 10.4.11 콤보 업데이트 패키지에서 필요한 파일들을 추출해 쓸 수는 있을 것 같네요...
진행하실 생각이 있다면 알려주세요...
프로젝트 참가 희망
@andyvand만약 PC용 커스텀 AppleTV Take 2 OS를 만드실 생각이라면 제가 임베디드 AppleTV 스타일 구조에 맞춘 커널 세트를 직접 다시 빌드해 드릴 의향이 있습니다... 다만 지금은 Mac OS X 10.4.11 설치 DVD가 수중에 없어서 필요한 드라이버들을 커널에 프리링크(mach_kernel.prelink 생성용)하기가 조금 어렵긴 합니다... 하지만 10.4.11 콤보 업데이트 패키지에서 필요한 파일들을 추출해 쓸 수는 있을 것 같네요…
저도 이런 프로젝트에 정말 함께 참여하고 싶지만, 밑바닥부터 직접 구현할 만큼의 전문적인 로우레벨 지식은 많이 부족합니다. 물론 Mac OS X의 전반적인 작동 구조나 UNIX 및 OSx86 일반에 대해서는 꽤 잘 알고 있는 편입니다... 혹시 이 프로젝트를 주도해서 진행하실 분이 계신다면 제가 할 수 있는 모든 방법으로 기꺼이 돕고 싶습니다. 마침 이번 여름방학에 몰두할 만한 재미있는 프로젝트가 필요했거든요. 아무것도 없는 시골 마을에 살고 있다 보니 너무 심심해서 말이지요!
@NebKiwi저도 이런 프로젝트에 정말 함께 참여하고 싶지만, 밑바닥부터 직접 구현할 만큼의 전문적인 로우레벨 지식은 많이 부족합니다. 물론 Mac OS X의 전반적인 작동 구조나 UNIX 및 OSx86 일반에 대해서는 꽤 잘 알고 있는 편입니다... 혹시 이 프로젝트를 주도해서 진행하실 분이 계신다면 제가 할 수 있는 모든 방법으로 기꺼이 돕고 싶습니다. 마침 이번 여름방학에 몰두할 만한 재미있는 프로젝트가 필요했거든요.…
좋습니다. 그럼 커스텀 동적 링커(Dynamic linker)를 포함한 AppleTV OS Take 2용 임베디드 스타일 커널이 빌드되도록 커널 빌드 절차를 약간 수정하겠습니다...
그 후에는 직접 필요한 구성 요소들(Kext 및 드라이버)을 mach_kernel에 프리링크하여 mach_kernel.prelink를 만드시면 됩니다.
또한 Tiger 환경에 맞춘 IR 리모컨 에뮬레이터(IR Remote Emulator)도 제가 다시 컴파일해 드리겠습니다...
두 가지 작업이 모두 완료되는 대로 보내드리겠습니다(아직 처리해야 할 일들이 꽤 남아 있긴 하지만... 내일 바로 이 작업에 착수하겠습니다...).
@andyvand좋습니다. 그럼 커스텀 동적 링커(Dynamic linker)를 포함한 AppleTV OS Take 2용 임베디드 스타일 커널이 빌드되도록 커널 빌드 절차를 약간 수정하겠습니다... 그 후에는 필요한 구성 요소들(Kext 및 드라이버)을 mach_kernel에 직접 프리링크하여 mach_kernel.prelink를 만드시면 됩니다. 또한 Tiger 환경에 맞춘 IR 리모컨 에뮬레이터(IR Remote Emulator)도 제가 다시 컴파일해 드리겠습니다…
Andy 님, 정말 대단하십니다. 진심으로 감사드립니다! 너무 친절하시네요. 자, 혹시 이 프로젝트에 합류하실 다른 분 더 계신가요? 시간 여유가 있는 초고수 OSx86 해커분들의 동참을 기다립니다!
AppleTV 이미지 준비 완료
좋습니다, AppleTV 2.3.1 전체 시스템 이미지를 구해서 지정된 전용 파티션에 복원까지 마쳤습니다. 이제 테스트할 준비가 완벽히 끝났습니다.
@NebKiwi좋습니다, AppleTV 2.3.1 전체 시스템 이미지를 구해서 지정된 전용 파티션에 복원까지 마쳤습니다. 이제 테스트할 준비가 완벽히 끝났습니다.
하하, M$의 광대 스티브 발머(Steve Ballmer)의 유명한 명언을 인용하자면...
@Steve Ballmer개발자, 개발자, 개발자(Developers, developers, developers)...
좋습니다... 마침 시간 여유가 좀 생겨서 AppleTV에 맞는 커널을 생성하기 위해 소스 코드 업데이트 작업을 시작했습니다...
빌드가 완료되는 대로 다시 글을 올리겠습니다...
작업이 아주 순조롭게 진척되고 있습니다...
다만 dyld를 빌드하기 위해 커스텀 SDK를 새로 만들어야 했네요...
계속 작업 중입니다...
@andyvand작업이 아주 순조롭게 진척되고 있습니다... 다만 dyld를 빌드하기 위해 커스텀 SDK를 새로 만들어야 했네요... 계속 작업 중입니다...
우와(W00T).. 이 작업을 직접 맡아주셔서 정말 감사드립니다!
@NebKiwi우와(W00T).. 이 작업을 직접 맡아주셔서 정말 감사드립니다!
좋습니다... 커스텀 AppleTV 전용 dyld 빌드에 성공했습니다(i386 전용)...
지금 이 글을 쓰는 순간 커널 본체가 빌드되고 있습니다...
조만간 완성된 커널을 내놓을 수 있을 것 같습니다...
그나저나 그래픽(GFX), 사운드, 메인보드 칩셋, 무선랜(WLAN), 그리고 AMD 지원용 드라이버들은 어떻게 되나요... 만약 AppleTV가 여전히 구형 Tiger 기반이고 최신 그래픽 카드들은 Leopard에서만 드라이버가 지원된다면 특히 그래픽 카드를 잡는 게 꽤 골치 아플 것 같은데요.
아뇨, 걱정하실 필요 없습니다...
제가 지금 빌드한 것은 AppleTV 환경에 맞춰 컴파일된 Leopard(9.x) 커널입니다(기존 AppleTV의 표준 792.XXX.XXX 계열 커널과는 다릅니다).
따라서 최신 Leopard용 Kext들도 완벽히 지원하며 나머지 AppleTV 시스템 구성 요소들도 문제없이 구동해 줍니다...
하위 호환성 덕분에 기존 Tiger 기반 Kext들도 그대로 작동하고 최신 드라이버들도 완벽하게 돌아갈 것입니다...
더 이상 지체 없이 발표합니다:
AppleTV OS 전용 커널입니다...
다음 링크에서 다운로드하세요:
rapid share.com/files/230399705/AppleTV_Kernel.zip
AppleTV 커널 테스트 예정
지금 대학 수업 중이라 집에 돌아가는 대로 즉시 테스트해 보겠습니다! 정말 감사합니다, Andy 님.
@andyvand더 이상 지체 없이 발표합니다: AppleTV OS 전용 커널입니다... 다음 링크에서 다운로드하세요: rapid share.com/files/230399705/AppleTV_Kernel.zip
만약 이 커널로 일반 PC에서 AppleTV OS 구동에 성공하신다면, 제발 구체적인 설치 및 설정 방법을 우리 모두에게 자세히 공유해 주세요. 실제로 돌아간다면 정말 역사적인(Epic) 일이 될 겁니다.
아예 개조된 배포판 이름을 'AndyTV'라고 붙이면 어떨까요.
누군가 설치하기 편한 인스톨러 형태로 만들어 주시면 정말 멋질 것 같습니다. 혹시 USB 메모리 스틱이나 외장 USB 하드 디스크에서도 작동할까요?
@naquaada아예 개조된 배포판 이름을 'AndyTV'라고 붙이면 어떨까요. 누군가 설치하기 편한 인스톨러 형태로 만들어 주시면 정말 멋질 것 같습니다. 혹시 USB 메모리 스틱이나 외장 USB 하드 디스크에서도 작동할까요?
일단 시스템이 완벽히 부팅되고 정상 작동하는 것이 확인되면, 이를 .pkg 패키지로 묶어서 Leopard 설치 DVD에 통합하여 수정된 설치 디스크(인스톨러)로 만들 계획입니다..
@NebKiwi일단 시스템이 완벽히 부팅되고 정상 작동하는 것이 확인되면, 이를 .pkg 패키지로 묶어서 Leopard 설치 DVD에 통합하여 수정된 설치 디스크(인스톨러)로 만들 계획입니다..
테스트는 어떻게 진행되고 있나요?
정상 부팅에 성공하셨나요?
부팅 테스트 중간보고
@andyvand테스트는 어떻게 진행되고 있나요? 정상 부팅에 성공하셨나요?
안녕하세요 Andy 님, 오늘은 너무 녹초가 되어서 이만 자러 가야겠습니다.. 내일 본격적으로 다시 만져볼 생각입니다. 이 빌어먹을 프리링크 커널(mach_kernel.prelink)만 제대로 작동하게 만들 수 있다면 좋을 텐데요.. 내일은 일단 /S/L/E 폴더에 일반 Kext들을 직접 집어넣는 방식으로 어디까지 부팅이 진행되는지 확인해 보겠습니다..
그럼 이만 들어가 보겠습니다. 진전이 있는 대로 계속 소식 전하겠습니다.
ATV 테스트 자원봉사자 모집
이 프로젝트 테스트를 함께 도와주실 자원봉사자분들이 계신다면 정말 감사하겠습니다.. 하드 디스크에 몇 GB 정도 여유 공간이 있으신 분 계신가요? 현재 초기 부팅 단계까지는 아주 잘 넘어가는데 제 특정 하드웨어 문제로 추정되는 사소한 에러들이 조금 발생하고 있습니다. 관심 있으신 분은 저에게 쪽지(PM)를 보내주세요. 감사합니다.
저도 외장 USB 하드 디스크나 USB 메모리 스틱에 담아 부팅 테스트를 해볼 수 있습니다.. 만약 2GB USB 스틱으로 용량이 부족하다면 공간이 넉넉한 외장 USB 하드 디스크를 사용하면 됩니다.
@milanca저도 외장 USB 하드 디스크나 USB 메모리 스틱에 담아 부팅 테스트를 해볼 수 있습니다.. 만약 2GB USB 스틱으로 용량이 부족하다면 공간이 넉넉한 외장 USB 하드 디스크를 사용하면 됩니다.
OS 파티션 자체는 크기가 작아서 2GB면 충분할 겁니다...
다만 디스크를 실제 AppleTV와 동일한 GUID 파티션 테이블 구조(총 4개의 파티션 구조, 외장 하드 교체와 관련된 AwkwardTV 위키의 파티션 설정 가이드를 참고하시면 그대로 작동할 것입니다)로 세팅해야 할 가능성이 높습니다.
알겠습니다 Andy 님, 감사합니다.. 마침 완전히 비어 있는 외장 USB 하드 디스크가 하나 있어서 데이터 날아갈 걱정 없이 원하는 대로 마음껏 파티션을 나누어 볼 수 있습니다. 필요한 정보를 쪽지(PM)로 보내주시면 제 시스템들에서 바로 테스트해 보겠습니다.
저도 이 테스트에 꼭 동참해 보고 싶습니다..
그런데 제 컴퓨터는 AMD 시스템입니다. 이 AppleTV 커널이 AMD 시스템에서도 작동할까요?
그리고 전체적인 구성을 어떻게 세팅해야 하나요?
그냥 하드 디스크에 AppleTV OS 이미지를 풀고, 커널을 교체한 뒤, 필요한 해킨토시 Kext들을 추가하고 부팅하면 되는 건가요?
감사합니다!
Apple 공식 서버에서 직접 원본 이미지를 다운로드하세요: 여기를 클릭 (mesu.apple.com/data/OS/061-5816.20090224.At23V/2Z694-5587-18.dmg)
기본 커널을 이 스레드에 Andy 님이 올려주신 커널로 교체하고, 기본 Leopard Kext들을 모두 복사해 넣되 System.kext와 IPFirewall.kext는 반드시 Andy 님의 패키지 안에 동봉된 버전을 사용하세요. 그리고 기본 Extensions 폴더 안에 들어 있는 워치독(Watchdog) Kext를 삭제합니다. 마지막으로 디스크 권한 복구를 적용한 뒤 부팅을 시도하시면 됩니다.. 기본적인 절차는 이게 전부입니다. 재미있게 실험해 보세요!
AMD와 Intel 호환성 여부에 대해서는... 저도 확실히는 모르겠습니다만, 커널 자체가 Andy 님의 Voodoo 기반 커널 소스를 바탕으로 빌드되었으니 양쪽 모두에서 잘 작동할 것으로 추측합니다.
디스크 이미지를 마운트했는데 워치독(watchdog) Kext가 보이지 않네요. 혹시 추가로 필요한 정보나 절차가 더 있나요? 꼭 한 번 직접 돌려보고 싶습니다.
추가(EDIT): 아, 신경 쓰지 마세요. 이제 찾았습니다. 그럼 기본적으로 우리가 평소 쓰는 Leopard Kext들을 그대로 덮어씌우기만 하면 끝이라는 말씀이시죠? 생각보다 꽤 간단하네요.
@Hara Taiki디스크 이미지를 마운트했는데 워치독(watchdog) Kext가 보이지 않네요. 혹시 추가로 필요한 정보나 절차가 더 있나요? 꼭 한 번 직접 돌려보고 싶습니다. 추가(EDIT): 아, 신경 쓰지 마세요. 이제 찾았습니다. 그럼 기본적으로 우리가 평소 쓰는 Leopard Kext들을 그대로 덮어씌우기만 하면 끝이라는 말씀이시죠? 생각보다 꽤 간단하네요.
네, 기본적으로 그게 다입니다. 재미있게 가지고 놀아보세요!
@NebKiwi네, 기본적으로 그게 다입니다. 재미있게 가지고 놀아보세요!
혹시 구체적인 작업 방법을 단계별로 자세히 적어주실 수 있나요?
저는 Apple 서버에서 DMG 이미지를 다운로드한 뒤 USB 플래시 드라이브에 복원했습니다.
그다음 OSBoot 파티션의 Kext 폴더에 제가 쓰던 Leopard Kext들을 복사해 덮어씌웠고, Andy 님의 mach_kernel, System.kext, IPFirewall.kext를 복사해 교체한 뒤 워치독 Kext를 삭제했습니다.
마지막으로 Chameleon EFI를 설치하고 권한 복구까지 마쳤습니다...
그런데 막상 부팅을 시도하면 "error parsing plist fileloading Darwin/x86"이라는 메시지가 뜬 뒤
곧바로 "errors encountered while starting up the computer"를 뿜으며 멈춰버립니다.
@NebKiwiApple 공식 서버에서 직접 원본 이미지를 다운로드하세요: 여기를 클릭 (mesu.apple.com/data/OS/061-5816.20090224.At23V/2Z694-5587-18.dmg) 기본 커널을 이 스레드에 Andy 님이 올려주신 커널로 교체하고, 기본 Leopard Kext들을 모두 복사해 넣되 System.kext와 IPFirewall.kext는 반드시 Andy 님의 패키지 안에 동봉된 버전을 사용하세요. 그리고 기본 Extensions 폴더 안에 들어 있는 워치독(Watchdog) Kext를…
그럼 실제로 구동에 성공하신 건가요?
만약 성공하셨다면 작동하는 영상이나 사진 좀 올려주실 수 있나요?
저도 지금 직접 시도해 보려는 참입니다.
추가(Edit):
방금 제 메인 시스템을 완전히 날려먹은 것 같습니다...
이번 주에만 벌써 두 번째네요.
새 파티션을 하나 만들고 거기에 OSBoot 이미지를 복원했습니다.
그다음 모든 Extensions를 교체하고 워치독을 삭제한 뒤 AnV AppleTV 커널을 넣었습니다.
그리고 시스템을 부팅하려고 했더니 화면에 달랑
boot0: done 메시지만 뜬 뒤 PC가 무한 재부팅되더군요...
설치 DVD로 부팅해서 새로 만든 AppleTV 파티션을 지워봤지만, 이제는 기존 OS X 하드 디스크로 부팅할 때 메모리 할당 에러(Memory allocation error)를 뿜으며 부팅이 안 됩니다...
하드 디스크의 Chameleon 부트로더만 다시 복구할 수 있는 방법이 있을까요?
최신 버전을 사용하고 있었습니다...
도와주세요, 감사합니다!
OSBoot 파티션의 Extensions 폴더에 새로 추가한 Kext들의 권한(Permissions) 설정은 어떤 명령어로 어떻게 적용해야 하나요?
@pαuℓzurrr.그럼 실제로 구동에 성공하신 건가요? 만약 성공하셨다면 작동하는 영상이나 사진 좀 올려주실 수 있나요? 저도 지금 직접 시도해 보려는 참입니다. 추가(Edit): 방금 제 메인 시스템을 완전히 날려먹은 것 같습니다... 이번 주에만 벌써 두 번째네요. 새 파티션을 하나 만들고 거기에 OSBoot 이미지를 복원했습니다. 그다음 모든 Extensions를 교체하고 워치독을 삭제한 뒤 AnV AppleTV 커널을 넣었습니다. 그리고 시스템을 부팅하려고…
제발 누가 좀 도와주세요!
급한 대로 USB 파티션에 OS X를 임시로 설치해서 내장 하드 드라이브에 접근하는 데까지는 성공했는데, 정작 메인 파티션이 마운트되질 않습니다! 디스크 유틸리티에서 검사 및 복구(First Aid)를 실행하라는 에러가 떠서 돌려봤더니 다음과 같은 에러가 나옵니다:
Verifying volumes "disk0s2"
** /dev/disk0s2
Invalid BS_jmpBoot in boot block: fa31c0
Error: File system verify or repair failed.
이 하드 디스크 안에 있는 제 소중한 데이터들을 살릴 수 있는 방법이 아직 있을까요?
혹시 패치된 AppleTV 2.3.1 버전의 Finder 바이너리 파일을 보내주실 수 있는 분 계신가요?
추가 커뮤니티 필드 노트 4건 펼치기전체 아카이브 기록
Well my hdd was ----ed up and i needed to write zero's to make it work again...
So warning to all, Don't Install On Same HDD as you're running install...
ok, i've patched the appletv finder and managed to boot to the itunes pairup screen.
but i have no way of controlling it
the keyboard and mouse won't work
@alexkiddok, i've patched the appletv finder and managed to boot to the itunes pairup screen. but i have no way of controlling it the keyboard and mouse won't work
You need to install the remote emu by Brandon Holland:
brandon holland.com/irkeyboardemu.html
This will allow you to control aTV with a USB keyboard
have any one tried appletv os 2.4 ?
it seems that they have added some checks to prevent non atv hardware to sync with itunes.
hopefully someone will come out with a patch.
출처 및 기여자 이력 (등록된 기여자 8명 · 원본 스레드 #2738)
| 사용자명 | 기여 역할 | 게시물 수 | 활동 기간 |
|---|---|---|---|
| @andyvand | 핵심 기여자 | 15 | 2009-05-04 → 2009-05-10 |
| @NebKiwi | 주 저자 | 12 | 2009-05-01 → 2009-05-17 |
| @alexkidd | 핵심 기여자 | 6 | 2009-05-18 → 2009-08-06 |
| @naquaada | 핵심 기여자 | 5 | 2009-05-01 → 2009-05-08 |
| @pαuℓzurrr. | 핵심 기여자 | 4 | 2009-05-17 → 2009-05-20 |
| @cmdshft | 핵심 기여자 | 3 | 2009-05-01 → 2009-05-17 |
| @milanca | 기여 멤버 | 2 | 2009-05-10 |
| @BlackCH | 기여 멤버 | 1 | 2009-05-21 |