EC用Fn hotkey实现suspend的方法
请问EC如何用Fn hotkey实现suspend?是通过发送ACPI 扫描码(E0,3F),还是发SCI给host?请哪位大侠指教一下,谢谢! ACPI BIOS定义好 Sleep button device "PNP0C0E",EC发SCI去通知它去Sleep就行。 是发送扫描码(E0,5F)吧. ACPI Sleep ----E0 5F 恩。刚到找一份Scan code官方文档:
Power event
Set1: Make = E0, 5E Break = E0, DE
Set2: Make = E0, 37 Break = E0, F0, 37
Sleep event
Set1: Make = E0, 5F Break = E0, DF
Set2: Make = E0, 3F Break = E0, F0, 3F
Wake event
Set1: Make = E0, 63 Break = E0, E3
Set2: Make = E0, 5E Break = E0, F0, 5E
更多请参照:
http://www.microsoft.com/taiwan/whdc/archive/Scancode.mspx 学习,
收藏,
谢谢! 多谢楼上的热心回帖与帮助,我试验成功后再回来。^_^ 楼主问的是:suspend,
这个跟sleep是一样的么? ??
suspend应该是属于ACPI sleep的一种,Suspend To Ram(S3) or Suspend To Disk(S4),
上面说的sleep button是可以进s3或者S4状态的,可以在OS下设置。
所以,没问题。 两种方式都可以:
1,可以发SCI,就得BIOS配合了,这样你按下Fn+Sleep图标是就会执行你在系统下设置的suspend(包括Suspend To Ram(S3) or Suspend To Disk(S4))
2,EC直接发第二套扫描码0x9A(ACPI Sleep)给OS,OS执行S3。 我照着各位提供的方法试了一下,第一种发SCI,可以达到目的,
但是对于第2种,发SCANCODE,好像没什么反应呢?请各位高手解答一下,谢谢!
另外再问一个问题,对于电池电量降到Shutdown trippoint 的时候,是直接发送 sleep event所对应的 scancode (Set2: Make = E0, 3F Break = E0, F0, 3F)出去呢,还是直接发个SCI(比如:Sleep Button,或Power Button)告知OS,让OS自己去处理这个事件?但是我见到的很多本本在电池电量降到Shutdown trippoint 的时候,都是直接睡眠了,若照我的想法发送Sleep Button event给OS 的话,如果用户选择“不采取任何措施",那岂不是在电池电量降到Shutdown trippoint 的时候,我们的本本没有任何反应?
请各位高手指教一下,谢谢了!!!:)
[ 本帖最后由 蓝色永恒 于 2009-4-13 17:52 编辑 ]
页:
[1]