- 积分
- 293
- 最后登录
- 2021-3-12
- 精华
- 0
- 阅读权限
- 30
- 主题
- 59
- UID
- 1522039
- 帖子
- 463
- PB币
- 1204
- 威望
- 18
- 贡献
- 0
- 技术
- 22
- 活跃
- 961
- UID
- 1522039
- 帖子
- 463
- PB币
- 1204
- 贡献
- 0
- 技术
- 22
- 活跃
- 961
|
引用:https://github.com/maximevince/VoodooI2CPCI/releases/tag/v1.0 - VoodooI2C driver that works on my Skylake ASUS UX305CA, with ELAN1000 touchpad.
复制代码翻译过来给大家参考。
第一步,禁止Apple I2C驱动加载。 - sudo mv /System/Library/Extensions/AppleIntelLpssI2C.kext /System/Library/Extensions/AppleIntelLpssI2C.kext.old
复制代码
第二步,给DSDT打补丁(以下范例供参考)。 # I2C 控制器 - Scope (_SB.PCI0)
- {
- Device (I2C0)
- {
- Name (LINK, "\\_SB.PCI0.I2C0")
- Name (_HID, "INT3442") // _HID: Hardware ID
- Method (_HRV, 0, NotSerialized) // _HRV: Hardware Revision
- {
- Return (LHRV (SB10))
- }
- Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
- {
- Return (LCRS (SMD0, SB00, SIR0))
- }
- Method (_PSC, 0, NotSerialized) // _PSC: Power State Current
- {
- GETD (SB10)
- }
- Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
- {
- LPD0 (SB10)
- }
- Method (_PS3, 0, NotSerialized) // _PS3: Power State 3
- {
- LPD3 (SB10)
- }
- Method (_STA, 0, NotSerialized) // _STA: Status
- {
- Return (LSTA (SMD0))
- }
- Name (_ADR, 0x00150000) // _ADR: Address
- Method (XDSM, 4, Serialized)
- {
- If (PCIC (Arg0))
- {
- Return (PCID (Arg0, Arg1, Arg2, Arg3))
- }
- Return (Zero)
- }
- }
- }
复制代码 # I2C 触控板 - Scope (_SB.PCI0.I2C0)
- {
- Device (ETPD)
- {
- Name (_ADR, One) // _ADR: Address
- Method (_HID, 0, NotSerialized) // _HID: Hardware ID
- {
- If (ELAN)
- {
- Return ("ELAN1000")
- }
- If (FOLT)
- {
- Return ("FTE1001")
- }
- Return ("ELAN1010")
- }
- Name (_CID, "PNP0C50") // _CID: Compatible ID
- Name (_UID, One) // _UID: Unique ID
- Name (_S0W, 0x03) // _S0W: S0 Device Wake State
- Method (_S3W, 0, NotSerialized) // _S3W: S3 Device Wake State
- {
- If (LEqual (S0ID, Zero))
- {
- Return (0x03)
- }
- Else
- {
- Return (Zero)
- }
- }
- Method (_DSM, 4, NotSerialized)
- {
- If (LEqual (Arg0, ToUUID ("3cdff6f7-4267-4555-ad05-b30a3d8938de") /* HID I2C Device */))
- {
- If (LEqual (Arg2, Zero))
- {
- If (LEqual (Arg1, One))
- {
- Return (Buffer (One)
- {
- 0x03
- })
- }
- Else
- {
- Return (Buffer (One)
- {
- 0x00
- })
- }
- }
- If (LEqual (Arg2, One))
- {
- Return (One)
- }
- }
- Else
- {
- Return (Buffer (One)
- {
- 0x00
- })
- }
- }
- Method (_STA, 0, NotSerialized) // _STA: Status
- {
- If (LEqual (TPIF, Zero))
- {
- Return (Zero)
- }
- If (And (DSYN, One))
- {
- Return (Zero)
- }
- Return (0x0F)
- }
- Method (_CRS, 0, Serialized) // _CRS: Current Resource Settings
- {
- Name (SBFI, ResourceTemplate ()
- {
- I2cSerialBusV2 (0x0015, ControllerInitiated, 0x00061A80,
- AddressingMode7Bit, "\\_SB.PCI0.I2C0",
- 0x00, ResourceConsumer, , Exclusive,
- )
- Interrupt (ResourceConsumer, Level, ActiveLow, Shared, ,, )
- {
- 0x0000006D,
- }
- })
- Return (SBFI)
- }
- }
- }
复制代码
PS:安装kext前可以先手动加载看看。 - [ DISCUZ_CODE_148 ]gt; sudo cp -R ~/Downloads/VoodooI2C.kext /tmp
- [ DISCUZ_CODE_148 ]gt; sudo kextutil -v /tmp/VoodooI2C.kext
复制代码 |
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
|