Tag Archives: 매킨토시

X61에 스노우레오파드(Snow Leopard) 완벽 설치하기

* 2010년10월25일 추가

각종 KEXT파일들을 설치해보고 가장 필요한 최소한의 KEXT만으로 정리하여 다시 올립니다.
DSDT를 적용할 경우 Atheros무선랜카드와 블루투스도 자동으로 잡히고 각종 자잘한 기능이 완벽하게 동작합니다. X3100그래픽 드라이버의 온도 센서를 지원하는 FakeSMC 최신버젼을 추가하였습니다. 사운드 드라이버도 가장 사용에 지장없는 괜찮은 버젼을 넣었습니다. 이 글대로 설치해 보시면 정말 완벽하게 동작하는 맥을 만나실 수 있습니다.

예전에 작성했던 iPC OSx86 10.5.6 Universal Final을 X61에 설치하기의 경우 레오파드 계열의 가장 설치하기 쉽고 리테일에 가깝게 동작하는 배포본이었습니다. 하지만 요즘의 아이폰 관련 개발들을 해볼려 치면 SDK부터 스노우레오파드가 아니면 설치조차 할 수 없게 되었죠.

X61에 스노우레오파드를 설치해볼려는 노력은 몇번 해보았지만 기존의 상식으로는 생각보다 완벽하게 돌릴수가 없었습니다. 그러던중 InfiniteMac이라는 사이트에 올라온 X61설치 방법을 보게 됩니다. 고생끝에 꽤 간단하게 설치를 완료하였고 필요한 kext들을 설치하다 보니 거의 완벽에 가까운 맥이 완성되었습니다. 그 방법을 정리해 보겠습니다.

주의! 다음의 내용은 해킨 설치 경험자가 아니라면 따라하기 힘든 내용입니다.

* 준비물

Lenovo Thinkpad X61, 맥을사용중인 다른 PC/노트북, 노트북 분해용 드라이버(Vessel-9900추천), Snow Leopard 리테일 이미지, SATA to USB케이블, 추가 KEXT 파일들

* 설치 순서
1. X61의 중요한 데이터들을 백업합니다. 이후 드라이버를 이용하여 HDD를 분리합니다. 풀어야 할 나사는 1개입니다.

2. 분리한 디스크를 맥을 사용중인 다른 PC에 마운트 합니다. 다른 PC가 맥북이라면 SATA to USB 케이블등을 이용하여 연결해야 합니다.

3. 연결한 HDD를 GUID방식으로 파티션을 설정해 줍니다. (테스트해본결과 MBR에서도 잘 되는군요)

4. Snow Leopard 이미지를 마운트합니다. 이후에 /System/Installation/Packages/OSInstall.mpkg를 실행합니다. 이 실행파일은 마운트한 이미지내의 경로입니다. 숨겨진 디렉토리라서 찾을 수 없을 경우 터미널을 이용하도록 합시다. 마운트 위치는 /Volume 이하입니다. 터미널에서 실행하실경우 open명령을 사용하시면 됩니다.

5. 정상적으로 실행이 되면 설치가 시작됩니다. 연결한 HDD로 OS를 설치하도록 합니다.

6. 다음의 Kext들을 /System/Library/Extensions와 /Extra 안으로 설치하여 주도록 합시다. 이때에 새로운 사운드 드라이버와 충돌이 날 수 있으니 기존의 AppleHDA.kext 를 삭제해주어야 합니다.

1149322248.tgz
7. Atheros 무선랜카드를 사용할 경우 Kext파일중 AtherosFix.kext 파일안의 Info.plist파일에 자신의 PCI값을 넣어주도록 합시다. [참고]

