배터리 dsdt 작업 중 질문
- 후멍Mk2
- 586
- 14
후멍Mk2님의 기기정보
추가사양 및 설치(할)OS | Catalina 10.15.3 |
---|---|
공지숙지/증상설명 | 숙지 |
주연테크 캐리북 라이트플라이 J7FC
10세대 i5 10210u 입니다.
현재 배터리가 표시는 되지만, 전원 인식 및 충전 퍼센티지가 올라가지 않습니다.
배터리를 잡아야하는데.. 이런경우는 어떻게 잡아야할지 문의드립니다.
EC81 섹션의 FCMD ~ FBF3 까지 변수가 모두 이미 8비트로 설정이 되어 있고..
이런식으로 Store 함수에서 사용중입니다. 이 상황에서 뭘 더 패치해야할지 도저히 모르겠어서..
답변 부탁드리겠습니다.
아래 dsl 파일 첨부드립니다.
#라이트플라이_J7FC_10세대_i5_10210,#설정,#변수,#작업,#표시
후멍Mk2
댓글 14
답변 참고하여 잡아보겠습니다. 정보 감사합니다.!
배터리는 Embedded Controller의 FieldUnitObject만 8비트 세분화 시키면 되용..SystemMemory의 변수를 8비트씩 읽고 쓰는 것이 아니라서 상관 없을거에요.
중간에 보시면 Name (ECOK, Zero)가 Method (_REG)에서 1로 설정되어야 하는 것을 보실 수 있는데요. ECOK는 EC를 사용해도 괜찮은지 확인하는 변수로 시스템이 부팅되면 1로 설정되어야 EC를 제대로 사용할 수 있고, EC로부터 배터리 수치를 제대로 읽어올 수 있습니다. 간혹_REG에서 ECOK가 1로 설정되지 않는 경우가 있습니다. config.plist DSDT/Patch에 Find 08 45 43 4F 4B 00를 Rename 08 45 43 4F 4B 01 입력해서 ECOK를 강제로 1로 할당시켜보세요.
Store (^^PCI0.LPCB.EC.BDC0, Local0) 이런 문장은
Store (^^PCI0.LPCB.EC.B1B4(BDC1,BDC2,BDC3,BDC4), Local0) 로 하면 에러가 나더라구요.
앞에 지우고 Store(B1B4(BDC1,BDC2,BDC3,BDC4), Local0)로 하면 오류가 안나던데, 맞는 문장인가요?
Store (B1B4(^^PCI0.LPCB.EC.BDC1,^^PCI0.LPCB.EC.BDC2,^^PCI0.LPCB.EC.BDC3,^^PCI0.LPCB.EC.BDC4), Local0)가 맞는 문법입니다.
일반적으로, DSDT 에서 배터리 관련 변수가 OperationRegion (EC81, EmbeddedControl, Zero, 0xFF) 에 있지만
다음 사진처럼 조금 더 위에 있는 OperationRegion (RAM, SystemMemory, 0xFE700100, 0x0100) 에도 배터리 관련 변수가 존재합니다.
EmbeddedControl 이 아닌 SystemMemory 라고 적혀있어도 배터리 관련 변수가 있을 수도 있습니다.
OperationRegion (RAM, SystemMemory, 0xFE700100, 0x0100) 에서 정의되어 있는 변수들이
배터리 관련 변수가 맞는지는 직접 그 변수를 검색해보면 알 수 있습니다.
BDV0 이라는 변수를 한번 검색해보면
아래의 사진과 같이 UPBI 라는 Method 에서 사용되고 있는 것을 볼 수 있습니다.
그런데, UPBI Method 가 BAT0 이라는 Device 에서 사용되는 Method 라는 것을 알 수 있습니다.
BAT0 은 노트북 배터리의 Device 장치 이름입니다.
그러므로, OperationRegion (RAM, SystemMemory, 0xFE700100, 0x0100) 에서 정의되어 있는 변수들은
배터리와 관련된 변수들이 맞으며 8 Bit 로 세분화하는 작업을 해주면 되겠습니다. :)
그리고, 다음 사진에 있는 배터리 관련 변수는 이미 8 Bit 이기 때문에 수정할 필요가 없습니다.