기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요. 안드로이드의 모든것 NDK라는 책을 정말 감사히 읽고 있습니다.

 

5장의 자바 애플리케이션에서 GPIO 컨트롤하기 부분을 참조하여 타겟보드의

 

LED를 control 해보고자 노력중입니다만 난독증이 있는지.. 책과 같은 결과물이

 

나타나질 않아 문의를 드리고자 합니다.

 

source code는 이솝 게시판의 예제 자료가 책과 동일함을 깨닫고(감격..) 그대로

 

사용중에 있습니다만, 첫번째 문제는 컴파일에서 만나볼 수 있었습니다.

 

책의 내용에는

 

android$ source ./build/envsetup.sh

android/external/gled$ mm

으로 컴파일 시 세개의 파일이 새로 생성된다고 나와 있습니다만...

 

제가 컴파일해보면 다음과 같은 message만 나타납니다.

 

jhkim@jhkim-desktop:~/dev/V210/gingerbread/external/gled$ mm
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=2.3.1
TARGET_PRODUCT=generic
TARGET_BUILD_VARIANT=eng
TARGET_SIMULATOR=
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
HOST_ARCH=x86
HOST_OS=linux
HOST_BUILD_TYPE=release
BUILD_ID=GINGERBREAD
============================================
make: Entering directory `/home/jhkim/dev/V210/gingerbread'
target Non-prelinked: libled (out/target/product/generic/symbols/system/lib/libled.so)
make: *** No rule to make target `out/target/product/generic/system/lib/liblog.so', needed by `out/target/product/generic/system/lib/libled.so'.  Stop.
make: Leaving directory `/home/jhkim/dev/V210/gingerbread'
jhkim@jhkim-desktop:~/dev/V210/gingerbread/external/gled$

 

liblog.so를 참조할 수 없다는식으로 이해됩니다만, libled, ledservice, libledclientjni의 폴더에서 각각 컴파일을

 

하면 어떻게든 세개의 파일을 확보 할 수 있었기에(정상적인 파일인지 의문입니다만..) 다음 단계를 진행해보고자

 

하였습니다만... 여기서 두번째 난관에 부딪혔습니다.

 

"이제 코드를 모두 작성했으니 다음과 같이 컴파일해서 모두 타겟에 설치하자." 라는 책의 설명 부분입니다...

 

난독증이 꽤 심한지라... 한참을 아래 box의 out/target/product/에 origen 폴더는 없는데... 하며 삽질하다가,

 

Target Board의 system/ 밑에 lib와 bin 디렉토리가 있음을 찾아내고... 이곳에 넣으라는 설명이셨구나;; 하고

 

깨달았습니다만... 어떤 방법으로 타겟보드에 집어넣는지를 모르는지라 또 한번 막혀버렸습니다 하하;;

 

아무쪼록... 초보의 무한 삽질에 조그마한 도움을 좀 부탁드립니다.

 

읽어주셔서 감사합니다 (_ _)


전호철

2013.02.05 20:49:07
*.162.60.10

에러 로그를 보시면 libled.so를 build 하기 위해서 liblog.so 가 필요한데 없다는 말입니다.

liblog.so 는 log를 뿌려주는 로그인데. 저게 없다는 것은 안드로이드 Full build가 한번도 되어 있지 않아서 liblog.so가 생성되지 않았거나. 혹은 libled.so를 만들기 위한 Android.mk 가 잘못되어서 참조하지 못하는경우의 두가지 경우로 볼 수 있습니다. 하지만 후자는 가능성이 적고요.


한번도 Full build를 안하신게 아닌가... 합니다.


아무튼 두번쨰 케이스일 경우 대충 뚜드려 맞추시거나 log를 사용하는 부분을 다 뺴시던가 하는 방법이 있습니다.


그리고 타겟에 올릴때는 adb remount로 system 파티션의 read only 를 read write로 바꿔주신 다음에 


adb push 명령어로 올리시면 됩니다.

미누유희

2013.02.06 00:34:25
*.115.113.222

댓글 감사드립니다. Full build에 대한 조언을 주셔서 잽싸게 make를 하여보았습니다.

이후 예제 source를 컴파일하여 보니 이전과는 다른 모습을 보였습니다.

 

make: Entering directory `/home/jhkim/dev/V210/gingerbread'
target Non-prelinked: libled (out/target/product/generic/symbols/system/lib/libled.so)
Install: out/target/product/generic/system/lib/libled.so
target Non-prelinked: ledservice (out/target/product/generic/symbols/system/bin/ledservice)
Install: out/target/product/generic/system/bin/ledservice
target Non-prelinked: libledclientjni (out/target/product/generic/symbols/system/lib/libledclientjni.so)
Install: out/target/product/generic/system/lib/libledclientjni.so
make: Leaving directory `/home/jhkim/dev/V210/gingerbread'

 

위와 같았습니다만.. Non-prelinked 도 보이고.. 여전히 정상적인 컴파일은 안되었습니다.

log의 libled.so, ledservice, libledclientjni.so는 모두 생성되어 해당 링크에 있음을 확인은 하였습니다만..

무엇이 부족했던걸까요?

전호철

2013.02.06 19:24:34
*.162.60.10

Non-prelinked 메세지는 왜 나오는지 잘 모르겠네요...??


어쨌던 Install 메세지가 떴으니 컴파일된거 올리면 돌아가지 않나요???


지금 올라가있는 상태 그대로 컴파일 하면 잘 되는데 이상하네요...

미누유희

2013.02.07 01:29:12
*.115.113.222

NDK 책관련 문의 게시판에 올렸어야 하는 글을... 이곳에 올린게 계속 밟히네요 ㅠㅠ 죄송합니다...

새로 문의글을 작성할까 하다가... 오히려 혼잡스러울것 같아서 문의를 이어갑니다.

Non-prelinked는 여전합니다만, 말씀하신데로 컴파일되어 생성된 File들은 설치가 되었습니다.

이에 드라이버 코드의 내용(이 부분은 책과 업로드된 예제가 많이 상이했습니다) 중 GPIO를 타겟에

맞추어 수정하고 컴파일하여 gmod.ko까지 설치를 완료하고, 테스트를 진행해 보았습니다.

그런데... 다시 막히고 말았습니다.

타겟보드에 실행된 테스트 애플리케이션에서 제어를 해보고자 On, Off 를 터치하면 아래와 같은

로그가 나타나며 잠시 뒤 애플리케이션이 자동적으로 종료되어버립니다.

 

ServiceManager(457): Waiting for service hybridego.LED...
ServiceManager(457): Waiting for service hybridego.LED...
ServiceManager(457): Waiting for service hybridego.LED...
ServiceManager(457): Waiting for service hybridego.LED...
ServiceManager(457): Waiting for service hybridego.LED...
LED::getLEDService 0x112700
LEDService not published, waiting...

 

살펴보면... getLEDService( )에서 Binder가 체결되지 못했다는 내용 같습니다만... 원인을 모르겠습니다.

조언 좀 부탁드리겠습니다.

전호철

2013.02.07 03:16:37
*.162.60.12

컴파일한 ledservice 를 실행하셔야 service가 등록이 되겠지요.

client 가 서비스를 찾는데 ledservice가 실행되어 있지 않아서 servicemanager에 등록되어 있지 않기 때문에 나타나는 현상입니다.


ledservice를 실행하시고 다시 해보세요 (백그라운드로 돌려도 됩니다.)

미누유희

2013.02.07 03:35:26
*.115.113.222

감사합니다. ledservice를 실행해주니 GPIO 컨트롤이 정상적으로 이루어졌습니다.

초짜의 무대포식 질문에 많은 가르침 주셔서 정말 감사합니다 (_ _)

List of Articles
번호 제목 글쓴이 날짜 조회 수
» 애플리케이션에서 GPIO 컨트롤하기 에 대해 문의드립니다. [6] 미누유희 2013-02-05 1542
5707 Exynos5250 부트로더 수정 관련 림보맨 2013-02-04 1086
5706 ARNDALE 보드에서 OpenCL 구동 가능한지요 ? [4] 오빠네미용실 2013-02-02 1433
5705 ARM NEON 관련 문의 드립니다. 죽유 2013-02-02 1411
5704 안드로이드 풀 빌드 시 구글 계정 사용할 수 있나요? [1] 코믹해커 2013-01-31 1490
5703 aesop V210 진저브레드/ICS 커널 포팅 관련하여 질문드립니다. [1] 황인용 2013-01-31 1389
5702 CPU 에서 마이컴 writing 관련 [3] 박명대 2013-01-30 1692
5701 카메라 디바이스 드라이버에 대해서 공부하고 있는데요.. [1] rubio 2013-01-30 1302
5700 엑시노스 5250 RESET 문제?? [2] 윤동열 2013-01-30 1502
5699 [이클립스]UI LCD 표시 매우 큰 글자 표시 방법 만년설화 2013-01-29 986
5698 S5PV210 WinCE6.0 Sleep/Wakeup 질문 사악깨비 2013-01-28 1014
5697 dtv 튜너 모듈이 있을까요? [3] 최승훈 2013-01-27 1791
5696 S5pv310의 GPL2(0)를 인터럽트로 사용 하려면 어떻게 해야 되지요.? [3] GloomyDay 2013-01-27 1520
5695 [Arndale Board] OTG(mini USB)연결 문제에 관해서 문의드립니다... [6] 강현성 2013-01-25 1734
5694 C110 보드 설계해보신분 답변 부탁드립니다(전압관련) [2] 화이트맨 2013-01-25 1295
5693 ubuntu update와 tool package설치 관련 [2] 바라마79 2013-01-24 1261
5692 kernel 문제 다시 여쭤 봅니다. [8] 황원일 2013-01-24 1404
5691 [arndale board] wiki의 오타 부분 [1] monad 2013-01-24 1188
5690 [origen4412] gps 작동 질문. [4] 루트요 2013-01-23 2313
5689 [android] power management [10] wizard14 2013-01-23 1579

사용자 로그인