CONFIG_ANDROID_POWERでビルド失敗

PokyのKernel 2.6.26を使わなくても、AngstromのKernel 2.6.24でもAndroidのキーとタッチスクリーンに問題がないことがわかったのだけれど、なんか、パワーマネジメントまわりの気がするので、CONFIG_ANDROID_POWERを有効にしてAngstromを作り直そうとしてみた。
そしたら、ビルドでエラー。state_attrが見つからない、とか言われる。
Pokyの方ではどうかな?と試してみたら、あら、android/power.cを作ってなかったわ。

タッチスクリーンも動作できるようになった

タッチスクリーンが動きました!
ドライバ側の方はandroidzaurusさんのところと変わっていないはずなので、Androidのソースのリビジョンが違ってたりするんじゃないか?とか、なんか環境変数とかプロパティとかあるんじゃないか?とかいろいろ疑って、Androidのソースの中を探ってみました。
Linuxのキーイベントは、input_event という構造体に入って/dev/input/event0 から出てくるとゆうことがわかったりしたので、この構造体があるかいな、とか調べていたら、キー入力を処理しているところを発見。
frameworks/base/services/java/com/android/server/KeyInputQueue.java とゆうファイルの中で、

if (!send) {
continue;
}

とゆうコードがあって、どうも、カーソルキーの入力もタッチスクリーンの入力も、はじき飛ばされている様子。
ならば、と、continueをコメントアウトして、必ず通るようにしたら、タッチスクリーンが動きましたよ!
でも、回避方法がわかっただけで、根本的な原因は実はわかっていないわけですな。
sendに値を与えているpreprocessEventの中身を調べてみないと。
まあ、それでも、タッチできるようになると楽しくなりますなあ。

Kernel 2.6.26 for SL-C860 Android起動

CONFIG_KERNEL_DEBUG と CONFIG_NETWORK_FILESYSTEM を切ったら、なんとかAndroid関連のファイルを含めてカーネルの作成に成功。
これで今度こそキーボードとタッチスクリーンといけるだろう!と思ったのだけれど、変わらず。とほほ。
キーボードに関しては、qwerty.kl の WAKE_DROPPED と書いてあるところを消したら、カーソルキーなどが動くようになった。パワーマネジメント関連?