はじめまして、長谷川と申します。
Andoroidのアプリケーション開発の経験はあるのですが、ボードへのポーティング等は初心者です。
今回、アットマークさんのArmadillo440にAndroidを載せました。ネットにある情報の手順のまま。AndroidはEclair
(2.1_r2)
おかげさまでAndroidの2.1が無事動きました。
そしてこのボードに各種センサをつなぎたいのです。秋月で購入した加速度センサをI2Cで接続しました(440のI2C-1に)。
linux-2.6.26-at7では二番目のI2C(I2C-1)が有効になっていなかったので、カーネルを440のI2C-1を有効にして再構築し
ました。
そしてI2Cを直接読む簡単なLinuxアプリを作成し、正常にセンサから値は読み取れることを確認できました。
やりたいのは、このセンサの値をAndroidのSensorManagerクラスに渡したいのです。
sensor.default.so等を作成して/system/lib/hw/以下に置けばよいというのはなんとなくわかったのですが、なにぶん
Android.mkの書式さえよくわからない状況でどこから手をつければよいのかわかってません。
やったのは
/htc/dream/sensor/sensor.c Android.mkを参考にして、
/hardware/libhardware/sensors/sensors.c と Android.mkを作りました。
sensor.cは単純にpoll内で直接I2Cから値を読んでdev->sensors[]につめてます(これでいいのかって疑問もありますがとりあ
えずあとまわし)。
ご教授いただきたいのは、
sensor.default.soの作り方なんです。恥ずかしいことにここからわかっていません。
sensorsディレクトリに置いたAndroid.mkは以下のとおりです。
ifeq ($(TARGET_PRODUCT),a440)
# HAL module implemenation, not prelinked and stored in
# hw/<SENSORS_HARDWARE_MODULE_ID>.<ro.product.board>.so
# Setting LOCAL_PATH will mess up all-subdir-makefiles, so do it
beforehand.
#SAVE_MAKEFILES := $(call all-subdir-makefiles)
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_PRELINK_MODULE := false
LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
LOCAL_SHARED_LIBRARIES := liblog libcutils
LOCAL_SRC_FILES := sensors.c
LOCAL_MODULE := sensors
#include $(SAVE_MAKEFILES)
include $(BUILD_SHARED_LIBRARY)
endif
make実行すると、
build/core/
shared_library.mk:20: *** hardware/libhardware/sensors:
Illegal use of OVERRIDE_BUILT_MODULE_PATH.
というエラーメッセージが表示されます。
これは何処かとモジュール名が重複しているのかと思ったのですがちょっとわかってません。
ちなみに/libhardware/sensors/ディレクトリのない状態でmakeすると、
/system/lib/hw/には
sensors.goldfish.soというモジュールができてます。エミュレータ用?
ソース取得したルートの
buildspec.mkには
TARGET_PRODUCT:=a440
と記述してます。
1.センサモジュール用のソースコードは/hardware/libhardware/sensorsにおけばよいのか?またはそのしたの/
modulesのとこ?何処でもよいのか??
2.Android.mkの記述方法とか、このsensor.cを使うなにかおまじない等
3.作成したモジュールは/lib/hwに置いておけばAndroidが勝手にロードしてくれるの?
4.その場合、ロードしてくれるように何処かへ記述が必要なのか?
だいたいこのあたりがわかってません。。
ディレクトリ構成からmakeの仕組みまでを理解してないのに無謀なのかもしれません。。。
みなさまのアドバイスを頂きたく、よろしくお願いいたします。
--
このメールは Google グループのグループ「日本Androidの会」の登録者に送られています。
このグループに投稿するには、
android-g...@googlegroups.com にメールを送信してください。
このグループから退会するには、
android-group-j...@googlegroups.com にメールを送信してください。
詳細については、
http://groups.google.com/group/android-group-japan?hl=ja からこのグループにアクセスしてください。