Manual/해킨토시

7. 문제 해결 및 목표 달성

공피 2012. 10. 6. 00:59

 I. 문제 해결

 

[각주:1] 1. Boot 132 부팅로더 부팅 불가 해결

 

가장 처음 만나 Boot 132 부팅로더 USB 디스크를 통해 부팅 했을때, 해당 부팅로더가 작동하지 않고 검은색 화면만 출력되는 상황이다. 이 경우 많은 사람들이 USB 디스크를 다시 제작해보거나 심지어 USB 디스크를 다시 사는 경우까지 볼 수가 있다.

 

그런데 생각보다 원인이 간단한 곳에 있을 수도 있는데, 부팅로더는 재시작 상황에서 동작을 안하는 경우가 있다. 이 때문에 재시작 상황에서 단지 종료를 하고, 그 다음 다시 파워 버튼을 눌러 전원을 인가하는 방식으로 재부팅 한다면 부팅로더가 출력되는 상황이 나온다.

 

 

다양한 사용 환경에서 테스트를 해본 것이기 아니기 떄문에 부팅로더 미출력 문제가 반드시 이 문제라고 보기는 어렵다.

 

Boot 132 부팅로더를 제대로 제작했다고 가정한 경우이다. 제작 방식 자체가 틀렸다면 그 부분에서부터 문제를 해결해야 한다.

 

 

 

[각주:2] 2. 초기 부팅 불가 해결

 

 

OSX가 설치된 해당 파티션으로 부팅을 했을 때 위와 같은 화면에서 무한하게 멈추어 있거나, 이 화면 뒤에 컴퓨터가 꺼지는 증상이 곧잘 일어난다. 부팅 옵션으로 -v 값을 주게 되면 부팅 관련 정보를 메시지로 얻을 수 있다. 대부분 부팅이 안 되는 이유에서 커널 패닉이라는 메시지를 출력한다.

 

사실 메시지를 봐도 그 원인을 정확하게 밝히기 어려운 경우가 많다. 위의 스크린샷은 바닐라 커널(mach_kernal) 파일을 범용 바닐라 커널(mach_kernal_test7)로 바꾸지 않아 나타난 무한 프리징 에러 증상이다.

 

아래는 부팅 불가 상황시 몇가지지 시도해봄 직한 작업들을 제시한다.

 

  1. OSX 이미지 종류를 바꾸어 재설치
    : 같은 리테일 버전이라도 추출 방식, 또 제조일에 따라 다양한 파일이 넷상에 돌고있다.
    Snow Leopard 리테일 이미지의 경우 다섯가지 정도를 테스트 해보았는데 모두 각각 성공 여부가 달랐다.

  2. Kext 파일 및 바닐라 커널의 교체
    : 설치 후 필수 Kext 파일을 OSX 설치 파티션에 삽입한다.
    바닐라 커널이 사용자의 CPU를 지원하지 않는다면 범용 바닐라 커널로 교체도 시도해봄직하다.

  3. OSX 설치시와 동일한 파티션 구성
    : OSX 설치시 외장하드가 꼽혀있는 상태였다면, 부팅할때도 외장하드를 그대로 꼽고 부팅한다.
    설치시와 동일한 환경을 구성해주면 성공률이 높은 걸 확인할 수 있었다.

  4. 부팅옵션의 다양한 시도
    : 부팅 옵션은 그 조합에 따라 다양한 시도가 가능하다.
    1, 2, 3번의 시도로 해결이 불가능한 경우 부팅 옵션에서 다양한 변수를 주어 부팅을 시도해 본다.

 

 

2-1. OSX 이미지 종류를 바꾸어 재설치

 

 

해당 리테일 버전을 모두 시도해본 결과 snowleopard_10a432_userdvd.dmg 리테일 이미지가 가장 성공률이 좋았던 것을 확인할 수 있엇다.

 

 

단, 이 부분은 변수가 사실 달라졌었던 부분이 있어서 좀 더 검증이 필요하다.

 

 

 

 

2-2. Kext 파일 및 바닐라 커널의 교체

 

 

 

Kext 파일의 추가와 바닐라 커널의 교체 모습

 

 

기존 오리지날 파일은 _ori를 붙여주어 작동해제 한다.

 

 

 

 

 

범용 바닐라 커널의 교체의 경우 OSX 이미지를 구운 USB 디스크에서도 해주어야 한다. 때문에 사실 이 작업을 더 먼저해야 한다.

 

 

모든 PC에서 그렇지는 않지만 바닐라 커널을 교체해주지 않을 경우 사과 모양 단계에서 넘어가지 않는 경우가 발생한다.

 

 

 

 

2-3. OSX 설치시와 동일한 파티션 구성

 

외장하드USB 디스크가 연결 된 상태에 따라서 부팅 성공 여부가 각각 다르게 나타났다. 사용자 컴퓨터마다 다른 부분이므로 충분한 시도후 성공 사례를 기억하는 걸 추천한다.

 

 

 