[code]<dict>
  <key>Atheros i386</key>
  <dict>
   <key>CFBundleIdentifier</key>
   <string>com.apple.driver.AirPort.Atheros</string>
   <key>IOClass</key>
   <string>AirPort_AthrFusion</string>
   <key>IOMatchCategory</key>
   <string>IODefaultMatchCategory</string>
   <key>IONameMatch</key>
   <array>
      <string>pci106b,0086</string>
      <string>pci168c,1c</string>
      <string>pci168c,23</string>
      <string>pci168c,24</string>
   </array>
   <key>IOProbeScore</key>
   <integer>65000</integer>
   <key>IOProviderClass</key>
   <string>IOPCIDevice</string>
  </dict>
  <key>Atheros x86_64</key>
  <dict>
   <key>CFBundleIdentifier</key>
   <string>com.apple.driver.AirPort.Atheros21</string>
   <key>IOClass</key>
   <string>AirPort_AthrFusion21</string>
   <key>IOMatchCategory</key>
   <string>IODefaultMatchCategory</string>
   <key>IONameMatch</key>
   <array>
      <string>pci106b,0086</string>
      <string>pci168c,1c</string>
      <string>pci168c,23</string>
      <string>pci168c,24</string>
   </array>
   <key>IOProbeScore</key>
   <integer>60000</integer>
   <key>IOProviderClass</key>
   <string>IOPCIDevice</string>
  </dict>
 </dict>[/code]
8. Kext 설치가 어렵다면 다음의 KextUtility를 활용합니다. 64비트에서도 잘 동작합니다^^
1250278107.zip
9. 다음의 명령을 사용하여 퍼미션을 복구하여 줍니다.
[code]# sudo chown -R
# root:wheel /Volumes/YOUR_PARTITIONS_NAME/System/Library/Extensions/*
# chmod -R 755 /Volumes/YOUR_PARTITIONS_NAME/System/Library/Extensions/*[/code]
10. 해킨토시를 정상적으로 부팅하기위하여 카멜레온 부트로더를 설치하여줍니다. 여러가지를 써봤는데 잘 안되더군요. 다음은 잘 됩니다.
1196104889.gz
11. 카멜레온부트로더의 설치는 i386폴더 이하에서 이루어집니다. 다음의 명령을 사용합니다.

[code]// # diskutl list 명령을 이용하여 확인한 OS가 설치된 파티션이 /dev/disk0s2 일때
// boot0를 MBR에 설치
# sudo fdisk -f boot0 -u -y /dev/rdisk0

// boot1h를 파티션의 부트섹터에 설치
# sudo dd if=boot1h of=/dev/rdisk0s2

// boot를 파티션의 루트 디렉토리에 설치
# sudo cp boot /Volumes/YOUR_PARTITIONS_NAME/[/code]
12. /Volumes/YOUR_PARTITIONS_NAME/Extra 디렉토리를 만들어 주고 Optional Extras안에 있는 smbios.plist 파일을 복사하여 넣어줍니다.

13. 마찬가지로 Extra 디렉토리안에 com.apple.Boot.plist 파일을 생성하여 주고 아래의 내용을 넣어줍니다.

[code]<?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE plist PUBLIC “-//Apple Computer//DTD PLIST 1.0//EN”
 “http://www.apple.com/DTDs/PropertyList-1.0.dtd“>
<plist version=”1.0″>
<dict>
        <key>Kernel</key>
        <string>mach_kernel</string>
        <key>Kernel Flags</key>
        <string></string>
        <key>GraphicEnabler</key>
        <string>Yes</string>
        <key>USBBusFix</key>
        <string>Yes</string>
        <key>GUI</key>
        <string>No</string>
        <key>Timeout</key>
        <string>5</string>
        <key>arch</key>
        <string>i386</string>
</dict>
</plist>[/code]

* 완료후 소감
위와 같은 과정을 거친후 HDD를 다시 X61에 연결하여 부팅해 보면 정상적으로 부팅이 되는것을 볼 수 있습니다. 위의 경우 i386이라는 옵션을 주어 32비트 모드로 부팅하도록 하고 있는데요, 안타깝게도 X61의 그래픽카드는 32비트용 드라이버밖에 지원하지 않아 64비트로 부팅을 하게되면 그래픽카드 드라이버를 잡지 못하는 문제가 발생합니다.

첫부팅시에 Kext 캐시들이 존재하지 않아 정상적으로 드라이버가 로드되지 못할 경우가 있습니다. 이경우엔 부팅시에 -f 옵션을주어 부팅하게 되면 모든 드라이버를 강제로 읽어 새로 캐시를 생성하게 됩니다. 한번만 이 옵션을 주어 부팅하고 나면 또 사용할 필요가 없습니다.

