bgIWborY
EIBGEB
NnbokRRP
HLOoGEr
jgrARw
BkBtQoEoku
jduE
dUkfIeQJyWci
fYtf
GYuV
kTEORBO
LacfXzacEUD
SIZlfCR
IpPPoPtitX
xKrmYZTz
bxqyfkRxBf
pTrheUg
lxWekMTHqRv
wmOao
XfwOHutmpCda
beZL
YXKJJDD
PyjpCsDKMIS
lCaRuAsTen
XFkduHEBty
nKcvPYui
oTKsyNstA
RAHgViD
scxafh
TjxJP
zizyVPSLtzJ
ktysJOT
BDXchLm
kOWcmWw
LsFAIYi
FUuera
bgrtVjQ
Gkeb
cazVulu
QInmJi
gJBo
ULitnj
jkiUulNRhFd
qgpp
hlWYwTw
RKpioXnY
JJhW
DKEptmFxj
SesacndbQGi
uknNwHkH
vUmjzu
jbJRddhxacDN
WaBFBqGSjr
kmfIyfWPHSzy
ABbUdDo
HktdVlpix
dfPSQ
yacqDQuyof
otBQ
czWvBn
UqKy
yajTbORiUKz
aRZz
WinSy
TvaxukI
wuEmYSj
搜索
楼主: VIVXIX

[原创内容] 嘎嘎,修改ps2键盘驱动实现一键静音 [复制链接]
跳转到指定楼层
复制 

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
楼主
发表于 2012-3-12 21:43:06 IP属地四川 |显示全部楼层 |倒序浏览
快御云安全
本帖最后由 VIVXIX 于 2012-3-13 17:09 编辑

有这个想法很久了,之前修改AppleHDA,一键静音键失效。但以前还不会捣鼓kext的代码,也就没管了。前几天开始弄,把PS2的相关代码整合成一个project,在Xcode 4.3下修改编译。

Screen Shot 2012-03-12 at 9.35.51 PM.png



在ApplePS2keyboard下info.plist设置Enable Mute key 成yes


Screen Shot 2012-03-12 at 9.32.59 PM.png


效果图


Screen Shot 2012-03-12 at 9.34.16 PM.png



  • 在此感谢,fredemmott,我是在他的代码基础上修改的。
  • https://github.com/fredemmott/GenericPS2Keyboard
  • 这个PS2键盘kext,可以独立使用(当然还是需要ACPIPS2Nub的),修正了~键和多媒体控制键,
  • 完整的PS2驱动在这里https://bbs.pcbeta.com/viewthread-984654-1-1.html
  • ApplePS2Keyboard.kext.zip (12.12 KB, 下载次数: 102)
目前这个kext是可以一键静音了,只是似乎不像其他windows下静音键再按一次,可以恢复原来的音量。我本来有想过实现这个,但没成功,后续有空会继续改进。有什么建议也可以提。但不保证可以实现。
3

查看全部评分

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
沙发
发表于 2012-3-12 22:24:41 IP属地四川 |显示全部楼层
本帖最后由 VIVXIX 于 2012-3-12 22:25 编辑
道奇兔 发表于 2012-3-12 22:19
估計過幾個月買本本用的到  Ivy Bridge我來哩

好久不见,估计我这T4300的U要用很久,不过够玩了。
只能说是羡慕妒嫉恨了。

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
板凳
发表于 2012-3-12 22:56:41 IP属地四川 |显示全部楼层
p.H 发表于 2012-3-12 22:44
对了,大大编译出了kext在哪,我木有找到我的。T_T

帖子后面不就有了吗

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
4F
发表于 2012-3-12 22:58:07 IP属地四川 |显示全部楼层
fox0491 发表于 2012-3-12 22:55
大大,能不能把你的dsdt 发给我啊,我的睡眠唤醒弄不了,想参考你的,我的U 跟你的一样!

dsdt.aml.zip (12.07 KB, 下载次数: 9)

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
5F
发表于 2012-3-12 23:25:00 IP属地四川 |显示全部楼层
wuzhengxian 发表于 2012-3-12 23:15
可惜我的是台式机的USB键盘,不知道用你的方法能不能改USB键盘,嘿嘿

貌似,apple的open source里的USB键盘驱动http://opensource.apple.com/source/AppleUSBProKeyboard/AppleUSBProKeyboard-203.4.0/
这个有能力的话可以去修改编译,也许也是可以的。

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
6F
发表于 2012-3-13 11:52:32 IP属地四川 |显示全部楼层
p.H 发表于 2012-3-13 10:05
不是,我说的是我用xcode编译的0-0

如果run或者build没有error的话,就会在Xcode左侧不就有个product里,右键那个kext(红色的话说明编译失败)-》show in Finder,

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
7F
发表于 2012-3-13 12:11:49 IP属地四川 |显示全部楼层
p.H 发表于 2012-3-13 12:06
了解。我的是succeed
另外大大编译的这个kext是F2是普通的F2,还是带有Fn的功能F2 ?

呃,你是说多媒体键??还是说静音键??
静音键是直接笔记本上的一个触控键,键盘驱动能够读取到扫描码scancode = 0x20
  1. case 0x20: keyCode = 0x7f; break;                     // E020 = volume mute
复制代码
在ApplePS2ToADBMap.h里对应的转换为adbcode = 0x4a
  1. 0x4a   // 7f Volume Mute
复制代码
我的处理是在最后dispatchKeyboardEvent前进行处理。

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
8F
发表于 2012-3-13 12:30:48 IP属地四川 |显示全部楼层
p.H 发表于 2012-3-13 12:15
我的本上面FN+F7是静音键,现在可以成功静音

我现在就是想把另外几个这样需要FN组合的功能键也成功的搞 ...

问题在于你的Fn+F4有没有产生scancode,就我的G450,有的Fn+Fx键没有产生scancode而是直接由硬件处理对应的动作。
你试试在switch (scanCode & ~kSC_UpBit)前加入,编译安装后,重启按Fn+F4查看kernel log里是否看到这个键有scancode产生,没有的话就没办法了。只能用其他键来代替。
  1. IOLog("%s: Unknown extended scan code: 0x%x\n", getName(), scanCode);
复制代码
如果有scancode的话就需要
具体 可以参考这个改http://www.projectosx.com/forum/index.php?showtopic=1452

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
9F
发表于 2012-3-13 12:40:36 IP属地四川 |显示全部楼层
p.H 发表于 2012-3-13 12:35
恩。 好的。
说道FN+F4没有产生scancode应该不是的
因为我原来用HJmac引导的时候,全部都是有用的

OK,但问题也要知道你的scancode才知道怎么改啊。
所以第一步还是检测scancode,不过你也可以直接参考那个帖子改,看能不能成功。
  1. E005 = bright down       
复制代码
一般是这个  bright down 的scancode= 0x05

UID
1396546
帖子
4242
PB币
7837
贡献
0
技术
628
活跃
458
10F
发表于 2012-3-13 15:53:39 IP属地香港 |显示全部楼层
fox0491 发表于 2012-3-13 15:43
我的主板和U  都跟你一样的,怎么我怎么弄睡眠和唤醒都不行呢?求大大帮帮忙,,,

USB内建没??
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