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

DSDT 자동수정 문제

비현군님의 기기정보
보유한 기기가 없습니다
추가사양 및 설치(할)OS HotFix 패치를 포함한 10.13.3
공지숙지/증상설명 숙지

DSDT 수정을 통해 노트북 배터리를 잡긴 했는데...

굉장히 사소하지만 정말 거슬리는 문제가 생겼습니다.


DSDT Store (Local0, B1B2(FI00, FI01))
}
}


구문을 이렇게 저장했고, 이렇게 저장이 되야 배터리 퍼센트가 정확하게 표시가 되는 데


이렇게 저장한 이후 Clover Configurator던, 제가 MaciASL이던, DSDT를 여는 순간 구문이


Store (Local0, B1B2)
FI00
FI01
}
}


이렇게 변해버립니다.

소괄호가 B1B2에서 닫혀버리도록 멋대로 수정을 하는 바람에 배터리 퍼센테이지가 표시가 되지 않습니다.

뭐 이건 제가 매번 간단한 수정 작업을 해주면 큰 이상이 없고,  DSDT 자체가 한번 만져주면 크게 만질일이 없으니 굳이 사용에 지장이 있는 건 아닌데...... 

아직은 커맥 안정화 단계라서 DSDT를 만질 일이 많다보니 좀 거슬리는데....


이걸 어떻게 하면 자동으로 수정되는 걸 막을 수 있나요?


#Local0,#B1B2,#이건_제,#DSDT_Store,#수정,#Store,#소괄호,#Configurator던

비현군
9 Lv. 5019/10000P

댓글 10

참여를 하시면 세상을 바꿉니다.
profile image
1등 뉴해킨 2018.03.04. 12:59 |댓주소:#2068433
비현군

Store 는  보통 Store (val1,val2)형태로 사용합니다. 기능은 val1 을 val2에 저장합니다. 위의 Store (Local0,B1B2(FI00, FI01))형태는 이상하군요. B1B2가 무엇을 하는 function인지 알아야 할듯 하군요. 그냥 internet에서 다운한 패치를 사용하려면 나의 dsdt와 어떻게 interaction하는지 알아야 합니다. 한번에 적용되지 않으면 풀어서 적용을 시켜야 합니다.

댓글
비현군 작성자 2018.03.04. 15:46 |댓주소:#2069005
뉴해킨

macOS는 8비트로 코딩 된 Battery info만 읽을 수 있는 데, 제 노트북은 16비트로 Battery info를 저장합니다.

 그래서 16X1로 저장된 정보를 B1B2 선언 후 8X2 형식으로 바꾼 것 입니다.


이와 관련된 부분은 토니맥인지 미친맥인지는 모르겠지만, 배터리 DSDT 수정법이 적힌 게시글에 자세히 적혀있습니다.


근데 전부 이런식으로 비트쪼개기를 했는 데, 왜 얘만 이렇게 수정이 되는지는 잘 모르겠습니다.


크게 기술적인 부분이 아니라 DSDT는 필요없을 것 같았는데, 필요하시다면 업로드 하겠습니다.

댓글
profile image
뉴해킨 2018.03.04. 18:25 |댓주소:#2069729
비현군

예, 제 기억으로도 라이언 이후부터 battery register는 8bit으로 바뀌었습니다.  언급하신대로 16비트를 8비트로 바꾸셨다면 각각의 variable이 8bit으로 되어 있어야 할텐데 B1B2 만으로는 어떠한 형태인지 알수가 없군요.. B1B2(variable, variable)의 형태라면 B1B2가 reserved word가 아닌것으로 보입니다. 


16비트를 8비트 두개로 나누었다면 메모리의 리지스터 이름과 data type을  바꾸었다는 것 밖에 의미가 없습니다. 

주어진 정보가 너무 부족하군요. 질문을 하실때 수정하기전의 dsdt코드와 수정한 dsdt코드를 비교하면서 설명해야 하는 부분이 있어야 할것 같군요. 

댓글
profile image
2등 goldbat 2018.03.04. 19:35 |댓주소:#2069959
비현군

비현군 님 토니맥 배터리 DSDT 수정 법을 다시 보시기 바랍니다.

"뉴해...킨" 님의 1번 댓글 처럼 Store (Local0,B1B2(FI00, FI01)) 이형식은 맞지 않습니다.

예를 들어 토니맥의 글을 인용하면

'Store (B1B2(DC00,DC01), Index (DerefOf (Index (Local0, 0x02)), Zero))'  이와 같이 B1B2 가 먼저 선언되어야 합니다.

