해킨질답
  • 목록
  • 아래로
  • 위로
  • 쓰기
  • 검색

베터리 DSDT 는 어떻게 하는건가요??

California님의 기기정보
보유한 기기가 없습니다
추가사양 및 설치(할)OS SIERRA 10.12.3
공지숙지/증상설명 숙지

클로버에서 F4누르면 DSDT.aml 파일 생기는거 까진 알겠는데

그 파일로 뭘 어떻게 해야할지 모르겠습니다.

하드에 베터리매니저 kext넣고 부팅하면 베터리에 X 표시가 나오네요

고수분들의 도움이 필요합니다 도와주세요

California
6 Lv. 2908/3000P

댓글 21

참여를 하시면 세상을 바꿉니다.
1등 지니 2017.02.26. 10:56 |댓주소:#1490465
California

배터리가 바로안잡히시면 dsdt패치가 필요합니다.

저같은경우에는 윈도우로 부팅해서 dsdt추출 프로그램으로 추출했습니다

dsdt 수정 프로그램 및 오류 수정방법은 https://x86.co.kr/tip/1012029 링크 참조해주시구요.

오류 수정이 끝났다면 배터리를 잡히기 위해서 패치를 해주어야 합니다.

오류수정이 끝난 dsdt에서 embed 키워드로 검색하면 밑에  8 8 16 16 뭐 이런식으로 숫자가 뜹니다.

그 숫자 옆에 콤마가 있고 그옆에 4글자로된 이상한 영어가 있을거에요.

그 영어를 키워드로 다시 검색하시면 그 변수가 다른곳에서도 쓰이는지 알 수 있을거에요.(보통 검색시 2개 이상이 결과로 뜨면)

그러면 그 변수에 대한 8비트 쪼개기 작업을 해줘야 하는데요.

일단 아래의 메소드를 DTGP메소드 바로 아래에 붙여넣어주세요.

Method (B1B2, 2, NotSerialized)
    {
        Or (ShiftLeft (Arg1, 0x08), Arg0, Local0)
        Return (Local0)
    }

    Method (B1B4, 4, NotSerialized)
    {
        Or (ShiftLeft (Arg1, 0x08), Arg0, Local0)
        Or (ShiftLeft (Arg2, 0x10), Local0, Local0)
        Or (ShiftLeft (Arg3, 0x18), Local0, Local0)
        Return (Local0)
    }

    Method (L1L4, 4, NotSerialized)
    {
        Or (ShiftLeft (Arg1, 0x20), Arg0, Local0)
        Or (ShiftLeft (Arg2, 0x40), Local0, Local0)
        Or (ShiftLeft (Arg3, 0x60), Local0, Local0)
        Return (Local0)
    }

그리고 예를들어 아까 검색했던 4자리 영어의 변수의 이름이 만약 B2AF 이런식이다(아닐수도있어요)

자 그러면 이제 변수의 이름을 다시 정의하셔야 하는데요.

이름은 아무거나 상관없지만 8비트 씩 쪼갤때 뒤에 숫자를 붙이셔야해요 0 1 2 3 4 이런식으로

예를들어 볼께요 아까 말씀드렸던 변수의 이름이 B2AF라 했잖아요.

저같은경우에는 이 영어글자의 뒷자리 2자리를 데리고 갑니다 앞자리는 아무거나 했습니다.

그러면 BAF 이런식으로 정의가 되겠쬬? 그리고 B2AF가 32비트다.

그러면

BAF0, 8,

BAF1, 8,

BAF2, 8,

BAF3, 8

이런식으로 원래 있었던 B2AF, 32 를 지우고 그자리에 넣어주시면 됩니다.

 

자 그러면 이제 오류가 날꺼에요.

왜냐하면 변수를 재정의 했기 때문에 원래 쓰이던 변수를 참조하던 함수가 오류가 날꺼에요.

오류리스트를 클릭하시면 오류로 이동하는데, 아마 그게 재정의되기 이전의 변수를 참조하는 인자가 보일꺼에요.