2-4. 부팅 옵션의 다양한 시도

 

 

위와 같이 카멜레온 부팅로더에서 해킨토시 파티션 선택후 입력 입력 전 단계에서 부팅 명령어를 줄 수가 있다.

 

cpus=2 arch=i386 maxmem=4096

 

CPU 코어 2코어로 제한하고 운영체제의 32비트 제한, 그리고 4GB로 제한하는 일종의 제한 명령어이다. 이렇게 함으로써 좀 더 맥에 가까운 환경을 만들고 시스템 부팅 성공률을 높인다.

 

기타 부팅 옵션은 아래와 같다.

 

-v: 진행상황을 메시지로 출력한다. 단지 메시지 출력 뿐만 아니라 부팅 성공 확률까지 증가시킨다.

-f: 캐쉬 파일의 실행을 억제하고 실행한다. 캐쉬 파일이란 부팅시 실행이 예약된 파일로 부팅 오류를 일으킬 수 있다.

-x: 싱글모드(안전모드로)로 실행한다. 다만 이 옵션을 넣을경우 프리징이 걸리는 PC가 있을 수 있다.

arch=i386: 32비트 제한모드를 걸어주어 부팅 성공률을 높인다.

cpu ratio = xxxx: CPU 배수에 관한 옵션으로 오버클럭 사용자들에게 권할만 하다.

graphics Enabler= YES / NO: 그래픽에러가 날 경우 시도해봄직한 옵션이다.

 

 


 

 

[각주:3] 3. 키보드 인식 에러 해결

 

 

최종적으로 부팅에는 성공했지만 키보드가 인식이 되지 않아 진행이 안 되고 있는 경우이다. 해킨토시의 경우 PS2 키보드는 호환성이 좋지 못하고 USB 키보드는 호환성이 좋다고 알려져있다.

 

사용중인 키보드가 USB 키보드였기에 믿음을 가지고 여러 경우의 수를 따져가며 시도를 해보았지만 위 항목에서 위와 같이 진행이 되지 않았다.

 

 

 

 

 

결국 PS2 키보드로 교체를 하였다.

 

 

 

 

 

 

OSX가 설치된 파티션의 /\Library\Extensions 폴더에 AppleACPIPS2Nub.kext, VoodooPS2Controller.kext 파일을 삽입하여 PS2 키보드 구동을 가능하게 한다.

 

 

 

 

 

키보드가 확인되면 위와 같은 화면이 출력된다.

 

 

 

 

 

 

 II. 목표 달성

 

 

 

이번 해킨토시 제작은 Snow Leopard 버전 OSX를 설치하여 10.6.8 버전까지 업그레이드 한 후 네트워크를 위한 인터넷(Airport)이 가능하도록 하며 화면 설정과 조정(QE/CI enable)이 가능하고 즐거운 사운드가 나오게까지 한다.

 

위는 이번 프로젝트의 목표였고, 현재까지는 설치하여 실행만 하는 사실상 절반의 성공만을 달성하였다. 현 Boot 132 + OSX 리테일 이미지 설치 방법은 더 이상 목표 달성에 있어 불가능한 방법이라고 판단한다. 리테일은 버전은 전반적으로 호환성이 좋다고 알려져 있지만 현 PC 같이 아이비브릿지 CPU 상황에선 또 다를 수 있는 문제이다.

 

또한 새로운 방식으로 시도했을 때 기존에 실수했거나 지나치는 문제에 대해서 새로운 실마리 교정 얻을 수 있다는 장점도 있다.


이후의 시도 방법은 배포판을 통한 설치로 노선을 변경한다.

 

  1. iATKOS_S3_V2

  2. Snow_Leopard_10.6.1-10.6.2_SSE2_SSE3_Intel_AMD_by_Hazard

 

 

 

Hazard 배포판의 경우 기존에 시도했고 실패한 방법이다. iATKOS 배포판의 경우 드라이버 설치까지 성공 사례가 많이 보고 되고 있기 때문에 이 방법으로 최우선 시도를 하여본다.

 

앞으로 추가로 보완해야 할 분야는 아래와 같다.

 

  1. 부팅 옵션에 대한 다양한 시도

  2. DSDT에 관한 심층적 이해

  3. 드라이버권한에 관한 이해

  4. 하나의 물리디스크에서 윈도우와 OSX를 구성하는 방법

  5. LION 버전 이상 OSX로 시도했을 때 성공 여부

 

 

이상으로 본 보고서를 마치며 작은 길잡이지만 해킨토시를 연구하는 사람들에게 있어 좋은 귀감이 되었으면 한다.

 

 

 

 

 

  1. Boot 132 부팅로더 부팅 불가 해결 [본문으로]
  2. 초기 부팅 불가 해결 [본문으로]
  3. 키보드 인식 에러 해결 [본문으로]