두근두근이야기
2013.08.30. 본문
임베디드 리눅스(안드로이드 리눅스)
노태상 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
- 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 |