標籤:
我是從2015.7.23開始移植這個驅動程式的,經過在網上尋找資料,決定利用linux下I2C驅動體繫結構來完成驅動移植
整個步驟是根據http://blog.csdn.net/rickbeyond/article/details/7838313這個大神的部落格開始的,於是我的苦逼坑死我之路從此開始。。。。
第一天下午就卡在了第三步,即對Android.mk的編譯上,剛開始是報如下錯誤
make: *** No rule to make target `/iic.c‘, needed by `out/target/product/generic/obj/SHARED_LIBRARIES/iic.default_intermediates/iic.o‘. Stop.
大神們的部落格都被我翻遍了,沒有!麻痹的這錯誤就我一個人遇到啊!!!!好吧,接著在部落格園與csdn論壇發貼,到今天為止沒有一個人知道,也許是知道,但是不屑回答我吧。。。不過,終於到下午下班之前自己找了半天發現有一條語句沒有(如下),遂加上。還真的就不報這個錯誤了,
LOCAL_SHARED_LIBRARIES := liblog libcutils
但是!!!!!!!但是換了個錯誤,說找不到i2c-dev.h標頭檔,開啟該路徑,發現好像確實是沒得,好吧,那我複製一份好了,也不知道對不對,呵呵
不過最後還真產生了.so檔案,哎呀臥槽!這個錯誤我是碰到了有緣人啊!他也沒解決,卡在這裡了,呵呵,不過那傢伙直接換了條路,去寫單獨的驅動程式去了,好吧,這坑爹路上又只剩我一個人了。。。。
附上昨天提問的連結:http://q.cnblogs.com/q/74082/
終於到了第二天了。。。也就是7月24日,不得不感歎日子過得真是快啊!
嗯~是的,今天有開始開開心心的寫第二部分代碼,使用JNI在應用程式架構層添加服務提供者,又在最後!!!update-api!!!!
臥槽,果不其然,出錯了!!!!!!!
1 device/samsung/multimedia/codecs/video/Android.mk:10: device/samsung/multimedia/codecs/video/exynos4/mfc/exynos5/Android.mk: No such file or directory2 device/samsung/multimedia/utils/csc/Android.mk:10: device/samsung/multimedia/utils/csc/exynos4/exynos5/Android.mk: No such file or directory3 make: *** No rule to make target `device/samsung/multimedia/utils/csc/exynos4/exynos5/Android.mk‘. Stop.
說沒有檔案,其實是該路徑都沒有,好吧,查Android.mk
1 LOCAL_PATH := $(call my-dir) 2 3 include $(CLEAR_VARS) 4 5 ifeq ($(filter-out exynos4,$(TARGET_BOARD_PLATFORM)),) 6 include $(LOCAL_PATH)/exynos4/Android.mk 7 endif 8 9 ifeq ($(filter-out exynos5,$(TARGET_BOARD_PLATFORM)),)10 include $(LOCAL_PATH)/exynos5/Android.mk11 endif12
報錯說在第10行,進入(LOCAL_PATH)/exynos5/Android.mk這個裡面,按照作者的意思應該是device/samsung/multimedia/codecs/video/exynos5/Android.mk啊!!!
怎麼會是device/samsung/multimedia/codecs/video/exynos4/mfc/exynos5/Android.mk呢???!!!!臥槽,於是看了下device/samsung/multimedia/codecs/video/exynos4/Android.mk,說是再進入mfc/Android.mk中,然後沒有了,嗯啊!沒有了,也就是說當前路徑是停留在了device/samsung/multimedia/codecs/video/exynos4/mfc下啊!!!好吧我就想當然的覺得LOCAT_PATH是在這麼個屬性了!!!
於是!!!我也開始亂來了,把device/samsung/multimedia/codecs/video/Android.mk改成了
1 LOCAL_PATH := $(call my-dir) 2 3 LOCAL_CUR_PATH :=$(LOCAL_PATH) 4 include $(CLEAR_VARS) 5 6 ifeq ($(filter-out exynos4,$(TARGET_BOARD_PLATFORM)),) 7 include $(LOCAL_PATH)/exynos4/Android.mk 8 endif 9 10 ifeq ($(filter-out exynos5,$(TARGET_BOARD_PLATFORM)),)11 include $(LOCAL_CUR_PATH)/exynos5/Android.mk12 endif13
加了一個臨時變數儲存當前路徑,再make update-api,哎呀,居然過了!!!但是!!!臥槽哪有這麼多的但是....
1 build/core/base_rules.mk:166: *** device/samsung/multimedia/codecs/video/exynos5/mfc_v4l2: MODULE.TARGET.STATIC_LIBRARIES.libsecmfcapi already defined by device/samsung/multimedia/codecs/video/exynos4/mfc. Stop.
這是什麼鬼啊什麼鬼啊啊啊啊!!!模組ID要唯一???我靠,我哪個模組ID不唯一了就?好吧,誰讓你是大哥,我去找debug..
基於Android移植IIC裝置驅動筆記