x86 하드웨어 기반 Mac OS X 2008–2024 기술 아카이브
InfiniteMac OSx86 › OSx86 10.X 코어 아키텍처 및 부트 시스템 › Snow Leopard 재부팅 시 CMOS(BIOS) 초기화 현상 해결 방법 (DSDT…
332,582 reads · 2009-07-13 – 2010-04-01
검증 리포트 10.X 코어 아키텍처 DSDT

Snow Leopard 재부팅 시 CMOS(BIOS) 초기화 현상 해결 방법 (DSDT RTC 패치)

Snow Leopard(10.6)에서 재부팅할 때마다 메인보드의 CMOS(BIOS 설정)가 초기화되는 고질적인 버그를 해결하기 위해 DSDT의 Device (RTC) 섹션 내 IO Length 값을 0x04에서 0x02로 수정하는 방법입니다.

주 저자
@candykane 게시일: 2009-07-13
소속 컬렉션
OSx86 10.X 코어 아키텍처 및 부트 시스템
아카이브 기록 규모
누적 조회 332,582회 · 선별된 필드 노트 26건 (원본 게시물 32건에서 추출) · 2009-07-13 – 2010-04-01
참여 및 검증 멤버 (15)
@uman (9)@kizwan (8)@infinitek (2)@ariyako (2)@candykane@digital_dreamer@ariadri@mwgdrwg@dgandra@osxfr33k@MikeHunt79@Ianxxx@spalek83@SaCleoCheater@josefka
관련 하드웨어 참조
Workstation Coolers & Thermal Gear ↗ SATA III & NVMe SSDs ↗ USB 3.2 Boot Flash Drives ↗
한국어 전문 번역 기술 문서 · 터미널 명령어, Kext 파일명, ACPI 노드 및 부트 플래그는 원문 그대로 보존됩니다영문 원본 보기 (Original English) →

Snow Leopard 베타(및 정식 빌드)에는 재부팅할 때 메인보드의 CMOS 설정을 초기화해 버리는 아주 고약한 특성이 있습니다. 이 문제는 DSDT 파일을 수정하여 간단히 해결할 수 있습니다.

Device (RTC) 항목의 Length 값을 기본값인 0x04에서 0x02로 변경해 주면 됩니다.

Device (RTC)
{
  Name (_HID, EisaId ("PNP0B00"))
  Name (_CRS, ResourceTemplate ()
  {
     IO (Decode16,
     0x0070,             // Range Minimum
     0x0070,             // Range Maximum
     0x00,               // Alignment
     0x02,               // Length
     )
   })
}

커뮤니티 실측 및 기술 필드 노트

총 32개의 원본 스레드 응답 중 기술적 가치가 높은 26개의 필드 노트 수록

필드 노트 #1 @uman 2009-07-30

candykane 님,

현재 Leopard 10.5.6을 사용 중인데 제 DSDT 코드는 다음과 같이 되어 있습니다:

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (_CRS, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                        IRQNoFlags ()
                            {8}
                    })
                }

혹시 다음 사항들에 대해 알고 계신가요?

a. 제안해 주신 수정 사항을 Leopard에 그대로 적용해도 아무런 부작용이 없는지
b. Leopard 및 Snow Leopard에서 아래쪽의 IRQNoFlags 구문을 그대로 두어야 하는지 아니면 삭제해야 하는지?

필드 노트 #2 @digital_dreamer 2009-08-01

uman 님,
두 OS 모두에서 전혀 해가 되지 않습니다.
Length 값인 8은 2로 바꾸셔야 하지만, Leopard에서는 바꾸든 안 바꾸든 별다른 영향을 주지 않습니다.

그리고 IRQNoFlags 줄과 그 바로 다음 줄인 {8} 역시 함께 삭제해 주셔야 합니다.
혹시 Snow Leopard에서 커널 패닉(KP)을 겪고 계신가요? Leopard에서는 어떨지 모르겠지만, ASUS 보드에서 Snow Leopard를 구동할 때 이 부분 때문에 KP가 발생하는 것으로 잘 알려져 있습니다.

감사합니다,
MAJ

필드 노트 #3 @infinitek 2009-08-19

초보적인 질문이라 죄송합니다만, 다들 DSDT를 열어보고 수정할 때 어떤 툴을 사용하시나요…?

