7

私はカスタムボード用のジンジャーブレッドカーネルを採用しています。私はオンチップADCコントローラ(サムスンのS5PV210プロセッサ)を使用する抵抗膜方式のタッチスクリーンを置き換えることを試みている。私の設計では、eGalaxyTouchドライバがサポートする容量コントローラが必要です。それはUSBに接続されています。ドライバは "make xconfig"メニューから簡単に有効にすることができます。シリアルコンソールにいくつかのトレースを追加してからカーネルが起動しているのを見ることができ、USBケーブルの接続/切断時にインストールとアンインストールを行うことができます。しかし、Androidのユーザーインターフェイスでは何もしません。これはHIDタイプのデバイスです。問題は、それが適切なAndroidのタッチスクリーンソフトウェア層に接続していないことです。私は何かが欠けている必要があります。このHIDをタッチスクリーンを管理する別のソフトウェア層に接続させるには、何か別のものが必要です。Androidカーネルのタッチスクリーンドライバを置き換える

タッチスクリーンドライバは、kernel/drivers/input/touchscreenにあります。カーネル/ドライバ/入力にもいくつかのコードがあります。

HIDデバイスをAndroidのタッチスクリーンレイヤーにリンクする手掛かりはありますか?私は彼らが古い抵抗膜をどのようにしたかを見ています。これは、CPUにADCが組み込まれた「カスタムメイドの」デバイスであり、USB経由ではないため、HIDによって行われていません。

答えて

9

タッチスクリーンドライバの統合に成功しました。ここでは、同じ種類の問題に直面する他の人たちのために、どのように動作するかを知るための手順の概略を示します。

まず(xconfigのを作る)競合を防ぐために、元のタッチスクリーンドライバを削除

もともと、私はそれは、タッチスクリーンの製造元によって提供された本家動作しないドライバーを持っていました。カーネルツリーのeGalaxタッチスクリーンドライバを試してみることにしました。これはモジュールドライバです。 make xconfigで "module device drivers"を有効にするだけでは不十分です。はい、.koファイルをコンパイルすることができます。ビルドスクリプトにfile.koで何をすべきかを伝えることはなく、ターゲットシステムのカーネルには行きません。ですから、ビルドスクリプトに何かを追加したり、適切なroot/modulesの場所にfile.koを手動でコピーして、initの "insmod /modules/file.ko"コマンドを使ってモジュールのロードを追加しなければなりません。 rcファイル。適切な特権を/ modulesとmodules/file.koにchmodコマンドで設定することを忘れないでください。

その後、その質問に関連しないマイナーな問題を除いて、基本的にはうまくいった(ドライバーは少し違ったビットで、修正が容易な)。

+0

あなたはデバイスのカーネルをどのように変更/修正できるのかを教えていただけますか?私も同じ要件を持っています –

+0

まず、使用しているボードのカーネルの完全なソースコードが必要です。そうでない場合は、最初から始め、ボード上のハードウェアごとにドライバを統合する必要があります。非常に長い作業です。あなたが独自のCPUカードを作ったなら、おそらくリファレンスデザインから始めてホイールを再発明しないでしょう。設計しているリファレンスデザインに使用されているのと同じカーネルソースとツール設定から始めてください。自分ですべてをやりたければ、市場投入までの時間を考えてみましょう...カーネルは30 000 +ファイルです –

関連する問題