그인자를 지우시고 원래 변수가 16비트라면 B1B2 32비트라면 B1B4 128비트라면 L1L4를 이용해주셔야하는데요.

지운자리에 아까 B2AF 변수는 32비트였고 재정의한 변수의 이름들이 BAF0, BAF1, BAF2, BAF3였으니까요

B1B4(BAF0, BAF1, BAF2, BAF3) 이런식으로 지운자리에 붙여넣어주시면 오류가 사라집니다.

그리고 수정하는 비트중에 8비트는 수정안해주셔도되요 16비트 이상에 대해서만 검색하시고 수정해주시면 되는겁니다.

초보분이시면 이해못하실수도 있는데 혹시 잘안되시면 답글달아주세요.

제가 설명을 제대로 했는지는 모르겠네요..ㅎㅎ

댓글
profile image
유키유키 2017.02.26. 18:33 |댓주소:#1490952
지니

Screenshot+2017-02-26+06.32.04.png

안녕하세요! 지니님이 남겨주신 덧글을 읽으면서 따라하고 있는 초짜입니다만.. Store함수를 제거하든 안하든 저 오류가 납니다.. 어떻게 처리하면 좋을까요 ㅠㅠ?

댓글
profile image
유키유키 2017.02.26. 18:36 |댓주소:#1490957
지니

스크린샷 2017-02-26 오후 6.36.13.png

이렇게 수정하니 오류가 안나오긴하는데.. 이렇게 하는게 맞나요??

그리고 256비트짜리도 있는것 같은데 걘 어떻게 처리해야할까요 ㅠㅠ

댓글
지니 2017.02.27. 13:01 |댓주소:#1491853
유키유키

 B1B2와 같은 함수를 쓰실때는 원래 있던 인자값에 '.'으로 붙여진 앞의 네임스페이스들을 붙여줘야합니다.
따라서 저렇게 하면 오류가 안나는거구요. 그렇게 하는거 맞습니다.

256비트는 256비트 변수를 검색해서 사용하는지 확인해주시겠어요?
다른 사이트들의 강좌를 봐도 256은 사용이 잘안되있어서 비트나누어주는 함수가 없더라구요.
한번 찾아보겠습니다만, 256비트 변수를 사용하지 않는다면 패치해줄 필요가없구요.

괜찮으시다면 dsdt파일을 첨부해보세요.

댓글
C
California 작성자 2017.02.26. 19:24 |댓주소:#1491025
유키유키
번개모양 뜨지않나요 제껀 인식하는데 10초정도 걸리긴 하지만 꼽으면 번개표시나옵니다
댓글
profile image
유키유키 2017.02.26. 19:42 |댓주소:#1491039
California
처음 로그인했을때 꼽혀있다면 번개모양이 뜨지만 후에는 변경이 안됩니다 ㅠㅠ
배터리를 빼도 번개모양이 떠요
댓글
지니 2017.02.27. 13:02 |댓주소:#1491857
유키유키
못잡으셨다면 잘못 수정하셨을 가능성이 있습니다.
그리고 배터리 매니저 켁스트는 넣으셨나요?
댓글
지니 2017.02.28. 01:30 |댓주소:#1492702
유키유키
일단은 배터리 여부가 제대로 표시안된다는것은 패치가 제대로 잘안되있는거구요....
dsdt시간나면 한번 봐보겠습니다.
아니면 천천히 다시 따라해보세요 패치!
댓글
profile image
유키유키 2017.02.28. 02:14 |댓주소:#1492750
지니
배터리 표기는 제대로 되는 것 같은데 충전기를 꼽아도 번개 아이콘이 뜨질 않아서요 ㅠㅠ..
패치는 16비트 이상 된 놈들은 다 했고, 256비트? 로 된 놈이 있길래 그것만 제외하곤 다 했습니다!
256비트는 어떻게 처리해야할지 몰라서요 ㅠㅠ
댓글
권한이 없습니다. 로그인

신고

"님의 댓글"

이 댓글을 신고 하시겠습니까?

삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?