필드 노트 #4 @ariadri 2009-08-20

초보적인 질문이라 죄송합니다만, 다들 DSDT를 열어보고 수정할 때 어떤 툴을 사용하시나요…? appl elife.ru/poleznye_keksty_utility_i_solyusheny_dlya_osx86/9675/860.html#entry93244

이 앱에 dsdt.aml 파일을 드래그 앤 드롭하면 텍스트 편집기로 수정할 수 있는 dsdt.dsl 파일이 추출됩니다. 수정을 마친 뒤 다시 dsdt.dsl 파일을 앱 창으로 드래그해 넣으면 마법처럼 다시 dsdt.aml로 재컴파일해 줍니다 ^_^

필드 노트 #5 @mwgdrwg 2009-08-21

좋은 정보 감사합니다. 덕분에 CMOS 초기화 문제는 해결했습니다. 다만 여전히 커널 패닉이 떠서 아직 OS 부팅까지는 성공하지 못했네요…

필드 노트 #6 @dgandra 2009-09-05

제 DSDT의 Device (RTC) 섹션을 보면 Alignment 값이 0x04로 되어 있습니다. 첫 번째 본문 글에서는 candykane 님의 코드가 0x00으로 되어 있던데, 댓글들에서는 이 부분에 대해 아무도 언급하지 않으시네요. Alignment 값도 0x00으로 맞춰야 할까요, 아니면 원래 값 그대로 두면 될까요?

필드 노트 #7 @osxfr33k 2009-09-22

저 코드는 대체 어디에 넣어야 하나요? DSDT.dsl 파일의 맨 끝인가요, 아니면 중간인가요? 이 부분이 너무 헷갈립니다. 어디에 끼워 넣어야 할지 알 수 있게 앞뒤 코드를 조금만 함께 보여주실 수 있나요? 아니면 DSDT.dsl의 올바른 위치에 이 스크립트를 자동으로 패치해 주는 괜찮은 DSDT 패처 유틸리티가 있나요?

현재 DSDTSE를 쓰고 있는데 여러 해킹 패치 코드들이 별도의 에디터 창에 뜨다 보니, 메인 DSDT.dsl 편집 창의 어느 위치에 붙여넣어야 할지 도통 모르겠습니다.

게다가 제 DSDT에는 아예 RTC 항목 자체가 없는 것 같습니다. 그런데도 CMOS 초기화 문제는 전혀 발생하지 않거든요. 메인보드 특성 때문일까요? 보드는 Asus Maximus Formula (X38 칩셋)입니다.

필드 노트 #8 @MikeHunt79 2009-09-23

안녕하세요, 제 Acer Aspire One에서 추출한 RTC 섹션 코드입니다. 보시다시피 Length가 0x08로 되어 있는 곳이 두 군데인데, 양쪽의 Length 값을 모두 바꿔야 하나요?

                Device (RTC)
                {
                    Name (_HID, EisaId ("PNP0B00"))
                    Name (BUF0, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                    })
                    Name (BUF1, ResourceTemplate ()
                    {
                        IO (Decode16,
                            0x0070,             // Range Minimum
                            0x0070,             // Range Maximum
                            0x01,               // Alignment
                            0x08,               // Length
                            )
                   })
                    Method (_CRS, 0, Serialized)
                    {
                        If (LEqual (HPTS, One))
                        {
                            Return (BUF0)
                        }
                        Else
                        {
                            Return (BUF1)
                        }
                    }
                }
필드 노트 #9 @Ianxxx 2009-11-27