그러므로 다시 토니맥의 배터리 DSDT 를 차근 차근 봐 주셨으면 하고요, 

저도 몇대의 노트북을 진행하여 보았기에 제가 추측으로 말씀드리자면, 

 DSDT 에서 OperationRegion (ECF2, EmbeddedControl, Zero, 0xFF) 이부분 이하의 변수 중에 8비트 이상 되는 변수들을 다 변환하신것 같습니다

그러나, 실제로 배터리의 정보를 가져오는 변수만 수정하시면 됩니다. 

비현군 님의 DSDT Store (Local0, B1B2(FI00, FI01)) 이부분은 다시 원상태로 해주세요

글로 표현하기가 좀 어렵네요 ㅠㅠ


댓글
비현군 작성자 2018.03.04. 19:56 |댓주소:#2070036
goldbat

정확하게 말씀드리면, 16비트 값을 전부 8비트로 변환한 것이 맞습니다. 근데 그 중 한개가 관여하는 범위가 많다보니 8비트로 쪼갤 경우 DSDT 전체에 문제가 발생하기때문에, 별도의 값을 만들고, 배터리 정보에 해당하는 부분만 바꿔주는 방식을 썼습니다. 그러니 퍼센테이지를 가져오더라고요.

이런식으로 괴랄한 DSDT 수정때문에 조금 문제가 있는 것 같은데... 바꿔줘야 하는 값이 많지는 않기 때문에, DSDT를 전반적으로 다시 만지는 편이 좋을 것 같네요.


이와 별도로 배터리 관련 추가 질문이 한개가 있는 데,

현재 macOS에서 제 배터리를 조금 이상하게 인식하긴 합니다.


 모델 정보:

  일련 번호:-Unknown

  제조업체:SAMSUNG Electronics

  기기 이름:

  충전 정보:

  배터리 충전량이 위험 수준 이하입니다.:아니요

  배터리 충전량이 경고 수준 이하입니다.:아니요

  충전 잔량(mAh):3700

  충전 완료됨:예

  충전 중:아니요

  최대 충전 용량(mAh):4400

  상태 정보:

  사이클 수:271

  조건:정상

  배터리 설치됨:예

  암페어(mA):0

,  전압(mV):12330


일련번호나 일부 정보를 못 가져 오기도 하고

무엇보다, 배터리가 충전과 방전을 함에 따라 수명이 줄어들기에 최대 충전 용량이 감소하는데

macOS에서는 이를 반영하지 못하고 있습니다. 

보시다시피 현재 제 노트북은 3,700mAh밖에 충전할 수 없는 데, macOS는 제 배터리의 설계 용량인 4,400mAh를 100%의 기준으로 잡고 있기 때문에, 결과적으로는 100% 충전이 되지 못하고 있는 문제가 발생했습니다.

Windows에서는 이런 증상이 없이 3700mAh를 기준으로 100% 충전이 됩니다. 물론 Windows 역시 설계 충전용량이 4,400mAh 인걸 인지하고 있긴 합니다.



사용에 지장이 있는 문제는 아닙니다. 

배터리 정보를 저런식으로 얻긴 하지만 기준이 다를 뿐이지 둘 다 정확한 배터리를 인지하고 있기에, 쳐먹쳐먹하는 배터리는 macOS나 Windows나 차이가 없더라고요.

그냥 궁금해서 여쭤보는 것인데, 저의 DSDT 수정 실수와 불완전한 배터리 정보 인지가 관련이 있나요??

댓글
비현군 작성자 2018.03.05. 23:27 |댓주소:#2072280
goldbat

말씀 정확하십니다.


DSDT를 싹다 새로만지면서 건드려 줘야 할 부분만 건드려줘도 배터리 퍼센트는 이상이 없더라고요.ㅠㅠ

댓글
profile image
3등 goldbat 2018.03.04. 21:04 |댓주소:#2070246
비현군

DSDT 수정이 정상적으로 되었을시 아래와 같이 나타나게 됩니다.


일련 번호, 제조업체, 기기이름등을 dsdt 에서 가져 옵니다.

충전용량 , 잔량등의 표기는 윈도우 와 차이가 있을수 있습니다. 


댓글
비현군 작성자 2018.03.05. 23:26 |댓주소:#2072276
goldbat

일련번호와 기기이름은 윈도우에서도 못 불러오더라고요;;;;;; 배터리 회로에 따로 심겨져있지는 않나봅니다.

댓글
권한이 없습니다. 로그인

신고

"님의 댓글"

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

삭제

"님의 댓글"

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