xps9570 clover/oc 开发记录
- Machine :Dell XPS 9570
- CPU: Intel i7-8750H
- GPU: UHD630
- RAM: 16GB RAM
- Display: 4K Sharp Display
- SSD: SM961
- Audio: Realtek ALC3266
- WLAN + Bluetooth : apple 原生网卡
- Goodix fingerpint reader (bios关闭)
- sd-card(bios关闭)
- touch panel(bios关闭)
- Nvidia Gefore 1050Ti(bios断电关闭)
I2C会导致很高的kernel task占用,我有一种感觉这个是最后需要解决的问题
I2C 两条线路是I2C1 于I2C0
这两个线路分别是I2C1 的TPD0触摸板和I2C0 的TPL1的触摸屏
TPD0的为APIC 轮询pin:0x33
TPL1的为APIC 轮询pin:0x3b
实际上大于0x2F的就是无法使用APIC 中断了
所以正确的做法是改为GPIO中断
附上代码
Method (_CRS, 0, NotSerialized) {
Name (SBFB, ResourceTemplate ()
{
I2cSerialBusV2 (0x002C, ControllerInitiated, 0x00061A80,
AddressingMode7Bit, "\\_SB.PCI0.I2C1",
0x00, ResourceConsumer, _Y40, Exclusive,
)
})
Name (SBFG, ResourceTemplate ()
{
GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
"\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
)
{ // Pin list
0x009e
}
})
Return (ConcatenateResTemplate (SBFB,SBFG))
}
并且将返回值的SBFI置换为SBFG,因为默认是0x17中断,但是实际上要用0x9E中断或者0x1b中断,实测下来kernel task稳定在11%。即使是在快速长久触发GPIO中断下的触摸板时 TPL1触摸屏同理
dell是双驱动模式的PS2M 和TPL TPD 还有多余的一组TPL和TPD我想是这些影响了高kernel task
很多CLOVER建议是用30或者72的点
查询源码得知
分别为layout——id为ALC298的点是
3,11,13,21,22,28,29,30,47,66,72,99
30是Constanta - Realtek ALC298 for Xiaomi Mi Notebook Air 13.3 Fingerprint 2018
72是Custom - Realtek ALC298 for Dell XPS 9560 by KNNSpeed
显然72更适合xps9570,为什么有些人会觉得72不适合或者30不适合
让我们查看源代码
<01271c30 01271d00 01271ea0 01271f90
01771c40 01771d00 01771e17 01771f90 01770c02 (EPAD)
01871c70 01871d10 01871e81 01871f00
02171c20 02171d10 02171e21 02171f00>
layout=30:
首先是0x17为内置speaker输出 01170c02是EAPD的参数,看起来十分好但是0x18的是70108100这个是
是外置输入mic,black linein输入3.5mm接口
实际上是正确的,但是他的GPIOmute是错误的
应该是0x50010018的10进制。实际加入后并无效果
layout=72:
<01271c10 01271d01 01271ea6 01271f90
01771c20 01771d01 01771e17 01771f90
01871c30 01871d10 01871eab 01871f03
01a71c40 01a71d10 01a71e8b 01a71f03
02171c50 02171d10 02171e2b 02171f03 01470c02 01770c02 01a70c02 02170c02>
0x18的是完全错误的,但是节点没有0x18的节点,输入定义了但是没有给节点
所以我的思路是对0x18驱动对0x1a屏蔽,也就是分别为0x17内置扬声器
0x21耳机输出,0x18外置mic输入,0x12内置mic驱动,其余屏蔽
实际看下来只有layout 为11的比较相似。或许layout 为11更好驱动一些
2019.8.24
新增layout 为32的点在applealc 试音新的applealc即可注入
注:
VolumeAmplifier: 1000
音量在原有基础上放的百分比
有效范围 0 ~ 1000
MinimumVolume:
输出最小音量, 有效值为 0 ~ 100
使用HDEF来注入的话会导致外置mic无法驱动,但是不用的话又会导致耳机输出无声,使用alc298fix+辅助kext或许是导致耳机无mic输入的关键
注入点正确,但是不显示为外置,而依然是内置mic,怀疑是intel智音系统会自动将外置mic转为内置mic,在win10下也是无法通过3.5mm耳机孔来观看是否是外置还是内置,全部显示为外置,但是在linux下可以显示为外置。
注入点正确,但是不显示为外置,而依然是内置mic,怀疑是intel智音系统会自动将外置mic转为内置mic,在win10下也是无法通过3.5mm耳机孔来观看是否是外置还是内置,全部显示为外置,但是在linux下可以显示为外置。
2019.8.24
更正一些知识点macbookpro不能外置MIC只能用折中办法将line in来驱动,但是无奈xps15没有line in接口只有mic输入,所以无解。
使用weg的手册,但是codec和connect-type均正确却无输出。原因未知
尝试使用fakePCIID
原因是未检测到codec,所以hdef上无hdmi分支,但是在插入的话无法热启动。
尝试虚拟一个分支,或者伪造一个hdmi,尝试在applealc中添加核显hdmi控制器
发现大佬的oc可以完美HDMI音频热拔插
获取DSDT的不知道哪里的参数,伪造了个转速,实际原因是因为fan的储存位置不知,其次是如何控制,关于解锁EC可给出建议。但是EC写数据是非常危险的,很可能导致无法开机。
EC控制器猜测解锁的位置
解锁:0x30a3
上锁:0x34a3
fan传感器更新:
从EC中获取风扇传感器温度以及PCH温度 DIMM温度现已更新
未在catalina中测试
远景上的教程
反编译bios文件,后得到了所有部件的寄存器位置,在bios已经实现了显卡供电阻断,但是危险性较高。所以放出部分部件的寄存器位置,供大家解锁 这里有很完整的教程 根据以上教程,总结如下
下载modGRUBShell.efi, 并重命名为bootx64.efi
在U盘内创建一个EFI文件夹,并再在此文件夹下创建文件夹BOOT,并将bootx64.efi放入BOOT下: 重启电脑,我们通过UEFI启动此U盘进入GRUB shell
setup_var_3 0x5C1 0x00 0x5C1是寄存器地址 0x00是写入值
请注意更新bios不会覆盖大多位置,但是具体情况还是要具体分析
名称 | 地址 | 写入值 | 备注 |
---|---|---|---|
CFG-LOCK | 0x5BD | 0x00(unlock)/0x01(lock) | 解锁E2寄存器 |
Overclocking Lock | 0x659 | 0x00(unlock)/0x01(lock) | 超频锁 |
PL1enable | 0x5AB | 0x00(disable)/0x01(enable) | PL1功耗墙 |
PL2 Enable | 0x5B1 | 0x00(disable)/0x01(enable) | PL2功耗墙 |
DVMT Pre-Allocated | 0x8E6 | 0x00(0m)/0x01(32m)/0x02(64m) | 0x03(undefined)请注意没有96m |
TDP Lock | 0x5BF | 0x00(disable)/0x01(enable) | TDP热设计功耗墙 |
DPTF | 0x39E | 0x00(disable)/0x01(enable) | CPU散热动态调节 |
下面还未确认具体信息 | dangerous&&No specific write value confirmed | ---- | ---- |
FAN0 SPEED | 0x38A | 温度和转速设定的二元一次函数 0xF到0x77 | 风扇0转速 |
FAN1 SPEED | 0x389 | 温度和转速设定的二元一次函数 0xF到0x77 | 风扇1转速 |
更多信息点此 |
解锁EC�风扇控制位,动态注入风扇控制
目前采用bios关闭DPTF解决此问题
超频指南点这里
实际上过于复杂,如果为了测试分数可以使用,但是实际用处不大,故废弃。如果您有更有效的变频请留下创意。附常规测试分数。
发现大佬的oc可以完美睡眠唤醒,且不用开盖后再按电源键唤醒,耗电更是低到每晚1%
特别渠道得到了xps9560的主板原理图,相信会从中发现破解端倪。
留坑
- i2C驱动错误
- 雷电三热拔插
- Rehabman
- bavariancake
- LuletterSoul:深度整合了各种优良的EFI并且使用最新方法来完善,EFI几乎是完美的,本MD参考他的。