Device (RTC)
{
Name (_HID, EisaId ("PNP0B00"))
Name (ATT0, ResourceTemplate
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment 0x02, // Length <-- 이 부분만 수정하세요
)
})
Name (ATT1, ResourceTemplate
{
IO (Decode16,
0x0070, // Range Minimum
0x0070, // Range Maximum
0x00, // Alignment
0x04, // Length <-- 여기는 그대로 두세요
)

필드 노트 #10 @spalek83 2009-12-06

CMOS 초기화 수정 패치 (kext 방식)

k exts.com/view/151-cmos_reset_fix_%28via_kext%29.html

필드 노트 #11 @SaCleoCheater 2010-01-29

Snow Leopard용 CMOS DSDT 수정 코드는 원래 Apple이 실제 MacBook Air에서 사용한 방식입니다.

새로 만들어진 개조 코드가 아니라, 순정 맥의 구조에서 발견된 것입니다.

필드 노트 #12 @uman 2010-02-26

BuildSmart의 설명(http://netkas.org/?p=114#comment-45114 ↗ 참고)에 따르면, 원래 DSDT의 Length가 0x08이고 Alignment가 0x01로 되어 있다면 메인보드 제조사의 DSDT가 ASL 표준 규격을 제대로 따르고 있는 것이므로 굳이 값을 수정할 필요가 없다고 합니다.

값을 건드리지 않는 게 왜 중요하냐고요? Length를 0x02로 줄여 놓으면 10.6 및 10.6.1에서는 잠자기(Sleep) 기능이 잘 작동하지만, 10.6.2로 올라가면 오히려 잠자기 버그가 발생한다는 이야기를 들었기 때문입니다. InfiniteMac의 러시아 포럼 쪽에서 본 내용입니다.

혹시 확인해 주실 분 계신가요? 다음 주쯤에 노트북 CPU도 업그레이드할 겸 Snow Leopard로 넘어갈 예정이라, 그전까지 아무도 확인해 주시는 분이 없으면 제가 직접 테스트해 보겠습니다.

아, 그리고 팁을 하나 드리자면 본인 하드웨어 사양과 가장 비슷한 리얼 맥 모델의 순정 DSDT를 참고해서 비교해 보는 것이 정말 큰 도움이 됩니다...

필드 노트 #13 @kizwan 2010-02-26 ↳ Re: @uman
@umanBuildSmart의 설명(http://netkas.org/?p=114#comment-45114 ↗ 참고)에 따르면, 원래 DSDT의 Length가 0x08이고 Alignment가 0x01로 되어 있다면 메인보드 제조사의 DSDT가 ASL 표준 규격을 제대로 따르고 있는 것이므로 굳이 값을 수정할 필요가 없다고 합니다. …

제 Acer Aspire 9420 노트북은 최대 절전 모드(Hibernate) 진입을 시도할 때만 BIOS 초기화 현상이 발생합니다. 아직 10.6.2는 올려보지 않았는데, 말씀하신 내용은 10.6.2에서는 별도의 "CMOS 리셋 픽스" 없이도 제 노트북이 BIOS 초기화 없이 정상적으로 작동할 것이라는 뜻인가요? 참고로 Aspire 9420의 순정 DSDT 역시 ASL 표준 규격(0x08 / 0x01)을 따르고 있습니다.

kizwan

필드 노트 #14 @uman 2010-02-27 ↳ Re: @kizwan
@kizwan제 Acer Aspire 9420 노트북은 최대 절전 모드(Hibernate) 진입을 시도할 때만 BIOS 초기화 현상이 발생합니다. 아직 10.6.2는 올려보지 않았는데, 말씀하신 내용은 10.6.2에서는 별도의 "CMOS 리셋 픽스" 없이도 제 노트북이 BIOS 초기화 없이 정상적으로 작동할 것이라는 뜻인가요? 참고로 Aspire 9420의 순정 DSDT 역시 ASL 표준 규격(0x08 / 0x01)을 따르고 있습니다. kizwan

안녕하세요 kizwan 님--

제 노트북도 10.5.6에서 최대 절전 모드를 시도하면 바로 먹통이 됩니다. 질문하신 내용에 답하자면, 10.6에서 RTC 패치는 모든 BIOS에 다 필요한 것은 아니고 일부 BIOS에서만 필요합니다. 현재 Snow Leopard를 구동 중이신가요? DSDT에 RTC 패치를 적용하셨었나요?

제가 본 러시아 포럼 글에서는 10.6.2부터는 다시 Length 값을 0x08로 되돌려도 된다고 "암시"하고 있었습니다. 하지만 원래부터 Length가 0x08이었던 보드도 애초에 0x02로 바꿀 필요가 있었는지에 대해서는 명확한 답이 없더군요.

그래서 저도 그 부분을 확인해 보려던 참이었습니다. 어쨌든 조만간 직접 테스트해 보고 결과를 이곳에 공유하겠습니다.

필드 노트 #15 @kizwan 2010-02-27 ↳ Re: @uman
@uman제 노트북도 10.5.6에서 최대 절전 모드를 시도하면 바로 먹통이 됩니다. 질문하신 내용에 답하자면, 10.6에서 RTC 패치는 모든 BIOS에 다 필요한 것은 아니고 일부 BIOS에서만 필요합니다. 현재 Snow Leopard를 구동 중이신가요? DSDT에 RTC 패치를 적용하셨었나요? …

이전에 10.6.0과 10.6.1을 테스트해 봤었습니다. 그때 RTC 패치도 적용해 봤는데, 확실히 최대 절전 모드로 들어갈 때마다 발생하던 BIOS 초기화 문제를 완벽히 잡아주더군요.

오늘 밤에 노트북을 가져오면 제 Acer Aspire 9420에서 RTC 패치를 뺀 상태로 10.6.2를 한번 테스트해 보겠습니다.

kizwan

필드 노트 #16 @uman 2010-02-28

10.6.2 테스트에 나서주셔서 감사합니다. 저는 ICH9/10용으로 나온 종료/재시동 및 잠자기 DSDT 패치들이 ICH7에서도 그대로 작동할지 검증하느라 ICH7 데이터시트와 ACPI 프로그래머 초안 문서를 한창 파고들고 있었습니다. 이번 주 안으로 Snow Leopard를 설치해 볼 생각인데, 마침 주문한 Core 2 Duo CPU가 도착해서 먼저 Leopard 환경에서 CPU 업그레이드부터 테스트해 보려고 합니다.

필드 노트 #17 @kizwan 2010-03-01 ↳ Re: @uman
@uman10.6.2 테스트에 나서주셔서 감사합니다. 저는 ICH9/10용으로 나온 종료/재시동 및 잠자기 DSDT 패치들이 ICH7에서도 그대로 작동할지 검증하느라 ICH7 데이터시트와 ACPI 프로그래머 초안 문서를 한창 파고들고 있었습니다. 이번 주 안으로 Snow Leopard를 설치해 볼 생각인데, 마침 주문한 Core 2 Duo CPU가 도착해서 먼저 Leopard 환경에서 CPU 업그레이드부터 테스트해 보려고 합니다.

안녕하세요 uman 님,

10.6.2에서 여러 차례 테스트와 재부팅을 거치고 키보드 먹통, 커널 패닉 등 온갖 삽질을 해 본 결과, 여전히 RTC 디바이스의 Length 값을 0x08에서 0x02로 변경해 주어야 한다는 결론을 얻었습니다. 수정하지 않으면 잠자기(hibernatemode 3) 이후 컴퓨터를 재시작할 때 어김없이 BIOS 초기화가 발생하네요.

지금은 무선 랜카드 문제로 막혀 있는 상태입니다. 잠자기에서 깨어난 뒤에 무선 랜이 다시 켜지질 않네요.

kizwan

필드 노트 #18 @uman 2010-03-01

고생 많으셨습니다! 직접 테스트해 주셔서 정말 감사합니다. 결국 BuildSmart의 말이 틀렸던 모양이네요!

저는 CPU 업그레이드를 무사히 마쳐서 이제 64비트 Snow Leopard에 도전해 볼 수 있게 되었습니다.

다만 요즘 순정 리테일(Vanilla Retail) 설치 기법들이 워낙 빠르게 바뀌다 보니 정신이 하나도 없네요. 혹시 최근 기준으로 작성된 깔끔한 리테일 Snow Leopard 설치 가이드 추천해 주실 만한 게 있을까요? Chameleon RC4를 사용할 생각이고, 가급적 숨김 영역인 EFI 파티션에 부트로더를 구성하고 싶습니다.

현재 본체에는 Leopard가 깔려 있고, Snow Leopard를 설치할 새 하드 드라이브와 외장 USB 하드 케이스가 준비되어 있습니다.

제 생각에는 현재 구동 중인 Leopard 하드에 리테일 DVD를 dmg 이미지로 복원한 다음, USB 외장 케이스에 넣은 새 하드에 설치를 진행하고, 각종 kext들과 Chameleon, 그리고 SL용 DSDT를 심어준 뒤 USB 하드로 부팅 테스트를 해 보면 될 것 같습니다. 모든 게 정상 작동하면 그때 내장 하드와 교체 장착하고 기존 하드에서 데이터를 마이그레이션하면 되겠죠.

이 절차대로 진행하면 맞을까요?

필드 노트 #19 @kizwan 2010-03-01 ↳ Re: @uman
@uman… 다만 요즘 순정 리테일(Vanilla Retail) 설치 기법들이 워낙 빠르게 바뀌다 보니 정신이 하나도 없네요. 혹시 최근 기준으로 작성된 깔끔한 리테일 Snow Leopard 설치 가이드 추천해 주실 만한 게 있을까요? Chameleon RC4를 사용할 생각이고, 가급적 숨김 영역인 EFI 파티션에 부트로더를 구성하고 싶습니다. 현재 본체에는 Leopard가 깔려 있고, Snow Leopard를 설치할 새 하드 드라이브와 외장…

가능하시다면 리테일 DVD를 dmg 파일로 뜨는 대신, 디스크 유틸리티를 이용해 현재 사용 중인 하드에 새 파티션을 하나 작게 나누어 그곳에 리테일 DVD를 바로 복원(Restore)하시는 건 어떨까요? 파티션 크기는 클 필요도 없고 리테일 DVD 용량이 8GB 미만이니 8GB 정도면 충분합니다.

그런 다음 현재 부트로더를 Chameleon 2 RC4로 업그레이드하세요. 기존 10.5용 kext 파일들을 덮어쓰지 않고 10.6용 kext들을 공존시키는 폴더 구조는 다음과 같습니다:-

Extra/10.5/Extensions Extra/10.5/Extensions.mkext Extra/10.6/Extensions Extra/10.6/Extensions.mkext

물론 이 구조는 이미 잘 알고 계시리라 생각합니다. 이렇게 구성해 두면 기존 Leopard로도 언제든 안전하게 부팅할 수 있습니다.

마지막으로 재부팅한 뒤 부트로더 메뉴에서 "Mac OS X Install DVD" 파티션을 선택해 새 하드 드라이브에 Snow Leopard를 설치하시면 됩니다.

참고로 이유는 모르겠지만 제 환경에서는 Chameleon RC4 패키지에 포함된 "boot" 파일을 쓰면 OSX 파티션 선택 직후 화면이 그대로 멈춰버리더군요. 그래서 저는 netkas.org에서 내려받은 PC EFI 10.6의 "boot" 파일로 교체해서 해결했습니다.

kizwan

필드 노트 #20 @uman 2010-03-01 ↳ Re: @kizwan
@kizwan가능하시다면 리테일 DVD를 dmg 파일로 뜨는 대신, 디스크 유틸리티를 이용해 현재 사용 중인 하드에 새 파티션을 하나 작게 나누어 그곳에 리테일 DVD를 바로 복원(Restore)하시는 건 어떨까요? 파티션 크기는 클 필요도 없고 리테일 DVD 용량이 8GB 미만이니 8GB 정도면 충분합니다.

그 복원용 파티션도 부팅 가능한(bootable) 파티션이어야 하죠?

@kizwan그런 다음 현재 부트로더를 Chameleon 2 RC4로 업그레이드하세요. 기존 10.5용 kext 파일들을 덮어쓰지 않고 10.6용 kext들을 공존시키는 폴더 구조는 다음과 같습니다:- 물론 이 구조는 이미 잘 알고 계시리라 생각합니다. 이렇게 구성해 두면 기존 Leopard로도 언제든 안전하게 부팅할 수 있습니다.

현재 하드 드라이브에 깔라고요? 왜 굳이 기존 구형 하드에 Chameleon을 설치해야 하는지 잘 이해가 안 됩니다. 혹시 기존 Leopard 시스템을 새 하드로 그대로 복제해서 넘길 거라고 생각하신 건가요? 지금 깔린 Leopard는 리테일이 아니라 시스템 파일이 잔뜩 개조된 iPC 배포판이라 그대로 넘기고 싶지는 않거든요.

@kizwan마지막으로 재부팅한 뒤 부트로더 메뉴에서 "Mac OS X Install DVD" 파티션을 선택해 새 하드 드라이브에 Snow Leopard를 설치하시면 됩니다.

SL 설치 프로그램이 실행되면 USB 외장 케이스에 들어 있는 새 하드 드라이브에도 바로 설치가 가능한가요?

@kizwan참고로 이유는 모르겠지만 제 환경에서는 Chameleon RC4 패키지에 포함된 "boot" 파일을 쓰면 OSX 파티션 선택 직후 화면이 그대로 멈춰버리더군요. 그래서 저는 netkas.org에서 내려받은 PC EFI 10.6의 "boot" 파일로 교체해서 해결했습니다. kizwan

안 그래도 Chameleon RC4에서 문제를 겪는 분들이 꽤 있다고 들었습니다. 그래도 일단 한번 시도해 볼 가치는 있을까요?

그나저나 친절하게 도와주셔서 정말 감사합니다! 혹시 사용하시는 Acer 노트북도 ICH7 칩셋인가요? 제가 ACPI 프로그래머 가이드와 ICH7 데이터시트를 대조해 가며 몇 가지 DSDT 패치들을 검증해 두었거든요. SL 설치가 끝나면 직접 적용해 보고 DSDT 하위 포럼에 결과를 공유하겠습니다.

필드 노트 #21 @kizwan 2010-03-01 ↳ Re: @uman
@uman그 복원용 파티션도 부팅 가능한(bootable) 파티션이어야 하죠?

네, 맞습니다.

@uman현재 하드 드라이브에 깔라고요? 왜 굳이 기존 구형 하드에 Chameleon을 설치해야 하는지 잘 이해가 안 됩니다. 혹시 기존 Leopard 시스템을 새 하드로 그대로 복제해서 넘길 거라고 생각하신 건가요? 지금 깔린 Leopard는 리테일이 아니라 시스템 파일이 잔뜩 개조된 iPC 배포판이라 그대로 넘기고 싶지는 않거든요.

아, 제 의도는 현재 사용 중인 하드 드라이브의 일부를 Snow Leopard 설치 미디어 대용으로 활용하시라는 뜻이었습니다. 당연히 Snow Leopard 본 시스템은 새 하드에 설치하는 것이 맞습니다. 사실 Snow Leopard 설치 자체는 쉽지만, 설치 후 실제로 부팅을 하려면 패치된 kext들이 필요합니다. 즉, 제가 만약 님 입장이라면 Snow Leopard를 설치하기 전에 미리 Snow Leopard를 부팅시켜 줄 EFI/Boot-132 파티션 환경부터 준비해 둘 것이라는 이야기였습니다.

저 같은 경우 80GB짜리 외장 하드를 아예 전용 설치 미디어로 만들어 쓰고 있습니다. 파티션을 3개로 나누어서 첫 번째 파티션은 순수 데이터 보관용 FAT32, 두 번째 파티션은 Boot-132 파티션(원래 Boot-132 USB에서 가져온 구조), 세 번째 파티션은 리테일 DVD 이미지를 복원해 둔 파티션으로 구성했습니다. 그리고 두 번째 파티션을 부팅 가능(Active)으로 설정해 두었죠. 이 Boot-132 파티션에는 Chameleon 2 RC2를 깔고 그 위에 Chameleon 2 RC4 + PC EFI 10.6을 얹었습니다. 이렇게 만들어 두니 Leopard든 Snow Leopard든 언제든 설치하고 부팅할 수 있는 나만의 "만능(Universal)" 설치 외장 하드가 되더군요.

@umanSL 설치 프로그램이 실행되면 USB 외장 케이스에 들어 있는 새 하드 드라이브에도 바로 설치가 가능한가요?

SL 인스톨러는 기존 Leopard 인스톨러와 조금 다른 것 같습니다. 인스톨러를 수동으로 실행했을 때 외장 파티션도 문제없이 선택할 수 있었습니다.

@uman안 그래도 Chameleon RC4에서 문제를 겪는 분들이 꽤 있다고 들었습니다. 그래도 일단 한번 시도해 볼 가치는 있을까요?

한번 시도해 볼 만합니다. 만약 부팅이 안 되면 그때 정상 작동하는 "boot" 파일(RC3 버전이나 PC EFI 10.6)로 덮어쓰기만 하면 되니까요.

저도 Chameleon 2 RC2 인스톨러를 사용해 EFI 파티션에 기본 부트로더를 설치한 뒤, "boot" 파일만 RC4 패키지의 파일(또는 PC EFI 10.6)로 교체하는 방식을 씁니다.

@uman그나저나 친절하게 도와주셔서 정말 감사합니다! 혹시 사용하시는 Acer 노트북도 ICH7 칩셋인가요? 제가 ACPI 프로그래머 가이드와 ICH7 데이터시트를 대조해 가며 몇 가지 DSDT 패치들을 검증해 두었거든요. SL 설치가 끝나면 직접 적용해 보고 DSDT 하위 포럼에 결과를 공유하겠습니다.

네, 제 Acer 9420도 ICH7 칩셋입니다. 참고로 말씀드리면 잠자기 후 깨어났을 때 무선 랜이 죽던 문제도 드디어 해결했습니다! EFI 파티션에 들어 있던 IONetworkingFamily.kext를 10.6.2 버전으로 업데이트해 주니 고쳐지더군요. 제 Dell 무선 랜카드(Broadcom 디바이스 ID 4315)는 순수 plist 인젝션 방식으로만 잡아서 쓰고 있습니다.

또한 DSDT도 이리저리 만져보면서 몇 가지 수정을 더 적용했습니다:-
- 잠자기 기능을 활성화하기 위해 USB 2.0 항목을 수정하여 내장(Built-in)이 아닌 외장(External) 장치로 인식되도록 변경.
- 상판(LID)을 닫았을 때 잠자기에 들어가도록 패치.
- GeForce Go 7300의 듀얼 모니터 출력을 활성화하기 위해 NVCAP 값 수정.
- ALC883 오디오의 내장 마이크 및 외장 마이크 입력을 활성화하기 위해 ConfigData 수정.

kizwan

필드 노트 #22 @uman 2010-03-03

으아, 정말 미치겠네요. Prasys 블로그(pra sys.co.cc/2009/08/installing-snow-leopard-for-osx86/)에 소개된 처음 3가지 방법으로 SL 설치를 시도했는데 전부 실패했습니다.

결국 지금은 실제 MacBook Pro에 별도의 하드 드라이브(설치 후 제 메인 하드로 교체할 하드)를 연결해서 SL 설치를 진행하고 있습니다. 이 설치가 무사히 끝나고 나면, 첫 부팅을 하기 전에 해당 하드의 EFI 파티션에 Chameleon을 설치하고 필요한 kext들만 넣어주면 되는 걸까요?

리테일 Snow Leopard 설치는 정말이지 골치 아픈 작업(PITA)이네요!

필드 노트 #23 @kizwan 2010-03-04 ↳ Re: @uman
@uman… 결국 지금은 실제 MacBook Pro에 별도의 하드 드라이브(설치 후 제 메인 하드로 교체할 하드)를 연결해서 SL 설치를 진행하고 있습니다. 이 설치가 무사히 끝나고 나면, 첫 부팅을 하기 전에 해당 하드의 EFI 파티션에 Chameleon을 설치하고 필요한 kext들만 넣어주면 되는 걸까요?

네, 맞습니다. 필수적으로 넣어주어야 할 가장 중요한 kext는 fakesmc.kext(netkas 제작)와 PlatformUUID.kext입니다. AppleDecrypt.kext는 SL에서는 더 이상 필요하지도 않고 작동하지도 않습니다.

이전 방법들에서는 어떤 단계에서 막히셨나요? 파티션 테이블은 MBR과 GUID 중 어느 쪽으로 설치하고 계신가요?

@uman리테일 Snow Leopard 설치는 정말이지 골치 아픈 작업(PITA)이네요!

맞아요, 정말 그렇죠.

그리고 Snow Leopard는 기본적으로 64비트 모드로 부팅을 시도하는데, 하드웨어가 64비트를 지원하더라도 일부 기기에서는 이 때문에 문제가 발생할 수 있습니다. 따라서 처음에는 32비트 모드로 구동하시는 것을 권장합니다. 부트 설정의 "Kernel Flags"에 "arch=i386"을 넣어주시면 됩니다.

kizwan

필드 노트 #24 @uman 2010-03-04 ↳ Re: @kizwan
@kizwan이전 방법들에서는 어떤 단계에서 막히셨나요? 파티션 테이블은 MBR과 GUID 중 어느 쪽으로 설치하고 계신가요?

GUID로 진행 중입니다. 숨김 영역인 EFI 파티션을 활용해서 /S/L/E 폴더를 최대한 순정(Virgin) 상태로 깨끗하게 유지하고, 추후 OS 업데이트를 편하게 하는 것이 목표거든요.

@kizwan그리고 Snow Leopard는 기본적으로 64비트 모드로 부팅을 시도하는데, 하드웨어가 64비트를 지원하더라도 일부 기기에서는 이 때문에 문제가 발생할 수 있습니다. 따라서 처음에는 32비트 모드로 구동하시는 것을 권장합니다. 부트 설정의 "Kernel Flags"에 "arch=i386"을 넣어주시면 됩니다.

그 옵션도 시도해 봤었습니다(다만 지금 돌이켜 생각해 보니 이미 폐기된 구형 플래그인 -x32를 입력했었던 것 같기도 하네요...).

원래 CMOS 패치 스레드인데 제 질문으로 주제를 너무 벗어난 것 같아 죄송해서, 제가 시도했던 세부 과정과 추가 질문들은 DSDT 하위 포럼 바깥의 일반 게시판에 별도 글로 올렸습니다. 도와주셔서 정말 감사합니다!

필드 노트 #25 @josefka 2010-04-01

Go 7300

Kizwan 님,
DSDT 수정을 통해 Go 7300 그래픽을 잡으셨다는 글을 보았습니다. 어떻게 수정하셨는지 방법을 좀 알려주실 수 있나요? 제 Asus F3JC 노트북은 잠자기와 깨어나기 자체는 잘 되는데, 잠자기에서 깨어나면 DVI 외부 모니터 화면이 까맣게 죽어버리는(Black screen) 바람에 결국 강제로 전원을 꺼야 합니다. 현재 그래픽은 boot.plist에 EFI string을 넣어서 구동 중입니다.

감사합니다

필드 노트 #26 @kizwan 2010-04-01 ↳ Re: @josefka
@josefkaKizwan 님, DSDT 수정을 통해 Go 7300 그래픽을 잡으셨다는 글을 보았습니다. 어떻게 수정하셨는지 방법을 좀 알려주실 수 있나요? 제 Asus F3JC 노트북은 잠자기와 깨어나기 자체는 잘 되는데, 잠자기에서 깨어나면 DVI 외부 모니터 화면이 까맣게 죽어버리는(Black screen) 바람에 결국 강제로 전원을 꺼야 합니다. 현재 그래픽은 boot.plist에 EFI string을 넣어서 구동 중입니다. 감사합니다

말씀하신 증상이 시스템 전체 잠자기(System Sleep)에서 깨어날 때인가요, 아니면 단순히 디스플레이 절전(유휴 상태에서 화면만 꺼짐) 후 복귀할 때인가요? 저 역시 디스플레이만 꺼지면 다시 켜지지 않고 검은 화면으로 남는 증상이 있어서, 아예 시스템 환경설정의 에너지 절약 옵션에서 유휴 시 디스플레이 끄기 기능을 사용하지 않도록 설정해 두었습니다.

만약 시스템 전체 잠자기에서 깨어날 때의 문제라면, 제 DSDT 파일 안에 있는 NVCAP 값을 참고해 보세요("7300"으로 검색하시면 나옵니다):-
media fire.com/?zmnbzhwq0mt
또는
media fire.com/?mozqymgktyn

추가(EDIT): 아, 노트북 모델이 Asus F3JC이시군요. 제 노트북(Acer Aspire 9420)에는 DVI 포트가 없고 VGA와 S-Video 포트만 있습니다.

kizwan

교차 검증 및 토론 참여 멤버: @kizwan @uman @infinitek @ariyako
출처 및 기여자 이력 (등록된 기여자 15명 · 원본 스레드 #3478)
사용자명기여 역할게시물 수활동 기간
@uman핵심 기여자92009-07-30 → 2010-03-04
@kizwan핵심 기여자82009-07-13 → 2010-04-01
@infinitek기여 멤버22009-08-19 → 2009-08-20
@ariyako기여 멤버22009-11-20 → 2009-11-28
@candykane주 저자12009-07-13
@digital_dreamer기여 멤버12009-08-01
@ariadri기여 멤버12009-08-20
@mwgdrwg기여 멤버12009-08-21
@dgandra기여 멤버12009-09-05
@osxfr33k기여 멤버12009-09-22
@MikeHunt79기여 멤버12009-09-23
@Ianxxx기여 멤버12009-11-27
@spalek83기여 멤버12009-12-06
@SaCleoCheater기여 멤버12010-01-29
@josefka기여 멤버12010-04-01

언어 선택 · Choose your language