Tag Archives: Hackin

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

[Hackin] Atheros 무선랜 카드 안잡힐 때 설정 방법

해킨등을 사용하시는 경우에 무리해서 Atheros무선랜 카드로 교체하시는 분이 많은데요, 교체 이후에 바로 잡히 지 않을 경우에 설정 방법입니다.

우선 윈도우로 부팅하여(대부분 듀얼 부팅으로 사용하실꺼라 생각합니다) 장치관리자 – 무선랜카드 – 자세히에 들어갑니다.

속성의 하드웨어 ID를 보시면 아래와 같은 정보를 얻을 수 있습니다.

사용자 삽입 이미지VEN뒤의 숫자와 DEV뒤의 숫자를 잘 기억해 둡시다.

/System/Library/Extensions/IO80211Family.kext/Contents/PlugIns/AirPortAtheros.kext/Contents/Info.plist

파일을 열어 수정합니다. 수정 권한이 없을 경우 sudo vi Info.plist 와 같이 명령을 주시면 됩니다.

[code]<dict>
        <key>Atheros Wireless LAN PCI</key>
        <dict>
                <key>CFBundleIdentifier</key>
                <string>com.apple.driver.AirPort.Atheros</string>
                <key>IOClass</key>
                <string>AirPort_Athr5424ab</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>
                        <string>pci168c,1014</string>
                </array>
                <key>IOProviderClass</key>
                <string>IOPCIDevice</string>
        </dict>
</dict>[/code]
위와 같이 아까전에 알아낸 값을 추가해 줍니다. 이후에 다음의 명령으로 시스템 복구를 하면 정상적으로 사용가능합니다.

무선랜 클라이언트쪽 시스템 업데이트후에 무선랜이 사라지게 되면 마찬가지로 추가해 주시면 문제없이 잘 됩니다.

[code]$ sudo -s
# diskutil repairpermissions /
# rm /System/Library/Extensions.mkext
# kextcache -k /System/Library/Extensions/
# reboot[/code]