解决电池电量显示不准确,或者时有时无等现象 序言:根据rehabman大神的电池补丁教程,对大于8进制的变量进行拆分修改后,大多数设备都可以正常驱动acpibattery.kext;但我却遇到了另一种情况,在关于设备-系统报告中,可以看到自己的电源各种参数(序列号、制造商、电池容量等均正常),偏偏就是获取不到电量,甚至在对bat的修复过程中,电量还会出现一会有一会没有的情况。 解决方法: 第一步: 提取完整的ssdt(包括ssdt-CpuPm,ssdt-Cpu0Ist) 根据经验来说,很多情况下,table-id在提取后可能显示不准确,这里推荐一个折中的方法,不一样符合acpi规范,不喜勿喷: 1、 ssdt-cpuPm绝大多数会被提取出来,如果没发现,可使用ssdtprgen.sh 创建,具体方法论坛很早就有 2、 ssdt-cpu0Ist大多数都能找到,如果没有翻遍你的ssdt,找到一个文件树全是cpu0、cpu1、cpu2、cpu3的oem table,将其命名table-id命名为Cpu0Ist,如果还想准确一点,可以任意修改一个后,使用maciasl提取表名为 Cpu0Ist的ssdt(你会发现这个文件的内容和你重命名的那个ssdt并不一样) 3、 记得在clover里drop掉相应的ssdt表 第二步:选择一个和你的cpu相近的smbios 例如,我的cpu是i5-5200u,那我可以选择smbios中五代的低压版本,这对驱动x86-plugin有一定的帮助,自行尝试,看运气 第三步:查看电池驱动的情况 不同的电脑电池驱动不一样,尤其是那些没有人做过电池补丁的机型,所以在打完补丁后,应该查明自己电池驱动的实际状况 1、 在系统报告中查看电源信息,我的是lg 2、 在ioregistryexplorer中搜索关键字 bat 关键的地方来了!我搜索出来的设备仅仅bat1一个,并且其型号与我已经显示电池信息的lg电池一样,所以bat1就是我的电池。但是,!!!如果这里出现多个电池,必须要仔细地确认你的bat是哪一个。 最后一步:如果发现你有多个电池驱动,使用最简单粗暴的办法,删除它。在dsdt中搜索这个设备,比如bat2 首先删除device(bat2)的所有内容,然后注释掉使用bat2的地方,例如Notify (\_SB.PCI0.LPCB.H_EC.BAT2, 0x81) //大多数设备会在这里更新电量 希望能够帮助各位rehabman大神没有写补丁机型的吧友完善电池补丁,虽然很多都是大神早就总结出来的,但是小白可能会漏掉,希望对大家有所帮助。
|