AsusSMC的简单教程
本帖最后由 杨花落尽besos 于 2021-11-18 18:08 编辑更新时间2021.11.18前言:作为华硕笔记本用户,从玩黑苹果开始就对键盘快捷键以及键盘背光心有遗憾,虽然那时候玩的时候还是Clover,但是AsusSmc.kext却已经存在。但是纵观整个论坛,我几乎没有找到关于AsusSMC的任何食用教程,但是在各教程的kext中又有对AsusSMC对引用,却一直不知道怎么用。现在转到了OC,在研究过SSDT后再去看看AsusSMC,发现其实食用并不难。于是便有了今天这篇文章!
要求:主要是华硕笔记本用户,对黑苹果有一定自己的研究(伸手党跟白嫖党),熟悉OC的特性并会对Config进行一定对修改(照搬),对DSDT与SSDT有一定对了解,最好是会一点语法基础,并能进行修改对,能看懂编译aml的错误代码并修改的人群(CTRL+C,CTRL+V)。 正片:AsusSMC链接:https://github.com/hieplpvip/AsusSMCWiki:https://github.com/hieplpvip/AsusSMC/wiki/Installation-InstructionWiki里面是原作者对AsusSMC的食用说明教程,但是在阅读后发现这里面教程并没有更新到最新,还是针对DSDT进行修改,只适合用于Clover,而对于OC来说,直接加载DSDT已经不被推荐了,OC会对所有对操作系统注入ACPI。因此在只需要根据原作者的patches(DSDT补丁)制作对应的SSDT并加载,同时加载AsusSMC.kext,就可以食用大部分功能。下载仓库文件跟relesse版本的AsusSMC.kext。这里面比较重要就是patches,跟AsusSMC.kext内核驱动,接下来就是制作SSDT了。首先是加载DSDT的补丁库,后来发现需要科学上网才能加载出来。因此推荐食用第二种方法,就是加载Patches里的补丁,两者补丁内容是一样里,因此在这里主要介绍加载本地补丁进行修改DSDT,并制作SSDT的方法。1.修复键盘背光请注意后面的操作以我的DSDT为例,提取DSDT后用MaciASl打开后,根据CPU的平台选择对应的补丁,比如我的是i5-7200U,就选择kabylake这个补丁。打开MaciASl->补丁库->应用本地补丁文件->选择对应丁补丁->应用
补丁打完之后,后面就需要根据这个内容制作SSDT。在打补丁的时候可以发现这个补丁并没有修改内容,而是增加了一段内容。在DSDT中搜索“SKBV”这个搜索内容就是刚刚补丁的内容,只需要定位到他的位置即可。
根据左下角可以知道路径,创建SSDT,创建Scope域并填写路径,在Scope下复制刚刚打上的补丁内容,并在Scope上面添加外部引用进行编译没有错误就行。
外部引用的方法这里就不罗列了。https://xstar-dev.github.io/hackintosh_advanced/Guide_For_Battery_Hotpatch.html这篇文章是关于电池热补丁的,非常有用,里面有详细的关于“引用外部声明”的内容。打不开的话,开VPN再试试。至此关于键盘背光的SSDT就完成了,是不是一点都不难。将SSDT添加到ACPI,AsusSMC.kext添加到kext目录下。Config关联,重启后就会发现键盘背光可以食用了,需要注意的时要在键盘设置里需要关闭【在光线较弱时调整键盘亮度】,这样在强光下也可以调整,不关闭的话在强光下无法调整。
2.键盘快捷键
关于键盘快捷键的教程推荐去看https://blog.skk.moe/post/ssdt-map-fn-shortcuts/该作者也是《从 Clover 到 OpenCore —— Clover 迁移 OpenCore 指南》的作者,小兵哥是转载,嘿嘿嘿,懂得!按照教程的话,需要重新建立键盘映射,需要学习PS2跟ABD的扫描码,比较麻烦,而AsusSMC的作者已经将补丁弄好,我们只需要进行食用就行了,方便了许多在食用键盘快捷键前,先看看Wiki里面对键盘对介绍,在食用AsusSMC的时候需要先移除AsusNBFnKeys,接下来就是制作SSDT了。同理方法还是一样,先在DSDT中打上补丁后,复制补丁内容到新建的SSDT里,添加系统判断,外部引用,编译无误后就可以食用了。后面操作以Fn+F3“调节键盘背光快捷键”为例,选择F3的补丁,注意打补丁前后的区别,选择应用补丁,并且搜索“_SB.ATKD.IANE”定位到该补丁位置,发现Fn+F3对应到是“_Q0C”,“_Q0D”则对应Fn+F4,其余快捷键。可以查看对应补丁。找到补丁位置后,新建SSDT文件,在SSDT文件中新建Scope域,路径方法同上。可以看到这里我是已经添加了系统判断,如果操作系统是Mac就继续,如果不是就执行XQ0C。因此需要对原DSDT中对_Q0C重命名成XQ0C,这样当不是Mac系统时实际执行当就是原DSDT的_Q0C(重命名成XQ0C)。其余的快捷键的操作方法一样。需要注意的是每个快捷键对应的值是不一样的。更新一下需要注意的是Else的位置,是跟系统判断的IF 同级别,正确的已修改。如图蓝色框的部分。之前用OC引导进Windows后发现快捷键不能用,查看SSDT后,发现位置错了,导致在Windows下没有返回更名后的函数(XQ0C)。重命名的方法请参考上面那篇《电池补丁教程》完成之后就需要进行添加外部引用,编译无误后,就可以放进ACPI里加载了。3.环境光传感器OC-little里面的仿冒环境光传感器可以直接食用,有问题的在根据补丁修改吧,方法还是一样,这种只要懂了,一通百通,这里就不赘述了。
后面是修复完成的截图,最新Monterey照样可以用。
SSDT-ATKD.AML (键盘背光)DefinitionBlock ("", "SSDT", 2, "ACDT", "ATKD", 0x00000000)
{
External (_SB_.ATKD, DeviceObj)
External (_SB_.KBLV, FieldUnitObj)
External (_SB_.PCI0.LPCB.EC0_.ST9E, MethodObj) // 3 Arguments
External (_SB_.PCI0.LPCB.EC0_.WRAM, MethodObj) // 2 Arguments
Scope (\_SB.ATKD)
{
Method (SKBV, 1, NotSerialized)
{
^^PCI0.LPCB.EC0.WRAM (0x09F0, ^^KBLV)
^^PCI0.LPCB.EC0.ST9E (0x1F, 0xFF, Arg0)
Return (Arg0)
}
}
}
SSDT-ALS0(环境光传感器)DefinitionBlock ("", "SSDT", 2, "ACDT", "ALS0", 0x00000000)
{
Scope (_SB)
{
Device (ALS0)
{
Name (_HID, "ACPI0008" /* Ambient Light Sensor Device */)// _HID: Hardware ID
Name (_CID, "smc-als")// _CID: Compatible ID
Name (_ALI, 0x012C)// _ALI: Ambient Light Illuminance
Name (_ALR, Package (0x01)// _ALR: Ambient Light Response
{
Package (0x02)
{
0x64,
0x012C
}
})
Method (_STA, 0, NotSerialized)// _STA: Status
{
If (_OSI ("Darwin"))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
}
}
}
SSDT-FN.aml(Fn快捷键)代码有点多,放进去超字节了,这里快捷键我只选取了我用得到了。F3 键盘背光减弱F4 键盘背光增加F5 屏幕背光减弱F6 屏幕背光增加F9 触摸板开关F10 静音F11 音量减F12 音量加Ps:F1睡眠我试了一下,添加后没有反应,
支持! 牛比格拉斯,感谢大佬分享{:5_293:} 华硕顽石笔记本的触摸板ELAN1201也是,无论如何也无法在GPIO下使用,ssdt改名 dsdt啥的都试过了就是不行,偶尔用检测软件检测到是在gpio模式了,但是触摸板是无法操作的,愁死我了,现在看来时普遍问题 牛比格拉斯,感谢大佬分享 飞行堡垒6有搞好的嘛 谢谢楼主分享{:5_293:} Liyi~debug 发表于 2021-2-6 10:25 https://www.pcbeta.com/static/image/common/back.gif
飞行堡垒6有搞好的嘛
我的不是飞行堡垒,但是你可以试一下
谢谢楼主分享,试一下 原有的睡眠之后才有背光 楼主,我弄了ssdt也在oc中加了,也放了驱动。还是不行。i7-6700的华硕飞行堡垒。 zhaoshaox 发表于 2021-5-31 17:31
楼主,我弄了ssdt也在oc中加了,也放了驱动。还是不行。i7-6700的华硕飞行堡垒。
按常理来说,应该是没问题的,具体的问题细节我是不清楚的,多看看,摸索一下,如果步骤理论操作什么都正确,那可能就是特例的那种,我也解决不了 zhaoshaox 发表于 2021-5-31 17:31
楼主,我弄了ssdt也在oc中加了,也放了驱动。还是不行。i7-6700的华硕飞行堡垒。
按照wiki里面给的,环境光,键盘背光,快捷键,都试试,看看是不是有能用的,还是说全部补丁都不行,只是我沟通过的群友是可以的。虽然个别快捷键可能会有问题。
谢谢楼主分享,回去试一下 杨花落尽besos 发表于 2021-5-31 18:38 https://www.pcbeta.com/static/image/common/back.gif
按常理来说,应该是没问题的,具体的问题细节我是不清楚的,多看看,摸索一下,如果步骤理论操作什么都正 ...
fn健可以用,光感应没事。键盘背光不能用。这是我的配置https://bbs.pcbeta.com/viewthread-1890354-1-1.html 666666,谢谢楼主分享,试一下,我是华硕电脑,平板系别啊,t305ca后面实施,也是小白,刚刚学习,因为别人分享了efi,但是不完善 之前用4代cpu的zx50j的时候搞过这个。我记得驱动asussmc后FN键F1,F2,F5,F6,F10,F11,F12是没问题的,所以只修补了键盘背光和F3,F4,F7,F8,F9。aml贴上来供你们参考一下/*
* Intel ACPI Component Architecture
* AML/ASL+ Disassembler version 20200925 (64-bit version)
* Copyright (c) 2000 - 2020 Intel Corporation
*
* Disassembling to symbolic ASL+ operators
*
* Disassembly of iASLMCF2Pu.aml, Fri Sep3 15:39:09 2021
*
* Original Table Header:
* Signature "SSDT"
* Length 0x00000185 (389)
* Revision 0x02
* Checksum 0xFE
* OEM ID "HIEP"
* OEM Table ID "ATK"
* OEM Revision 0x00000000 (0)
* Compiler ID "INTL"
* Compiler Version 0x20180427 (538444839)
*/
DefinitionBlock ("", "SSDT", 2, "HIEP", "ATK", 0x00000000)
{
External (_SB_.ATKD, DeviceObj)
External (_SB_.ATKD.IANE, MethodObj) // 1 Arguments
External (_SB_.ATKP, IntObj)
External (_SB_.KBLV, FieldUnitObj)
External (_SB_.PCI0.LPCB.EC0_, DeviceObj)
External (_SB_.PCI0.LPCB.EC0_.WRAM, MethodObj) // 2 Arguments
Scope (_SB.ATKD)
{
Name (DMES, One)
Method (IANE, 1, NotSerialized)
{
Notify (ATKD, Arg0)
}
Method (SKBV, 1, NotSerialized)
{
^^PCI0.LPCB.EC0.WRAM (0x04B1, Arg0)
Return (Arg0)
}
}
Scope (_SB.PCI0.LPCB.EC0)
{
Method (_Q0A, 0, NotSerialized)// _Qxx: EC Query, xx=0x00-0xFF
{
If (^^^^ATKP)
{
^^^^ATKD.IANE (0x5E)
}
}
Method (_Q0B, 0, NotSerialized)// _Qxx: EC Query, xx=0x00-0xFF
{
If (^^^^ATKP)
{
^^^^ATKD.IANE (0x7D)
}
}
Method (_Q0E, 0, NotSerialized)// _Qxx: EC Query, xx=0x00-0xFF
{
If (^^^^ATKP)
{
^^^^ATKD.IANE (0x20)
}
}
Method (_Q0F, 0, NotSerialized)// _Qxx: EC Query, xx=0x00-0xFF
{
If (^^^^ATKP)
{
^^^^ATKD.IANE (0x10)
}
}
Method (_Q11, 0, NotSerialized)// _Qxx: EC Query, xx=0x00-0xFF
{
If (^^^^ATKP)
{
^^^^ATKD.IANE (0x61)
}
}
}
} 楼主还在不?12.4是不是失效了? stonesma 发表于 2022-7-18 16:45 https://bbs.pcbeta.com/static/image/common/back.gif
楼主还在不?12.4是不是失效了?
我13 都还在用,没得问题
牛比格拉斯,感谢大佬分享
页:
[1]
2