QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: biff

Suse Linux 下让华硕笔记本音量控制显示进度条

[复制链接]
 楼主| 发表于 2006-5-23 11:25:21 | 显示全部楼层
when xev does not react to the keys, there is one more
   possibility to get the codes.
   WARNING: this option may or may not work, and will be implemented
            in LinEAK in the future (but it is not, at this time)

看看我同步写的另一个稿子
在Suse Linux 10.0上搞定华硕笔记本热键
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&p=4642511#4642511

正如我在里面所说的,我的四个媒体播放键两个是普通键,xev 能收到,另两个 xev 没反映!

得出个结论,LinEAK 目前还不能处理ACPI键,估计后面会支持
回复

使用道具 举报

 楼主| 发表于 2006-5-23 18:21:08 | 显示全部楼层
不用再吵了,呵呵,花了一下午把 LinEAK 的故障解决译出来了!

看看这里:
使用 Lineak 让你的多媒体键盘跑起来
http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&p=4662140#4662140

里面提到了有些键无法解决,不知道是不是说的ACPI键!!

社区里还有谁在试?
回复

使用道具 举报

发表于 2006-5-24 11:53:55 | 显示全部楼层
老兄我来晚了。不过我有个问题,里面的方法二说白了就是瞎朦,老兄你用过多少个键盘型号来做实验啊?我不知道你的播放键在windows下是否要驱动程序的。如果不需要的话,说不定就是windows默认的播放键值呢。真是那样的话你用那堆Microsoft键盘应该能听到的,特别是multimedia键盘。
回复

使用道具 举报

 楼主| 发表于 2006-5-24 14:32:58 | 显示全部楼层
发现 /usr/include/linux/input.h 非常值得看一下,然后就发现新问题了!

有两点看法:

1、能被支持的键盘,那是与生俱来的

人们不停的向键盘上加东西,基实这些键都在input.h里早有准备,如 KEY_POWER,KEY_SLEEP,
里面也有KEY_VOLUEUP,KEY_VOLUEDOWN,这就是为什么有些键盘能被支持的原因了。
LINUX 里面已经为这些事件预留了空间(是为这些事件而不是这些键预留)

如果某个厂家的音量键与这里的定义有出入,大不了重新定义一下,
修改 /etc/rc.sysinit 加上  setkeycodes e013 140 # This is the Calc key ,相当于用自定义的对照表覆盖默认的

2、不能被支持的键,那是因为它根本不归属键盘的范畴(   这才是重点)

基实机箱上的 POWER 也是一个键,我们可以定义它按下以后执行哪种事件(关机还是休眠),在 windows 里我们很容易在设备管理里面找到 “ACPI 电源按键”这么个东西,在 linux 下面,它反映在 /proc/acpi/button 下面。

在另外一篇文章里我提到了
[quote:643272d8b6="biff"]ACPI 高级电源管理,全名是什么可以上网查,很多。
至于ACPI怎么跟笔记本的热键关联起来的就不清楚了,可能因为电源开关键、休眠键受它管理,然后被人扩展出其它功能了。

Hotkey 热键,指笔记本上 Fn+XXX 的键,我这里只谈ASUS笔记本,因为我是针对这个查的资料
本本上的键分成两种:
一种是不受ACPI管理的扩展键,这种键跟QWER键没什么区别
另一种,就是之前困扰我的,按下了键系统没反应的,我把它们归为ACPI热键,不知道对不对。 [/quote]
呵呵,机箱上 POWER 键在ACPI里也有定义,但是在 input.h 里没有定义

这就是我笔记本上的这些键为什么不被 LinEAK 支持的原因 ???
回复

使用道具 举报

 楼主| 发表于 2006-5-24 14:42:20 | 显示全部楼层
[quote:e180a75446="我爱DDR"]我不知道你的播放键在windows下是否要驱动程序的。如果不需要的话,说不定就是windows默认的播放键值呢[/quote]

在Windows就是识别的ACPI键,驱动名叫 ATK100
回复

使用道具 举报

发表于 2006-5-25 12:03:38 | 显示全部楼层
我是这样看的,你四个键里面为何会有两个会被识别呢?按道理应该要么就是四个都是acpi,要么四个都是普通键才对的呀。这是我的疑问。不过,你两个能被支持的健是什么功能,不被支持的两个键是什么功能?
回复

使用道具 举报

 楼主| 发表于 2006-5-25 12:38:19 | 显示全部楼层
[quote:a0295a5f64="biff"]我的笔记本上有如下键:( ASUS LH4000 很老的本本了 )
1 Fn + F1 休眠键 (没敢试,反正已经能工作了也不指望把它映射给别的程序,不管它了)
2 Fn + F5/F6 ACPI接收,2e ,1f
3 Fn + F11/12 ACPI接收 30 ,31
.......
后面的就不细说了,不过前面板上的音乐播放有点怪,
四个键从左到右是:上一首、停止、播放、下一首
但是“上一首”“下一首”是普通键,用xxd就能接收,95,99,
可是“停止”,“播放”是ACPI键,只在ACPI消息里才能监测到,43,45
怪......还没想明白怎么会这样,也许设计的人有别的用处吧. [/quote]
回复

使用道具 举报

发表于 2006-5-25 12:55:15 | 显示全部楼层
那你硬是把43,45写在配置文件里面lineak能侦听到吗?
回复

使用道具 举报

发表于 2006-5-25 13:49:39 | 显示全部楼层
其实如果是华硕笔记本的话,热键使用很简单,内核提供了模块,只需要
modprobe asus_acpi
大部分Fn热键就能工作了。
回复

使用道具 举报

 楼主| 发表于 2006-5-25 14:09:18 | 显示全部楼层
是基于 asus_acpi 装上以后才可以做这些工作的,

如果不加载 asus 的模块,不可能有任何地方能监听到这些事件
回复

使用道具 举报

发表于 2006-5-27 11:42:27 | 显示全部楼层
这么说来楼主你应该去看看asus_acpi的源码。我猜是那里没有弄好
回复

使用道具 举报

 楼主| 发表于 2006-5-27 12:07:08 | 显示全部楼层
:-(  这么严重。。。。   
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-4-26 12:31 , Processed in 0.088076 second(s), 13 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表