두근두근이야기

2013.08.30. 본문

IT/IT ::노태성강사님

2013.08.30.

골든 2013. 9. 8. 21:55

임베디드 리눅스(안드로이드 리눅스)

노태상 nadream@gmail.com


1. ubuntu 버전

  http://source.android.com/source/building.html

  http://source.android.com/source/initializing.html#installing-required-packages-ubuntu-1204


  usb 설치(unetbootbin으로 설치)

  jdk (oracle 사이트에서 설치)..

  패키지 설치(sudo apt-get)

 - 서버(realtime streaming server 구축, 반드시 소스 빌드를 해서 설치)

 오픈소스(opensource.org 참조, 라이선스)

 http://www.oss.kr


2. 커널

 - 커널 버전(2.6.x와 3.x 버전의 커널이 사용)

 - 커널 빌드 시스템 이해(make를 이용한 Makefile 구조)

  =>> 커널 이미지가 생성되는 흐름을 이해(zImage)

  =>> 커널소스/arch/arm/boot/zImage(gzip 기반의 압축 이미지)

 - 커널 소스 디렉토리 구조

 arch/, fs/, mm/, Documentation/, init/, drivers/, scripts/,

 sounds/, kernel/, 등등...

 - 커널 5가지 컴포넌트(구성요소)

 . 프로세스 관리자

 . 메모리 관리자

 . 파일시스템

 . 디바이스 드라이버

 . 네트워크 시스템

 =>> POSIX 규정...


 - 커널 포팅(CPU, h/w interface(SPI, I2C 등), 주변장치 동작)


 - 커널 디버깅 기법

 - 커널 튜닝(최적화, 스트레스 테스트)


3. Toolchains (컴파일러)

 - gcc (cross toolchains)

  . sourcery

  . eldk (denx.de)

  . arm.linux.org.uk

  . google

  

 - glibc /bionic libc


 - binutils


4. system software (system call api programming)

 커널소스/arch/arm/kernel/calls.S 시스템 콜 테이블


 strace / ltrace

 strace ls


5. root file system

 android

 buildroot.uclibc.org

 busybox


- android

  

 applicaion (하이브리드,  native app)

 application framework(api 제공, manager service가 제공)

 library + runtime(dalvik vm, java core library)

 . library ==>> media framework, surfaceflinger, audiofliner...

 HAL (Hardware abstraction layer)


6. app(응용)

 java

 c

 c++


7. core tech

 - media framework (stagefright, openmax)

 - surfaceflinger (open gl es 2.0)

 - opencv

 - ffmpeg

 - xbmc

 - mplayer

 - linphone.org

 - dlna(upnp)

 - wifi-direct

 - tethering (hostap)

 - adk (arduino)

 - 증강현실

 - openmax IL(Integration Layer)


8. 부트로더

 u-boot (universal boot loader)

 denx.de


9. 파일시스템

 ext3, ext4

 yaffs2

 ubifs


10. 과제

 - heap과 stack 구조

 - dmesg(debug message, 커널 부팅로그)를 이용하여

   로그 라인별로 출력 순서를 숫자로 출력

   

===========================================================

1. ubuntu 설치

2. 리눅스 설치후에 패키지 설치

 http://source.android.com/source/initializing.html를 참조해서

 32비트 시스템용으로 패키지를 설치(안드로이드 플랫폼 빌드용)

3. JDK6 설치(리눅스용) - sudo apt-get install를 이용

4. 크로스 툴체인 설치 및 환경변수 설정

  arm-탭ㅋㅋㅋ

5. 커널 컴파일

 Makefile 수정을 해서 빌드가 이루어지도록..

  (ARCH, CROSS_COMPILE 확인)

6. 안드로이드 빌드(압축을 해제하시고 ./build_210.sh를 실행)

 stackoverflow.com를 참조해서 정상 빌드가능하도록..

7. ndk (devloper.android.com) 압축해제후 환경변수 설정

   ndk-build 스크립트 있는 부분까지 Path 설정

8. tftp, nfs, minicom (sudo apt-get 설치하시되 설정)

9. 리눅스 network = ifconfig, route, sudo dhclient

================================================

10. 윈도우로 재부팅..

11. JDK6 설치(glassfish3/jdk/bin, glassfish3/jdk/jre/bin을 Path 설정)

12. eclipse 설치 (Java EE)

13. android sdk 설치 후에 반드시 업데이트

 - tools, 4.1.x선택, extra(place, ...)

 - platform-tools, tools, build-tools 폴더를 Path 지정

14. cygwin.com에서 setup.exe를 실행하면 설치(C\)

15. ndk 윈도우용으로 설치(ndk-build 부분을 Path)

16. sdk/samples/apidemo를 virtual device에 실행

17. 폰 USB 디바이스 드라이버 설치후에

18. apidemo를 폰에 적재..

'IT > IT ::노태성강사님' 카테고리의 다른 글

20130926  (0) 2013.09.26
20130923  (0) 2013.09.23
2013.09.06.  (0) 2013.09.06
2013.09.05.  (0) 2013.09.05