0

上矢印を押して下キーで下げると、nexus 7(tegraベース)の音量を上げるLKMによって呼び出される単純なシステムコールを作成しようとしています。より大きなハッキングのためにボールを転がすためのシンプルなプロジェクト。

私の質問は、これらを Android 用にネイティブに処理するファイルをローカライズする方法です。sound/ drivers/ と arch/arm/mach-tegra/ で検索しました。ソース内のさまざまなハードウェア用の非常に多くのさまざまなバージョンのファームウェアを使用すると、どのファイルが自分に関連しているかを簡単にローカライズする方法があります。たとえば、nexus で音量キーを押してシェルで dmsg を実行すると、「gpio : KEY_VOLUMEUP」のような printk が表示されます。最初にこのprintkを見つけようとしていました。

この問題に関するヘルプや、カーネル ハッキングに関するより大きなヒントをいただければ幸いです。

4

2 に答える 2

0

「gpio : KEY_VOLUMEUP」は、入力ピンに接続されたボリュームキーに反応してキーボードをエミュレートする GPIO ドライバーからのメッセージです (KEY_VOLUMEUP はキーコードです)。LKM から音量を上げる 1 つの方法は、キーボード ドライバーを作成し、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 に答える