초보를 위한 kext 관련 팁

February 04,2009                      hit:(8229)

.kext 에 관하여...



최근들어 해킨에 관심을 갖고 새로 도전하시는 분들이 많아지고 있음을 느낌니다. 각종 질문들이 많아지고 있고요. 저도 초보지만 초보적인 관점에서 kext에 관한 팁을 하나 만들어보고자 했습니다. 저도 사실 제대로 이해하는것이 아니라서 혹시 수정이나 보충설명이 필요하다 느끼시는 부분들에 대해 고수님들과 여타 회원님들께서 지적해주시면 감사하겠습니다.



일단 설명의 줄기는 x86project.org/wiki/index.php/Hardware_.kext_Patching_List에서 target=_blank>http://wiki.osx86project.org/wiki/index.php/Hardware_.kext_Patching_List에서 발췌했습니다.

또 니키님(http://x86osx.com/bbs/view.php?id=osxtips&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=reg_update&desc=desc&no=472)의 권한복구 등을 인용했구요.



Quote:UPDATE

눈에 띄이길래...약간의 추가 설명을 더해습니다. 켁스트의 설치가 사실 리얼맥에서는 디스크유틸리티의 권한복구를 이용해서 간단히 설치가 된다는 고수님의 얘기가 있었습니다. 그래서 좀더 설명을 들춰보니까...하는 말씀이 해킨에선 디스크유틸리티의 권한복구로 켁스트설치가 불가능하기 때문에 이 아래에 나오는 설치방법을 써야한다고 하더군요. 그래서 우리가 삽질을 하는 것이다라는 말씀이었습니다...






1. .kext 패치



".kext"란 MAC OSX 시스템의 하부구조라고 볼 수 있는 "kernel extensions" 입니다. 일종의 '장치드라이버'라고도 볼 수 있지만 맥에선 커널 확장자로 불립니다.



".kext"는 단일 파일이 아닙니다. 파일 디렉토리 구조를 갖고 있는 집합체이며 서브폴더에 위치한 파일들과 함께 시스템 커널을 지원하는 확장자의 역할을 하는 것입니다. (예, 마우스 커서로 kext 파일을 우클릭한 다음 show package contents를 선택하면 그 내용물을 확인할 수 있습니다.)



리얼 맥에서는 신경쓸일이 없지만 해킨에서는 자신의 하드웨어 사양에 맞는 해당 ".kext"의 설치가 요구되고요, 하드웨어가 변경됐을 경우  "패치" 작업이 필요한 것입니다.



kext 의 위치는 System/Library/Extensions 입니다.



OSX 업데이트 후 이상 증세가 발견된다면 이전 버젼에서 정상 작동하던 해당 ".kext"를 재설치하는 것으로 해결하실 수 있고요. 아니면, ".kext" 내부에 있는 "info.plist" 의 수정을 통해 문제를 해결할 수도 있습니다.



"info.plist"는 PNP(plug-and-play)형식의 디바이스 아이디 코드로 나타나는 정보이며 따라서 ".kext" 패치가 요구될때 이 디바이스 아이디를 변경해주는 방법으로 같은 효과를 볼 수 있습니다.



".kext"파일을 같은 경로에 복사, 삽입할 경우 반듯이 "권한 복구" (Repair Permission) 작업이 따라줘야 변경된 ".kext"가 제대로 설치됩니다.



2. ".kext" 설치:  그 진행 과정은 Copy>Paste>Repair Permission 순입니다. 다시 말하자면 kext는 사실 설치라기 보다 카피>패이스트>권한복구의 절차를 거치는 것으로 패치가 된다고 보시면 됩니다. 권한복구는 즉, 변경된 kext를 활성화시켜주는 것입니다.



a. 터미널을 이용한 수동설치 ( by : http://x86osx.com/bbs/view.php?id=osxtips&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=reg_update&desc=desc&no=472)



터미널을 여신후 sudo -s, password 입력후 다음처럼 따라하시면 됩니다.



chmod -R 755 /System/Library/Extensions/aaa.kext 엔터(aaa.kext는 해당 kext 이름...되도록 대소문자도 구별하시는게 좋습니다.)

chown -R root:wheel /System/Library/Extensions/aaa.kext 엔터



하시면 일단 기본적인 권한은 설정 됩니다.

그런후

kextload -t /System/Library/Extensions/aaa.kext 엔터

해서 권한을 설정한 kext 파일을 제대로 로딩되는지 확인해보시구요.(여기서 성공이라는 메세지가 나와야합니다.)

모든 kext 파일의 권한을 다 설정했다면

exit 엔터후 Reboot하시면 됩니다.



b. kexthelper, OSXTools, kextutility: 이 세가지 어플은 자료실에 있습니다. 따라서 다운받아서 간단하게 kext 파일을 설치할 수 있습니다. 단, 중요한 점이 있습니다. 이 자동 설치 소프트웨어를 설치해도 설치됐다 풀리는 경우도 있고 제대로 설치가 안되는 경우가 있습니다. 따라서 (a.) 님의 팁을 꼼꼼히 읽고 수동설치법을 수행하는게 가장 좋은 방법임을 추천합니다.



c. info.plist 수정: 해당 kext를 클릭해서 contents 보기 (마우스 우클릭 선택)를 하면 info.plist 를 볼 수  있습니다. 이 파일을 복사해서 데스크톱으로 옮긴 후 texteditor로 수정후 재복사, 덮어씌우기를 합니다.

info.plist 수정은 디바이스 아이디를 정확하게 찾아내고 바꿔줄 아이디를 정확하게 알고 있을때 사용할 수 있습니다. 역시 권한 복구가 필요합니다.



d. 권한복구 (Repair Permission) 방법



가장 쉬운 방법은 application/utility에 있는 disk utility를 사용하는 것입니다. 디스크유틸리티를 실행하시고 해당 하드볼륨을 선택하시고 권한복구(repair permisison)를 눌러주시면 됩니다.

또, 터미널을 이용한 방법으로는 터미널 여시고 sudo -s, password 한 후



chown -R root:wheel /System/Library/Extensions



또는 OSXtools의 Repair Permission을 이용하셔도 됩니다.



e. 터미널을 이용한 kext testing

이미 위 a.)에서 니키님이 설명해주신 것과 마찬가지입니다. 터미널 여시고 sudo -s, password 한 후



kextload -t /System/Library/Extensions/aaa.kext  (엔터)



또는



cd /System/Library/Extensions/aaa.kext/Contents/PlugIns/ (엔터)

kextload aaa.kext (엔터)



확인하시고 리붓



f.  터미널을 이용한 kext 상태확인



kextstat (엔터)

로드된 켁스트를 보여줍니다. 이 명령어를 이용해서 자신이 패치한 켁스트를 재삼 확인할 수 있거나 어디서 잘못됐나를 확인할 수 있습니다

comment : (0)

      [Save a Comment]

[Prev]
 LA
 SEOUL
   JP
   Mission Viejo, CA,
   United States
   THE GREEN FUSE (RSS 구독)
   LaymenBlog
   x86osx.com