만일 SleepEnabler가 문제를 일으켜 커널 패닉이 날 경우(현재 최신 버젼까지는 문제 없음) 부팅 옵션으로 pmVersion=0를 주면 무사히 넘어갈 수 있습니다. 이후에 SleepEnabler.Kext파일을 삭제 하시면 됩니다.

듀얼부팅 환경에서 각각의 OS들간에 시간이 꼬일경우 다음의 패치를 설치하여 주면 문제를 해결할 수 있습니다.
1393211659.pkg

[VMWare/Snow Leopard] VMWare 7.0을 이용한 스노우 레오파드 설치기

아이폰 개발을 공부하고 싶지만 맥이 없어 고민이신 분들이 많으실것으로 알고 있습니다. 해킨토시라는 방법도 있지만 접근이 매우 어렵죠. 이에 간단하게 공부 목적으로 사용하실 분들을 위해 VMWare로 돌리는 방법을 알아보려고 합니다. 가장 최근의 OS인 Snow Leopard 10.6.2까지의 업데이트도 매우 잘 됩니다.

* 준비물

VMWare Workstation 7.x 이상
Snow Leopard Retail 시디이미지

Snow Leopard Boot Loader + VMWare Tools 시디 이미지
1045868977.rar1014907866.rar1106206710.rar

VMWare Guest 패치
1266771358.pkg

VMWare 비디오/오디오 패치
1195876112.gz1012331931.gz


* 설치 과정

사용자 삽입 이미지새로운 가상 머신을 추가합니다. 특별한것 없이 대충 Recommend만 유지하면서 만들어주시면 됩니다. 단 OS선택에서는 FreeBSD 64-Bit를 선택해 줍니다. 메모리의 경우 제 노트북이 4G라서 2G정도로 잡아보았습니다.

중요!
이후에 생성된 이미지 파일중 VMware virtual machine configuration(.vmx) 파일을 열어 guestOS의 값을 다음과 같이 수정하여 줍니다.

[code]guestOS = “darwin10-64″[/code]
이제 시디 이미지로 darwin_snow.iso 파일을 마운트 해줍니다. 이 시디로 부팅을 하는데 부팅시에 F8을 눌러 부팅 옵션을 띄우도록 합니다.

사용자 삽입 이미지위와 같은 화면이 뜨게 됩니다. 이 상태에서 스노우 레오파드 리테일 이미지를 마운트 해주도록 합시다. 오른쪽 하단의 시디롬 아이콘이 활성화 되어있어야 시디롬이 정상적으로 마운트 된것입니다. 시디를 바꾸어 주었다면 c를 눌러줍니다.

사용자 삽입 이미지이번엔 시디 부팅 화면이 나옵니다. 이상황에서 그냥 엔터만 쳐서 설치하셔도 상관없습니다만 혹시 무한 재부팅이 된다거나 에러가 발생할 경우 위와 같이 옵션을 설정해 주도록 합니다.

boot: -v -f -x cpus=1 busratio=20

사용자 삽입 이미지위의 화면이 떴다면 절반의 성공입니다. 설치 과정이나 디스크 설정 부분에 대해서는 충분히 자료가 많으니 넘어가도록 하겠습니다.

사용자 삽입 이미지설치가 완료된 후의 모습입니다. 정상적으로 뜬 것을 알 수 있습니다. 여기서부터 VMWare 활용에 필요한 것들을 설치하도록 하겠습니다.

* 부가 설치

1. darwin_snow.iso 파일을 마운트 하면 VMWare Tools 설치가 뜹니다. 이것을 설치해 줍니다.
2. guestd_patches.pkg 파일을 설치해 줍니다.
3. VMsvga, EnsoniqAudioPCI 드라이버를 설치해 줍니다.

* 부팅에 대한 참고 사항

이렇게 설치를 완료하였지만 darwin_snow.iso의 도움이 없이는 부팅이 되지 않습니다. 이 파일을 시디롬 이미지로 마운트 해놓으면 자신이 알아서 자동으로 OS를 로드합니다. 필요한 최소한의 Kext파일도 모두 알아서 로드하기 때문에 따로 해킨을 위한 작업이 없어도 됩니다. 어찌보면 편하죠. 업그레이드 등도 매우 잘 됩니다.

사용자 삽입 이미지이제 아이폰 SDK를 설치하신 후 개발 공부를 시작하시면 됩니다. ^^