질문용 시스템 사양 | 2번 |
---|---|
추가사양 및 설치(할)OS | 빅서 |
공지숙지/증상설명 | 숙지 |
안녕하세요.
새 놑북에 해킨을 했습니다.
현재 안정화 중인데, 베터리와 트랙패드가 잡히지 않습니다.
일단 베터리는 ECEnabler + SMCBatteryManager로 되지 않아서 SSDT를 사용할 계획입니다.
그런데 I2C 방식 트랙패드도 지금 잡히지 않습니다.
특이하게도, 설정에는 트랙패드가 잡히지 않지만 실제로는 트랙패드 사용 가능하며(탭해서 클릭 안됨, 클릭하려면 트랙패드 눌러야함), 설치중에도 트랙패드가 잡혔고, 얼핏 보니 5점 터치가 인식됩니다.
gpio pin 설정에 관한 shl628@shl628 1371073 님 글도 따라했지만 SBFG가 존재하지 않습니다.
모든 kext와 오코는 최신 debug 버전입니다.
어떻게 해야 할까요?
EFI, SysReport 결과, ioreg 첨부했습니다.
EFI.zip SysReport.zip mswgen’s MacBook Pro.ioreg.zip
P.S: 지금 사운드 노가다 중인데 마이크는 일부 레이아웃에서 되는데 스피커는 아직 아예 안됩니다. 물론 끝까지 가봐야 알겠죠...
저의 경우 I2cSerialBusV2는 SBFB였지만 GPIO Pin이 있는 SBFG가 없었습니다.
macOS의 트랙패드 활성화 알고리즘 때문에 배터리가 잡혀야 트랙패드가 잡히는 경우가 많습니다.
아마 배터리가 있으면 맥북이니 트랙패드 활성화를 하는지?
그래서 배터리부터 잡고 보셔야 할 듯 합니다.
저도 I2C 트랙패드인데 배터리 잡기 전에는 마우스처럼 사용이 가능하다가
배터리 잡고 나니 바로 잡혔습니다.
ECEnabler가 먹히지 않아서 SSDT 패치를 하는 중입니다.
그런데 64비트 값에서 문제가 발생했습니다.
shl628 @shl628 1371073님 글을 따라 해보려 했는데 32비트까지와 128비트 이상 쪼개기는 알겠는데 64비트를 쪼개기 위해 B1B8을 만들었는데 Arg7이 하이라이팅이 안됩니다.
64비트는 어떻게 쪼개야 할까요?
a42e7b1915f252e00aa8a47b8deeb9be.png (631×412) (x86.co.kr)
5탄 쌩 초보도 할수있다 노트북 배터리 패치 DSDT-SSDT 패치를 하... - 커스텀맥(해킨) 강좌&Tip - 엑스팔육 (x86.co.kr)
이 글과 위 사진 보시면 128비트 쪼개기가 있는데 저는 똑같이 하는 대신에 위에 변수명을 8비트 말고 4비트 16개로 했었습니다. 물론 제가 패치했었을 때 성공을 못했고 같은 기기의 ssdt-batt를 구해서 패치하긴 했었지만요.. 100% 된다고 확신을 하지는 못하지만 한번 시도해보시겠어요?
32 Bit 를 초과하는 64 Bit 이상의 FieldUnitObject 는 8 Bit 로 직접 세분화하지 말고
RE1B & RECB 또는 WE1B & WECB Method 를 사용하는 것이 편리합니다.
또는, 64 Bit 인 BANA 라는 변수를 직접 8개의 8 Bit 변수로 직접 세분화하고
이를 하나의 Method 에 저장하여 읽도록 하거나 쓰도록 해야 합니다.
B1B2, B1B3, B1B4 등의 Method 내용을 직접 수정하여 64 Bit 변수에 사용할 수 있도록 변형하는 것은 권장하지 않습니다.
OEM DSDT 의 EmbeddedControl Region 에서 BANA 라는 FieldUnitObject 가 정의되어 있고
BANA 를 검색해보면 아래의 IVBI Method 에서 사용되는 것을 볼 수 있습니다.
Method (IVBI, 0, NotSerialized)
{
PBIF [One] = 0xFFFFFFFF
PBIF [0x02] = 0xFFFFFFFF
PBIF [0x04] = 0xFFFFFFFF
PBIF [0x09] = "Bad"
PBIF [0x0A] = "Bad"
PBIF [0x0B] = "Bad"
PBIF [0x0C] = "Bad"
^^PCI0.LPCB.EC0.ECWT (Zero, RefOf (^^PCI0.LPCB.EC0.BANA))
}
Arg1 을 BANA 변수로 하여 EC0 Device 의 ECWT Method 를 Call 하고 있습니다.
그러면, 이제 다시 ECWT Method 의 내용을 보면 다음과 같습니다.
Method (ECWT, 2, Serialized)
{
Local0 = Acquire (ECMT, 0x03E8)
If ((Local0 == Zero))
{
If (ECOK)
{
Arg1 = Arg0
}
Release (ECMT)
}
}
Arg1 = Arg0 이므로 Arg0 의 값을 Arg1 에 쓰는 것입니다.
그러면, RE1B & RECB 가 아닌 WE1B & WECB Method 를 사용해야 합니다.
Offset (0x77),
BANA, 64,
BANA 의 Offset 주소는 0x77 이므로
WE1B & WECB Method 를 EC0 Device 의 하위에 정의해주고 IVBI Method 에서
^^PCI0.LPCB.EC0.ECWT (Zero, RefOf (^^PCI0.LPCB.EC0.BANA)) 를
^^PCI0.LPCB.EC0.WECB (0x77, 0x40, Zero) 로 수정하면 됩니다.
몇가지 궁금한 점이 있습니다.
1. RefOf는 어떤 일을 하는 함수인가요?
2. WE1B, WECB, RE1B, RECB는 어떤 것인가요?
3. 저처럼 ECEnabler를 사용해도 원래 안되는 경우가 있나요?
1. 정확히는 저도 잘 모르겠지만 ACPI Specification 기술 문서를 읽어보니
Method 에서 Object 를 인수로 사용할 때 RefOf 를 사용하는 것 같습니다.
사진 출처 - ACPI Specification 기술 문서
https://uefi.org/specifications
https://uefi.org/specs/ACPI/6.4/
2. RE1B & RECB Method 와 WE1B & WECB Method 도 배터리 패치에 사용되는 Method 입니다.
RECB Method 를 사용하라면 RE1B 도 같이 있어야 합니다.
RECB Method 의 내용을 보면 RE1B 를 사용하는 것을 볼 수 있습니다.
WE1B & WECB Method 도 마찬가지입니다.
https://www.tonymacx86.com/threads/guide-how-to-patch-dsdt-for-working-battery-status.116102/
https://www.tonymacx86.com/threads/guide-using-clover-to-hotpatch-acpi.200137/
https://xstar-dev.github.io/hackintosh_advanced/Guide_For_Battery_Hotpatch.html
3. ECEnabler.kext 를 사용해도 안 되는 경우는 저도 잘 모르겠습니다...
저는 직접 SSDT 를 사용하여 Hot Patch 방식으로 배터리 패치를 진행하였을 것 같습니다.
네.
그러면 예를 들어
1. UPBI Method에서
PBIF [One] = ^^PCI0.LPCB.EC0.ECRD (RefOf (^^PCI0.LPCB.EC0.DSCP))
는
PBIF [One] = ^^PCI0.LPCB.EC0.ECRD (B1B2 (^^PCI0.LPCB.EC0.SCP0, ^^PCI0.LPCB.EC0.SCP1))
이런식으로 바꾸고
2. IVBI Method에서
^^PCI0.LPCB.EC0.ECWT (Zero, RefOf (^^PCI0.LPCB.EC0.BANA))
를
WECB (0x77, 0x40, Zero)
로 바꾸고
3. WMAB Method에서
Local0 = ^^EC0.ECRD (RefOf (^^EC0.VERN))
를
Local0 = B1B4 (^^EC0.ERN0, ^^EC0.ERN1, ^^EC0.ERN2, ^^EC0.ERN3)
로 바꾸고
이런식으로 하면 되는건가요?
지금 보니 배터리 관련 변수가 모두 ECRD Method 를 거치네요...
ECRD Method 를 거치지 않도록 패치해보세요.
PBIF [One] = B1B2 (^^PCI0.LPCB.EC0.SCP0, ^^PCI0.LPCB.EC0.SCP1) 로 수정해보세요.
즉, 다시 말하자면 그냥 바로 PBIF [One] 에 값을 쓰도록 패치해보세요.
나머지 부분도 위와 마찬가지로 같은 방식으로 패치해보세요.
혹시, Hot Patch 방식으로 배터리 패치 SSDT 를 만는 과정에서 External References 를 추가하는 부분을 말씀하시는 것인가요?
아뇨.
External 노가다 추가는 끝냈고, 그 다음에 그 15u480-ka56k 글의 베터리 패치 부분에 있는 그 내용 얘기입니다.
배터리 패치 SSDT 수정이 완료되면 .dsl 을 다른 이름으로 .aml 로 저장하고 그 파일을 열어보세요.
그러면, External References 에서 오른쪽 초록색 글씨로 Warning 이 뜨는 External 구문이 있는지 확인해보세요.
그리고, 그 External 구문에 해당하는 Object 의 경로를 절대경로로 모두 바꿔주세요.
아래의 글에서 해당 부분에 대한 내용이 있습니다.
확인 결과 해당사항은 없는 것 같습니다.
만든 SSDT입니다.
https://drive.google.com/file/d/1mIp1d6HTFvfjr2Fh3C_n4hzt7xwN5s2p/view?usp=sharing
ACPI Rename 리스트입니다.
1. WMAB to XMAB: 57 4d 41 42 0b 08 5f 54 -> 58 4d 41 42 0b 08 5f 54
2. WMBB to XMBB: 57 4d 42 42 0b 08 5f 54 -> 57 4d 42 42 0b 08 5f 54
3. UPBI to XPBI: 55 50 42 49 00 -> 58 50 42 49 00
4. UPBS to XPBS: 55 50 42 53 00 -> 58 50 42 53 00
5. IVBI to XVBI: 49 56 42 49 00 07 -> 58 56 42 49 00 07
6. WSAA to XSAA: 57 53 41 41 -> 58 53 41 41
이렇게 하면 될까요?
여전히 답이 없습니다...
mswgen@mswgens-MacBook-Pro ~ % sudo dmesg | grep -E "Batt"
Password:
[ 177.163909]: SmartBattery: abort polling
[ 187.164186]: SmartBattery: abort polling
[ 197.201211]: SmartBattery: abort polling
[ 207.202124]: SmartBattery: abort polling
[ 217.202684]: SmartBattery: abort polling
[ 227.203041]: SmartBattery: abort polling
[ 237.203189]: SmartBattery: abort polling
[ 247.203247]: SmartBattery: abort polling
[ 257.229971]: SmartBattery: abort polling
[ 267.231189]: SmartBattery: abort polling
[ 277.231227]: SmartBattery: abort polling
[ 287.232312]: SmartBattery: abort polling
[ 297.232367]: SmartBattery: abort polling
[ 307.233159]: SmartBattery: abort polling
[ 317.206832]: SmartBattery: abort polling
[ 327.207753]: SmartBattery: abort polling
[ 337.209161]: SmartBattery: abort polling
mswgen@mswgens-MacBook-Pro ~ % sudo dmesg | grep -E "EC"
[ 195.443132]: ACPI Error: ACPI Error: Field [ECOK] Base+Offset+Width 4096+0+4 is beyond end of region [OGNS] (length 4099)Field [ECOK] Base+Offset+Width 4096+0+4 is beyond end of region [OGNS] (length 4099) (20160930/exfldio-286)
[ 195.443185]: [_STA] @00003 #002D: [_STA] @00003 #002D: EECCOOKK
[ 195.443322]: ACPI Error: ACPI Error: Field [ECOK] Base+Offset+Width 4096+0+4 is beyond end of region [OGNS] (length 4099)Field [ECOK] Base+Offset+Width 4096+0+4 is beyond end of region [OGNS] (length 4099) (20160930/exfldio-286)
[ 195.443345]: [_PSR] @00002 #002D: [_PSR] @00002 #002D: EECCOOKK
[ 255.444969]: ACPI Error: ACPI Error: Field [ECOK] Base+Offset+Width 4096+0+4 is beyond end of region [OGNS] (length 4099)Field [ECOK] Base+Offset+Width 4096+0+4 is beyond end of region [OGNS] (length 4099) (20160930/exfldio-286)
[ 255.445028]: [_STA] @00003 #002D: [_STA] @00003 #002D: EECCOOKK
[ 255.445167]: ACPI Error: ACPI Error: Field [ECOK] Base+Offset+Width 4096+0+4 is beyond end of region [OGNS] (length 4099)Field [ECOK] Base+Offset+Width 4096+0+4 is beyond end of region [OGNS] (length 4099) (20160930/exfldio-286)
[ 255.445192]: [_PSR] @00002 #002D: [_PSR] @00002 #002D: EECCOOKK
[ 315.405861]: Sandbox: routined(361) deny(1) mach-lookup com.apple.Maps.MapsSync.storeACPI Error: ACPI Error: Field [ECOK] Base+Offset+Width 4096+0+4 is beyond end of region [OGNS] (length 4099)Field [ECOK] Base+Offset+Width 4096+0+4 is beyond end of region [OGNS] (length 4099) (20160930/exfldio-286)
[ 315.446525]: [_STA] @00003 #002D: [_STA] @00003 #002D: EECCOOKK
[ 315.446696]: ACPI Error: ACPI Error: Field [ECOK] Base+Offset+Width 4096+0+4 is beyond end of region [OGNS] (length 4099)Field [ECOK] Base+Offset+Width 4096+0+4 is beyond end of region [OGNS] (length 4099) (20160930/exfldio-286)
[ 315.446719]: [_PSR] @00002 #002D: [_PSR] @00002 #002D: EECCOOKK
mswgen@mswgens-MacBook-Pro ~ %
...???
그리고 지금 ECEnabler 비활성화, SMCBatteryManager는 활성화했습니다.
배터리 잔량 표시는 정상적으로 잘 되나요?
그리고, 저의 GitHub 에서 SSDT-OSYS.aml 만 다운로드하고 EFI 폴더에 추가하여 적용한 후에 다시 부팅해보세요.
Darwin OS Check Fix 패치를 적용한 후에 IOReg 를 확인해보세요.
현재 제가 컴퓨터를 사용할 수 없는 환경이어서 양해 부탁드려요... ㅜㅅㅠ
DSDT 를 확인해보면 Synaptics 사의 터치패드이고 모델명은 SYN1B8B 인 것 같아요.
또한, I2C 방식의 터치패드에 해당하는 장치는 TPD0 Device 인 것 같은데 I2C1, I2C2, I2C3 세 군데에 모두 존재합니다.
IOReg 에서 TPD0 Device 가 I2C1 ~ I2C3 중 어디에 연결되어 나타나는지 확인해보세요.
그리고, GenI2C 앱의 Information 화면의 스크린샷과 VoodooI2C 의 로그도 보내주세요.
괜찮습니다. 오히려 정말 감사해요.
TPD0은 I2C1 아래에 있습니다.
혹시 geni2c 앱은 어디서 다운받을 수 있나요?
그리고 voodooi2c 로그는 어떻게 확인할 수 있나요?
sudo dmesg | grep -E "VoodooI2C|VoodooGPIO" 실행해봤는데 아무것도 뜨지 않습니다.
Config.plist 의 boot-args 에 msgbuf=1048576 을 추가하고 다시 부팅한 후에
터미널에 아래의 명령어를 입력하면 됩니다.
sudo dmesg | grep -i "Voodoo"
msgbuf=1048576 부트 옵션을 추가하지 않으면 Log 가 보이지 않습니다.
GenI2C 앱은 원래 이 앱의 개발자인 williambj1 님의 GitHub 저장소에 있었는데
저장소를 삭제해 버려서 현재 GenI2C 최신 버전을 다운로드할 수가 없습니다.
Google 에 GenI2C 검색하면 블로그나 다른 사이트에서 다운로드를 해보세요.
[ 1.982506]: VoodooGPIOCannonLakeLP::Loading GPIO Data for CannonLake-LP
[ 1.982514]: VoodooGPIOCannonLakeLP::VoodooGPIO Init!
[ 1.982515]: VoodooGPIOCannonLakeLP::VoodooGPIO Initializing Community 0
[ 1.982550]: VoodooGPIOCannonLakeLP::VoodooGPIO Initializing Community 1
[ 1.982575]: VoodooGPIOCannonLakeLP::VoodooGPIO Initializing Community 2
[ 1.982712]: VoodooGPIOCannonLakeLP::GPIO Controller is already awake! Not reinitializing.
[ 2.170597]: VoodooI2CPCILakeController::pci8086,2e9 Starting I2C controller
[ 2.173768]: VoodooI2CPCILakeController::pci8086,2e8 Starting I2C controller
[ 2.173796]: VoodooI2CPCILakeController::pci8086,2e8 Set PCI power state D0
[ 2.173799]: VoodooI2CPCILakeController::pci8086,2e8 Current CPU is Comet Lake or Ice Lake, patching...
[ 2.173905]: VoodooI2CPCILakeController::pci8086,2e8 Publishing nub
[ 2.174669]: VoodooI2CControllerDriver::pci8086,2e8 Probing controller
[ 2.174682]: VoodooI2CControllerDriver::pci8086,2e8 Found valid Synopsys component, continuing with initialisation
[ 2.174711]: VoodooI2CControllerNub::pci8086,2e8 SSCN not implemented in ACPI tables
[ 2.174715]: VoodooI2CControllerNub::pci8086,2e8 FMCN not implemented in ACPI tables
[ 2.174718]: VoodooI2CControllerDriver::pci8086,2e8 Warning: Error getting bus config, using defaults where necessary
[ 2.174779]: VoodooI2CControllerDriver::pci8086,2e8 Publishing device nubs
[ 2.193071]: GK status: enabledPer file changetime scans: enabledVoodooI2CPCILakeController::pci8086,2e9 Set PCI power state D0
[ 2.202706]: VoodooI2CPCILakeController::pci8086,2e9 Current CPU is Comet Lake or Ice Lake, patching...
[ 2.220454]: VoodooI2CPCILakeController::pci8086,2e9 Publishing nub
[ 2.221951]: VoodooI2CControllerDriver::pci8086,2e9 Probing controller
[ 2.231418]: VoodooI2CControllerDriver::pci8086,2e9 Found valid Synopsys component, continuing with initialisation
[ 2.233922]: VoodooI2CControllerNub::pci8086,2e9 SSCN not implemented in ACPI tables
[ 2.235776]: VoodooI2CControllerNub::pci8086,2e9 FMCN not implemented in ACPI tables
[ 2.245530]: VoodooI2CControllerDriver::pci8086,2e9 Warning: Error getting bus config, using defaults where necessary
[ 2.264251]: VoodooI2CControllerDriver::pci8086,2e9 Publishing device nubs
[ 2.383722]: VoodooI2CControllerDriver::pci8086,2e9 Found I2C device: SYN1B8B
[ 2.394350]: VoodooI2CDeviceNub::TPD0 Warning: Incompatible APIC interrupt pin (0x43 > 0x2f)
[ 2.742246]: VoodooI2CDeviceNub::TPD0 TP7G index 0x0 is not supported
[ 2.743642]: VoodooI2CDeviceNub::TPD0 Could not retrieve interrupts from _DSM or XDSM method
[ 2.765892]: VoodooI2CDeviceNub::TPD0 Warning: Could not find any APIC nor GPIO interrupts. Your chosen satellite will run in polling mode if implemented.
[ 3.632249]: VoodooI2CHIDDevice:0x1000003b7 start
[ 3.632256]: VoodooI2CHIDDevice::SYN1B8B Warning: Could not get interrupt event source, using polling instead
[ 3.840256]: VoodooI2CHIDDevice::SYN1B8B Device initiated reset accomplished
[ 3.950151]: VoodooI2CHIDDevice:0x1000003b7 creating interfaces
[ 3.952867]: VoodooInputSimulatorDevice:0x1000003df start
[ 3.955592]: VoodooI2CHIDDevice:0x1000003b7 open by VoodooI2CPrecisionTouchpadHIDEventDriver 0x1000003d9 (0x0)
[ 3.955611]: VoodooI2CPrecisionTouchpadHIDEventDriver::SYN1B8B Putting device into Precision Touchpad Mode
[ 3.956538]: VoodooInputSimulatorDevice:0x1000003df creating interfaces
[ 3.956603]: VoodooInputActuatorDevice:0x1000003e5 start
[ 3.956908]: VoodooInputActuatorDevice:0x1000003e5 creating interfaces
[ 3.962786]: VoodooInputActuatorDevice:0x1000003e5 open by AppleActuatorHIDEventDriver 0x1000003f0 (0x0)
[ 3.962874]: VoodooInputSimulatorDevice:0x1000003df open by AppleMultitouchTrackpadHIDEventDriver 0x1000003f1 (0x0)
[ 3.966851]: ApplePS2Controller: Notification consumer published: VoodooI2CPrecisionTouchpadHIDEventDriver
[ 22.543958]: VoodooInputSimulatorDevice:0x1000003df new user client
[ 22.544184]: VoodooInputSimulatorDevice:0x1000003df open by IOHIDLibUserClient 0x1000005f7 (0x0)
[ 22.544306]: VoodooInputSimulatorDevice:0x1000003df close by IOHIDLibUserClient 0x1000005f7 (0x0)
[ 37.747386]: VoodooI2CPrecisionTouchpadHIDEventDriver::setProperties USBMouseStopsTrackpad = 0
[ 52.531492]: macl_get_vnode: failed to resolve vnode: 2macl_get_vnode: failed to resolve vnode: 2macl_get_vnode: failed to resolve vnode: 2
[ 54.893679]: sandboxd rejected approval request from MRT for kTCCServiceSystemPolicyAllFiles (/Users/mswgen/.Trash): deniedSystem Policy: MRT(446) deny(1) file-read-data /Users/mswgen/.Trash
[ 55.134189]: Sandbox: routined(364) deny(1) mach-lookup com.apple.Maps.MapsSync.store
[ 55.355526]: System Policy: MRT(446) deny(1) file-read-data /Users/mswgen/Library/Containers/com.apple.Safari
[ 55.403516]: System Policy: MRT(446) deny(1) file-read-data /Users/mswgen/Library/Containers/com.apple.CloudDocs.MobileDocumentsFileProviderSystem Policy: MRT(446) deny(1) file-read-data /Users/mswgen/Library/Containers/com.apple.Notes
[ 58.202606]: Sandbox: routined(364) deny(1) mach-lookup com.apple.Maps.MapsSync.store
[ 63.473597]: filecache_entry_set_syspolicy_locked: invalidating <ptr>
[ 70.185196]: macl_get_vnode: failed to resolve vnode: 2
[ 77.392029]: Sandbox: com.apple.WebKit(543) deny(1) iokit-get-properties Product IdentificationSandbox: 1 duplicate report for com.apple.WebKit deny(1) iokit-get-properties Product IdentificationSandbox: com.apple.WebKit(543) deny(1) mach-lookup com.apple.lsd.mapdbSystem Policy: com.apple.WebKit(543) deny(1) file-read-data /private/var/folders/ql/_wrk6mmd0cx5gt9wxwbwsgl80000gn/0/com.apple.LaunchServices.dv/com.apple.LaunchServices-2548-v2.csstore
[ 77.444680]: Sandbox: com.apple.WebKit(543) deny(1) network-outbound /private/var/run/syslogSandbox: com.apple.WebKit(543) deny(1) file-read-data /dev/dtracehelperSystem Policy: com.apple.WebKit(543) deny(1) file-read-metadata /private/var/folders/ql/_wrk6mmd0cx5gt9wxwbwsgl80000gn/0/com.apple.LaunchServices.dv/com.apple.LaunchServices-2548-v2.csstoreSandbox: 2 duplicate reports for com.apple.WebKit deny(1) file-read-metadata /private/var/folders/ql/_wrk6mmd0cx5gt9wxwbwsgl80000gn/0/com.apple.LaunchServices.dv/com.apple.LaunchServices-2548-v2.csstoreSandbox: passd(539) deny(1) user-preference-read com.apple.GEOSandbox: passd(539) deny(1) file-read-data /Users/mswgen/Library/Caches/GeoServices/Experiments.pbdSandbox: passd(539) deny(1) file-read-data /Users/mswgen/Library/Caches/GeoServicesSandbox: passd(539) deny(1) file-read-data /Users/mswgen/Library/Caches/GeoServices/networkDefaults.plistSandbox: passd(539) deny(1) file-read-data /Users/mswgen/Library/Caches/GeoServices/ResourcesSandbox: com.apple.WebKit(543) deny(1) file-read-data /Users/mswgen/Library/Preferences/com.apple.LaunchServices/com.apple.LaunchServices.plistSandbox: com.apple.WebKit(543) deny(1) mach-lookup com.apple.coreservices.quarantine-resolverSandbox: passd(539) deny(1) file-issue-extension target:/System/Library/PrivateFrameworks/PassKitCore.framework class:com.apple.app-sandbox.readSandbox: com.apple.WebKit(543) deny(1) mach-lookup com.apple.lsd.modifydbSandbox: passd(539) deny(1) mach-lookup com.apple.tccd.system
[ 78.316238]: Sandbox: 4 duplicate reports for cfprefsd deny(1) file-read-data /Users/mswgen/Library/Containers/com.apple.Safari/DataSandbox: com.apple.WebKit(543) deny(1) file-read-data /dev/dtracehelper
[ 111.826487]: Sandbox: routined(364) deny(1) mach-lookup com.apple.Maps.MapsSync.store
VoodooPS2Controller: Unhandled Keycode를 제외하고 그대로 올렸습니다.
현재 polling 모드로 작동하는 걸로 보이네요.
실제로 터치패드는 작동허지만 시스템 환경설정에서 트랙패드 설정을 할 수 없는 문제는
배터리 잔량 표시가 정상적으로 작동하지 않아서 그런 것 같아요.
그리고, TPD0 Device 하위에 GPIO Pin 에 해당하는 SBFG 가 없는 경우에는 직접 추가하면 됩니다.
SBFG 를 직접 추가하고 APIC Pin 의 값인 0x43 을 GPIO Pin 으로 변환한 후이 Pin List 에 입력하고
_CRS Method 를 수정하고 GPIO Controller 에 해당하는 GPI0 Device 의 _STA 를 활성화하면 Interrupt (GPIO) 모드를 사용할 수 있을 거예요.
아래의 사이트에서 Step 2b 단계의 SBFG 부분을 복사해서 넣어주면 됩니다. :)
https://voodooi2c.github.io/#GPIO%20Pinning/GPIO%20Pinning
현재 _CRS는
Return (ConcatenateResTemplate (SBFB, SBFI))
이렇게 되어있습니다.
Return (ConcatenateResTemplate (SBFB,
SBFG))
이렇게 바꾸고 _CRS to XCRS ACPI Rename을 하면 되나요?
...?
ioreg를 보니 BAT0의 _STA가 0x0이네요?
(ioreg는 원글에 첨부했습니다.)
...
베터리가 왤케 잡히지 않는걸까요...
SSDT랑 ACPI Rename도 다 했는데...
정말 죄송한데...
혹시 ssdt에서 어떤 부분이 문제가 있나요?
그리고 acpi rename 오타도 수정했지만 여전합니다.
acpi rename 오타는
5. IVBI to XVBI: 49 56 42 49 00 07 -> 58 56 42 49 00 07
를
5. IVBI to XVBI: 49 56 42 49 00 70 -> 58 56 42 49 00 70
이렇게 바꿨습니다.
Hot Patch 방식으로 SSDT 를 사용하여 배터리 패치를 하지 말고 DSDT 에 직접 패치하는 방식으로 배터리 패치를 진행하여 적용하고 다시 부팅해보세요.
네.
그런데 그렇게 하면 acpi rename이 다 무효가 되는데 irq 픽스는 잠깐 disable 할까요?
와ㅏㅏㅏㅏㅏㅏㅏㅏㅏ
정말 감격의 순간이에요!
감사합니다!!!
그리고 이상하게도 이 패치를 하니까 사운드도 되네요.
그러면 핫패치에 문제가 있다는 말인데...
축하드려요~. :)
음... Hot Patch 방식의 배터리 패치 SSDT 에서 EmbeddedControl Region 을 OEM DSDT 로 가져오고 나서
Region 및 Field 의 이름을 OEM DSDT 와 서로 다르게 하지 않았거나
해당 Field 에 정의된 배터리 관련 FieldUnitObject 의 Offset 값을 계산하면서 실수하거나 틀린 것이 아닌지 의심됩니다.
Offset (0x58),
RTMP, 8,
ECT1, 8,
ECT2, 8,
RG5B, 8,
FSPD, 16,
...
이런 것은
Offset (0x6C),
SPD0, 8,
SPD1, 8,
...
이런 식으로 하면 될까요?
네.
DSDT
OperationRegion (ERAM, EmbeddedControl, Zero, 0xFF)
Field (ERAM, ByteAcc, NoLock, Preserve)
{
Offset (0x40),
SW2S, 1,
, 2,
SCCT, 1,
TRPM, 1,
Offset (0x41),
WIN7, 1,
, 3,
LXFG, 1,
, 1,
, 1,
Offset (0x42),
, 2,
, 1,
, 2,
RWFG, 2,
AVCF, 1,
BBDA, 1,
CIRB, 1,
, 2,
GFXT, 1,
, 1,
GP12, 1,
Offset (0x44),
NICL, 1,
NICD, 1,
ACFO, 1,
Offset (0x45),
, 2,
NUCR, 1,
, 1,
WIN8, 1,
Offset (0x46),
DCFO, 1,
Offset (0x47),
ECT3, 8,
LKCL, 8,
Offset (0x4A),
TPVR, 8,
MUTS, 1,
MUTA, 1,
BLEX, 1,
, 1,
Offset (0x4C),
HKOK, 8,
USBM, 1,
SLMO, 1,
, 1,
LOSD, 1,
, 3,
Offset (0x4E),
Offset (0x4F),
F2DA, 8,
DWNK, 1,
Offset (0x52),
ECLS, 1,
WBSS, 1,
, 1,
PRDS, 1,
Offset (0x53),
APMD, 8,
Offset (0x58),
RTMP, 8,
ECT1, 8,
ECT2, 8,
RG5B, 8,
FSPD, 16,
Offset (0x5F),
, 3,
ENTP, 1,
Offset (0x60),
Offset (0x62),
ECTH, 8,
ECTL, 8,
Offset (0x65),
CMDF, 4,
Offset (0x66),
Offset (0x67),
, 2,
G6AC, 1,
G6RE, 1,
, 3,
UCSP, 1,
VOVA, 8,
Offset (0x6B),
DCBR, 8,
GWKR, 8,
Offset (0x6E),
BTLW, 8,
Offset (0x70),
DSCP, 16,
LACP, 16,
DSVG, 16,
Offset (0x77),
BANA, 64,
Offset (0x81),
PL1S, 3,
Offset (0x82),
MBST, 8,
MCUR, 16,
MBRM, 16,
MBCV, 16,
LKBR, 8,
LKBG, 8,
LKBB, 8,
Offset (0xA0),
QBHK, 8,
, 5,
EC6I, 1,
EC6O, 1,
FBST, 1,
Offset (0xA3),
CBSC, 8,
MBTS, 1,
MBTF, 1,
, 5,
BACR, 1,
MBTC, 1,
, 2,
MBNH, 1,
Offset (0xA6),
, 4,
, 1,
BLWK, 1,
, 1,
Offset (0xA7),
, 2,
BERR, 1,
FPRP, 1,
, 3,
TDEN, 1,
Offset (0xAA),
LKCC, 1,
LKBE, 1,
LKBC, 1,
LKBS, 1,
LKBA, 4,
Offset (0xAF),
Offset (0xB2),
RPM1, 8,
RPM2, 8,
Offset (0xB7),
VGAT, 8,
UCS0, 1,
UCS3, 1,
UCS5, 1,
Offset (0xB9),
CBLW, 8,
CLOW, 8,
CMAX, 8,
MCEA, 8,
Offset (0xC0),
, 1,
JPKB, 1,
, 3,
IDCU, 1,
, 1,
RGBK, 1,
LKBL, 4,
LKBM, 4,
TMOD, 8,
FANM, 1,
, 1,
BLIS, 1,
ACFN, 1,
DCFN, 1,
HDMI, 1,
NTEC, 1,
Offset (0xC6),
MCPE, 1,
MCPW, 1,
, 1,
S5PO, 1,
Offset (0xCA),
FN1R, 16,
FN2R, 16,
Offset (0xCF),
CBAL, 8,
EBPL, 1,
Offset (0xD2),
TPON, 1,
TPOF, 1,
FANE, 1,
FAND, 1,
STTP, 1,
Offset (0xD3),
PTPE, 1,
Offset (0xD4),
PSHD, 8,
PSLD, 8,
Offset (0xDA),
PSIN, 8,
PSKB, 1,
PSTP, 1,
, 1,
PWOL, 1,
PRTC, 1,
, 1,
, 1,
USBW, 1,
OWNR, 8,
Offset (0xDF),
ECBW, 1,
Offset (0xE0),
DLYT, 8,
DLY2, 8,
BRTL, 8,
BADJ, 8,
Offset (0xE6),
SFHK, 8,
ACBR, 7,
Offset (0xF0),
ENDT, 8,
Offset (0xF2),
, 5,
WLPW, 1,
WLPS, 1,
Offset (0xF4),
SFAN, 8,
Offset (0xF8),
BAAE, 1,
S3WA, 1,
BNAC, 1,
, 1,
EFS3, 1,
S3WK, 1,
RSAL, 1,
Offset (0xFA),
VERN, 32
}
어제 만들었는데 실패한 SSDT-BATT
OperationRegion (XRAM, EmbeddedControl, Zero, 0xFF)
Field (XRAM, ByteAcc, NoLock, Preserve)
{
Offset (0x5C),
SPD0, 8,
SPD1, 8,
Offset (0x70),
SCP0, 8,
SCP1, 8,
ACP0, 8,
ACP1, 8,
SVG0, 8,
SVG1, 8,
Offset (0x77),
BANX, 64,
Offset (0x83),
CUR0, 8,
CUR1, 8,
BRM0, 8,
BRM1, 8,
BCV0, 8,
BCV1, 8,
Offset (0xCA),
N1R0, 8,
N1R1, 8,
N2R0, 8,
N2R1, 8,
Offset (0xFA),
ERN0, 8,
ERN1, 8,
ERN2, 8,
ERN3, 8
}
offset 문제는 없어 보이네요.
혹시 WE1B Method에서 ERAM을 XRAM으로 바꿔야 하나요?
Method (WE1B, 2, NotSerialized)
{
OperationRegion (ERAM, EmbeddedControl, Arg0, One)
Field (ERAM, ByteAcc, NoLock, Preserve)
{
BYTE, 8
}
BYTE = Arg1
}
음... 저도 잘 모르겠습니다... ㅜㅅㅠ
위의 댓글 중 OGNS Region 의 ECOK 변수 부분에서
Access width of Field Unit extends beyond region limit 오류가 발생한 것으로 보면
OperationRegion (OGNS, SystemMemory, 0x9BA7B018, 0x00001003) 에서
0x00001003 을 0X00001006 으로 수정하거나
Field (OGNS, DWordAcc, NoLock, Preserve)
{
Offset (0x1000),
ECOK, 8,
OPR0, 8,
OPR1, 8
}
위의 내용에서 DWordAcc 를 ByteAcc 로 변경해야 할 것 같아요.
위의 두 가지 패치를 ACPI Rename 방식으로 적용할 수 있으면 좋을 것 같은데 될 지 모르겠네요...
사실 제가 dsdt 패치할 때도 저 에러가 나서 0x1003을 0x1004로 하니까 없어지긴 했어요.
그런데 그것이 실제로 일어났습니다.
이 ACPI Rename 적용 후 커스텀 DSDT는 disable 하고 ssdt-batt을 다시 enable 하고 재부팅하니
잘 뜹니다.
정말 감사드립니다!
"님의 댓글"
이 댓글을 신고 하시겠습니까?
제목 | 조회 수 | 날짜 | 글쓴이 |
---|---|---|---|
모니터(오류화면) 사진 찍을 때 팁(소소함) +270 | 11만 | 17.07.3020:49 | 달쇠 |
빠르고 정확한 답변을 받는 팁 및 질답자의 매너, EFI폴더 압축법 +90 | 12만 | 17.02.1014:21 | Mactopia |
Hot 오픈코어로 단일 ssd로 듀얼부팅 설정시 윈도우 블루스크린문제 해결방... +11 | 33 | 24.10.2318:25 | 헷인토시 |
Hot 새로운 os 설치, 벤츄라가 좋을까요? 세콰이어가 좋을까요? +10 | 94 | 24.10.2308:19 | 미찌콘 |
Hot 맥프로를 들여왔는데 질문이 있습니다. +5 | 48 | 24.10.2315:51 | 배고픈사람 |
22 | 24.10.2322:21 | 활주로임 | |
33 | 24.10.2318:25 | 헷인토시 | |
38 | 24.10.2317:01 | 활주로임 | |
48 | 24.10.2315:51 | 배고픈사람 | |
35 | 24.10.2315:18 | 희밍현수님 | |
94 | 24.10.2308:19 | 미찌콘 | |
90 | 24.10.2213:48 | 아킬리오 | |
77 | 24.10.2210:36 | MCMC | |
51 | 24.10.2200:57 | 헷인토시 | |
133 | 24.10.2123:22 | 마요네즈 | |
148 | 24.10.1914:54 | 활주로임 | |
172 | 24.10.2017:21 | RTings | |
183 | 24.10.2000:14 | Kylee | |
116 | 24.10.1921:50 | 루이코아낭 | |
194 | 24.10.1918:03 | Gastone | |
80 | 24.10.1721:28 | Oscar | |
197 | 24.10.1712:11 | 희밍현수님 | |
69 | 24.10.1612:42 | SystemShock | |
305 | 24.10.1517:37 | Gastone | |
1088 | 24.10.1517:20 | 물만두 | |
1622 | 24.10.1317:18 | 물만두 | |
1273 | 24.10.1315:07 | Steer | |
872 | 24.10.1004:51 | Steer | |
185 | 24.10.0920:24 | KImET | |
927 | 24.10.0915:49 | lesmi | |
178 | 24.10.0911:23 | LumOS | |
73 | 24.10.0902:16 | lesmi | |
909 | 24.10.0822:09 | 애플맨 | |
1313 | 24.10.0810:58 | soullees | |
112 | 24.10.0723:26 | 오십견 | |
1232 | 24.10.0723:14 | Steer | |
115 | 24.10.0721:40 | 서재희 | |
69 | 24.10.0704:04 | g2030h61 | |
88 | 24.10.0704:00 | g2030h61 | |
92 | 24.10.0620:14 | SystemShock | |
113 | 24.10.0617:57 | 늘심심 | |
1372 | 24.10.0601:48 | 아스타틴 | |
1271 | 24.10.0515:04 | lesmi | |
129 | 24.10.0422:58 | 낡은기계 | |
544 | 24.10.0315:33 | oreo | |
117 | 24.10.0315:26 | 매치포인트 | |
175 | 24.10.0313:01 | 매치포인트 | |
148 | 24.10.0311:30 | KAKU | |
318 | 24.10.0207:44 | 데스맥 | |
254 | 24.09.3014:22 | 민준송 | |
172 | 24.09.2922:21 | oreo | |
133 | 24.09.2917:58 | 수박 | |
111 | 24.09.2913:21 | 루마루 | |
206 | 24.09.2910:19 | 루마루 | |
140 | 24.09.2723:18 | 머트 | |
146 | 24.09.2720:41 | ashly | |
230 | 24.09.2716:50 | loopers | |
211 | 24.09.2602:42 | Caper | |
288 | 24.09.2301:36 | 낡은기계 | |
164 | 24.09.2122:38 | Door | |
225 | 24.09.2108:35 | 루베콘 | |
502 | 24.09.2022:16 | 에잉 | |
223 | 24.09.1910:03 | 밤가시 | |
306 | 24.09.1822:20 | SUNWAYFOTO | |
732 | 24.09.1815:34 | Nelson | |
444 | 24.09.1814:34 | sebali | |
236 | 24.09.1813:37 | Panictosh | |
338 | 24.09.1801:27 | SUNWAYFOTO | |
155 | 24.09.1719:17 | 그냥인간 | |
331 | 24.09.1620:36 | dlraud | |
217 | 24.09.1618:45 | Nelson | |
100 | 24.09.1612:07 | 아스타틴 | |
200 | 24.09.1522:02 | lesmi | |
265 | 24.09.1323:56 | 윤수꾸하하 | |
639 | 24.09.1319:18 | 뚜비 | |
1550 | 24.09.1200:33 | Steer | |
255 | 24.09.0918:08 | 상큼버터 | |
1446 | 24.09.0717:13 | 인터찹 | |
1554 | 24.09.0711:07 | 서재희 | |
1464 | 24.09.0113:39 | 시습이 | |
495 | 24.08.3022:44 | 블루 | |
435 | 24.08.2911:20 | lesmi | |
449 | 24.08.2823:04 | 김덕뱀 | |
326 | 24.08.2517:14 | 그냥구름 | |
264 | 24.08.2218:42 | Panictosh |
단, I2cSerialBusV2 에 해당하는 Resource Template 의 이름이 일반적으로 SBFB 이지만 노트북의 모델마다 다를 수도 있습니다.
주로, 삼성 노트북의 I2C 터치패드에 해당하는 SPTP Device 는 SBFB 가 아닌 SBFS 입니다.
[VoodooI2C] 터치패드 GPIO Pinning 작업 - APIC Pin 의 값을 통하... - 커스텀맥(해킨) 강좌&Tip - 엑스팔육 (x86.co.kr)