[翻译] Skylake下I2C触摸板驱动
引用:https://github.com/maximevince/VoodooI2CPCI/releases/tag/v1.0VoodooI2C 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 谢谢,下载了试试看 大神,请问小米笔记本触控板驱动了吗? 一定要修改dsdt吗? 修改dsdt重启,dsdt错误,然后voodooI2C错误》 dsdt修改完毕。。但是voodooI2C就panic了。。
dsdt修改完毕。。但是voodooI2C就panic了。。 谢谢,下载了试试看 谢谢,下载了试试看 谢谢分享。 感谢楼主成都热心分享 下载了这个链接https://github.com/maximevince/VoodooI2CPCI/releases/tag/v1.0里的voodooI2C.kext 安装后就panic了 禁用AppleIntelLpssI2C.kext,再安装链接里的voodooI2C,就死机
谢谢老大分享 感谢楼主分享!
页:
[1]