在linux下客制化hotkey(FN+FX)

本文介绍了如何在Linux操作系统中自定义EC(Embedded Controller)热键,从理解EC的作用开始,逐步讲解客制化HOTKEY的详细过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                   Custom HotKey from the kernel ec.c

EC 的定义以及作用

EC与keyboard 


引用blog:http://blog.csdn.net/hgf1011/article/details/3727078

          Keyboard是PC架构中的一个重要组成部分。在常见的PC系统中主板上都有一颗专用的8042接口芯片去处理(现在被集成进了SB中),8042控制keyboard的整个工作过程,
包括加电自检键盘扫描码的缓冲以及与chipset沟通。在NB上这部分工作都有EC负责,它有一个keyboard controller,它扮演8042相似的角色。NB都有一个内置Keyboard,
这个keyboard是由EC控制的。Keyboard和touchpad都是EC内置的一个部分,它们按照ps2协议工作,最终的数据通过EC送给host。键盘是一种矩阵结构,每一个键都有一个行地址和列地址,用户按下键以后,
EC获得该按键的matrix address,EC将该address转化为matrix value然后判断该键的类型是特殊功能键还是标准按键,然后采用不同的方法将matrix value转成Set2,
最后在转成Set1 value送给host,host收到就可以送给其它需要的程序了。


NB上有一些被称为Hot Key(热键)的东东,比如用户可以按Fn+F4/F5调整亮度等。这些是如何实现的呢?既然key board部分是由EC FW处理,那定制这些特殊功能键就不是什么难事了。
Fn没有scan code但是它有matrix address 所以EC收到该键按下后置一个flag,后续检测到F1-F12 被按下后,EC发一个Q_EVENT(什么是Q_EVENT?后续会详细描述J)给Host,Host就可以和EC通信了。
如此便
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值