0

我正在尝试进行一个简单的系统调用,它将由 LKM 调用,当我按下向上箭头并使用向下键减小音量时,它将增加我的 nexus 7(基于 tegra)的音量。简单的项目让球滚动以进行更大的黑客攻击。

我的问题是如何本地化为 android 原生处理这些文件的文件。我搜索了 sound/ drivers/ 和 arch/arm/mach-tegra/ 。对于源中的不同硬件有这么多不同版本的固件,有一种方法可以轻松本地化与您相关的文件。例如,当我按下 nexus 上的音量键并在 shell 上执行 dmsg 时,我看到一个类似“gpio:KEY_VOLUMEUP”的 printk。我试图找到这个 printk 作为开始。

任何有关此问题的帮助以及有关内核黑客的更大提示将不胜感激。

4

2 回答 2

0

“gpio : KEY_VOLUMEUP”是来自 GPIO 驱动程序的消息,它对连接到输入引脚的音量键作出反应并模拟键盘(KEY_VOLUMEUP 是键码)。从 LKM 增加音量的一种方法是编写键盘驱动程序并发送 KEY_VOLUMEUP 事件。Linux 内核中有很多不同的键盘驱动程序可以用作示例。

于 2012-12-28T07:06:34.407 回答
0

对于 nexus 7,音频驱动程序不是专有的,这意味着您应该能够搜索 printk。您是否尝试grep -rs 'gpio : KEY_VOLUMEUP' .过整个内核源代码树?这通常是我最好的选择。

内核黑客技巧,在线阅读 LDD3 书籍:http: //lwn.net/Kernel/LDD3/

于 2012-12-18T04:47:44.857 回答