You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 안드로이드 포팅 on Google, you do not find the information you need! Here are the best content compiled and compiled by the Toplist.maxfit.vn team, along with other related topics such as: 안드로이드 포팅 안드로이드 포팅 하는법, 안드로이드 포팅 게임, ARM 안드로이드 포팅, 안드로이드 파일 시스템, 안드로이드 lunch 명령어
안드로이드 포팅 5-1 하드웨어 기초 :: Be adventurous.
- Article author: gamdekong.tistory.com
- Reviews from users: 16461 Ratings
- Top rated: 4.8
- Lowest rated: 1
- Summary of article content: Articles about 안드로이드 포팅 5-1 하드웨어 기초 :: Be adventurous. 안드로이드 포팅 5-1 하드웨어 기초 … 안드로이드는 리눅스가 구동되는 하드웨어라면 어디서든 동작할 수 있지만 특정한 플랫폼을 고려하여 설계 … …
- Most searched keywords: Whether you are looking for 안드로이드 포팅 5-1 하드웨어 기초 :: Be adventurous. 안드로이드 포팅 5-1 하드웨어 기초 … 안드로이드는 리눅스가 구동되는 하드웨어라면 어디서든 동작할 수 있지만 특정한 플랫폼을 고려하여 설계 … 일반적인 시스템 아키텍처 안드로이드는 리눅스가 구동되는 하드웨어라면 어디서든 동작할 수 있지만 특정한 플랫폼을 고려하여 설계되었다. 안드로이드는 원래 휴대기기용으로 설계되었고 현재도 여전히 그 점을..배움.
- Table of Contents:
안드로이드 포팅 5-1 하드웨어 기초
티스토리툴바
안드로이드: 플랫폼 포팅과 활용 미리보기 [교보 eBook]
- Article author: preview.kyobobook.co.kr
- Reviews from users: 43123 Ratings
- Top rated: 3.6
- Lowest rated: 1
- Summary of article content: Articles about 안드로이드: 플랫폼 포팅과 활용 미리보기 [교보 eBook] 안드로이드 플랫폼 기반 단말기 구성 ···20. 1.6. 안드로이드 파일 시스템 ·23. 1.7. 프로세스의 메모리 구조 ·25. 1.8. Dalvik VM 26. 02 안드로이드 시스템포팅. …
- Most searched keywords: Whether you are looking for 안드로이드: 플랫폼 포팅과 활용 미리보기 [교보 eBook] 안드로이드 플랫폼 기반 단말기 구성 ···20. 1.6. 안드로이드 파일 시스템 ·23. 1.7. 프로세스의 메모리 구조 ·25. 1.8. Dalvik VM 26. 02 안드로이드 시스템포팅. 교보ebook 서비스, 베스트셀러, 신간, 로맨스, 판타지무협, 코믹스, 연재, 웹소설, sam, e캐시간편결제,해외결제가능ebook,전자책,교보문고,교보ebook,교보문고ebook,이북,교보이북,교보문고전자책,교보문고이북
- Table of Contents:
안드로이드 플랫폼 포팅과 활용
목차
안드로이드 포팅 [펌]
- Article author: pslab.tistory.com
- Reviews from users: 44608 Ratings
- Top rated: 5.0
- Lowest rated: 1
- Summary of article content: Articles about 안드로이드 포팅 [펌] 안드로이드 파워는 디바이스 상의 배터리 관리과 전원 관리에 관련된 파일 시스템 상의 inotify 기능과 같은 서브시스템을 위한 것입니다. 그 것은 … …
- Most searched keywords: Whether you are looking for 안드로이드 포팅 [펌] 안드로이드 파워는 디바이스 상의 배터리 관리과 전원 관리에 관련된 파일 시스템 상의 inotify 기능과 같은 서브시스템을 위한 것입니다. 그 것은 … http://wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget/ko 1 Introduction 2 Copyright and Acknowledgements 3 안드로이드 아키텍처의 요약 분석 3.1 안드로이드 커널 3.1.1 ARM EABI 3.1.2 OpenBinder 3.1…
- Table of Contents:
httpwikikldporgwikiphpAndroidPortingOnRealTargetko
31 안드로이드 커널 ¶
32 안드로이드 루트 파일 시스템 ¶
33 안드로이드 패키지의 라이센스 ¶
41 툴체인 빌드하기 ¶
42 다른 툴체인 ¶
51 커널 패치 ¶
52 config ¶
61 에뮬레이터에서 램디스크 이미지 얻기 ¶
62 에뮬레이터에서 data와 system 디렉토리 얻기 ¶
63 존재하는 램디스크 이미지로 안드로이드 시스템을 통합하기 ¶
64 System 과 data 디렉토리 ¶
65 실행과 디버그 ¶
66 스크린샷 ¶
71 이클립스(Eclipse) 통합개발환경(IDE) 설치하기 ¶
72 샘플 애플리케이션을 빌드하고 실행하기 ¶
73 스크린샷 ¶
관련글
댓글0
공지사항
최근글
인기글
최근댓글
태그
전체 방문자
고 투 더 멘토 :: 안드로이드 포팅 정리 1 : 전체 소스 코드 빌드 방법
- Article author: samse.tistory.com
- Reviews from users: 48542 Ratings
- Top rated: 4.1
- Lowest rated: 1
- Summary of article content: Articles about 고 투 더 멘토 :: 안드로이드 포팅 정리 1 : 전체 소스 코드 빌드 방법 안드로이드 포팅 정리 1 : 전체 소스 코드 빌드 방법 … 먼저 안드로이드 소스를 빌드하기 위해선 리눅스 ubuntu 환경을 만드는 것이 바람직할 듯 합니다. …
- Most searched keywords: Whether you are looking for 고 투 더 멘토 :: 안드로이드 포팅 정리 1 : 전체 소스 코드 빌드 방법 안드로이드 포팅 정리 1 : 전체 소스 코드 빌드 방법 … 먼저 안드로이드 소스를 빌드하기 위해선 리눅스 ubuntu 환경을 만드는 것이 바람직할 듯 합니다. 출처: http://www.kandroid.org/board/board.php?board=androidsource&command=body&no=4 안드로이드 전체 소스 코드 빌드 방법 먼저 안드로이드 소스를 빌드하기 위해선 리눅스 ubuntu 환경을 만드는 것이 바람직..
- Table of Contents:
안드로이드 포팅, 참고 자료 (AT91CAP9SDK 보드 기준)
- Article author: codingcoding.tistory.com
- Reviews from users: 4709 Ratings
- Top rated: 4.6
- Lowest rated: 1
- Summary of article content: Articles about 안드로이드 포팅, 참고 자료 (AT91CAP9SDK 보드 기준) 안드로이드 포팅, 참고 자료 (AT91CAP9SDK 보드 기준) 안드로이드 포팅 보드 정보 – Proven, Innovative Microcontroller [링크] … …
- Most searched keywords: Whether you are looking for 안드로이드 포팅, 참고 자료 (AT91CAP9SDK 보드 기준) 안드로이드 포팅, 참고 자료 (AT91CAP9SDK 보드 기준) 안드로이드 포팅 보드 정보 – Proven, Innovative Microcontroller [링크] … 안드로이드 포팅, 참고 자료 (AT91CAP9SDK 보드 기준) 안드로이드 포팅 보드 정보 – Proven, Innovative Microcontroller [링크] – [AT91CAP9-STK]Linux Porting [링크] 안드로이드 포팅 참조 – Android Porting..
- Table of Contents:
Header Menu
Main Menu
안드로이드 포팅 참고 자료 (AT91CAP9SDK 보드 기준)
Sidebar – Right
Sidebar – Footer 1
Sidebar – Footer 2
Sidebar – Footer 3
Copyright © 코딩 기록 All Rights Reserved
Designed by JB FACTORY
티스토리툴바
안드로이드 포팅 – ITWorld Korea
- Article author: www.itworld.co.kr
- Reviews from users: 20183 Ratings
- Top rated: 4.0
- Lowest rated: 1
- Summary of article content: Articles about 안드로이드 포팅 – ITWorld Korea 터치패드에 안드로이드를 포팅하고 관리할 수 있는 개발자들에게 지불하는 포상금이 상승해, 지난 목요일에는 2,100달러 이상으로 올랐다. 게임 콘솔과 다른 전자제품 … …
- Most searched keywords: Whether you are looking for 안드로이드 포팅 – ITWorld Korea 터치패드에 안드로이드를 포팅하고 관리할 수 있는 개발자들에게 지불하는 포상금이 상승해, 지난 목요일에는 2,100달러 이상으로 올랐다. 게임 콘솔과 다른 전자제품 … PC World, Computer World 등 글로벌 미디어의 콘텐츠. 테크놀로지 리더들의 실무 의사결정에 도움이 되는 정보 제공.
- Table of Contents:
알라딘: [전자책] 임베디드 안드로이드 : 안드로이드 포팅, 확장, 커스터마이징하기
- Article author: www.aladin.co.kr
- Reviews from users: 7336 Ratings
- Top rated: 4.7
- Lowest rated: 1
- Summary of article content: Articles about 알라딘: [전자책] 임베디드 안드로이드 : 안드로이드 포팅, 확장, 커스터마이징하기 안드로이드를 임베디드 기기에 포팅, 확장, 커스터마이징하는 데 필요한 각종 기술적 궁금증을 해소해 주는 안내서. 다가오는 사물인터넷 시대의 핵심 … …
- Most searched keywords: Whether you are looking for 알라딘: [전자책] 임베디드 안드로이드 : 안드로이드 포팅, 확장, 커스터마이징하기 안드로이드를 임베디드 기기에 포팅, 확장, 커스터마이징하는 데 필요한 각종 기술적 궁금증을 해소해 주는 안내서. 다가오는 사물인터넷 시대의 핵심 … 안드로이드를 임베디드 기기에 포팅, 확장, 커스터마이징하는 데 필요한 각종 기술적 궁금증을 해소해 주는 안내서. 다가오는 사물인터넷 시대의 핵심 플랫폼이 될 안드로이드의 구조와 동작 원리를 이해하여 나만의…임베디드안드로이드
- Table of Contents:
See more articles in the same category here: toplist.maxfit.vn/blog.
안드로이드 포팅 5-1 하드웨어 기초
물리 주소 공간에서 각 구성요소의 실제 위치를 물리 주소 맵 이라고 하며 기기설계자가 PCB기판 위에서 SoC와 다른 모듈들을 연결하는 과정에서 결정된다.
어플리케이션과 기기 사이의 매핑이 제대로 작동하는 이유는 CPU가 메모리관리유닛(MMU)을 통해 두 주소 공간을 완전히 별개로 관리하는 덕분이다. MMU덕분에 CPU는 어플리케이션에게는 가상 주소 공간을 보여주면서 동시에 버스로 연결된 구성요소와는 물리 주소 공간을 통해 데이터를 주고받을 수 있다.
시스템 메모리는 물리 주소 공간에 위치한 모듈이다. 램의 물리 주소 공간 안에서의 위치는 다를 수 있다. 물론 램에는 동작 중인 소프트웨어의 코드와 데이터가 모두 올라와 있다. 그런데 이 코드와 데이터가 실제 물리 주소로 참조되는 경우는 극히 드물다. 대신 운영체제는 MMU와 연동하여 각 프로세스가 비슷한 방식으로 메모리 공간을 볼 수 있는 가상 주소 영역을 구현한다. 가상 주소는 실제 물리 주소에 매핑되지만 운영체제가 관리하는 페이지 표(Page Table)를 보고 MMU가 자동으로 변환해준다.
커널의 주소는 항상0xC000 0000부터 시작하며 안드로이드 앱은 그 아래의 모든 주소 공간을 차지한다.
앱의 텍스트, 즉 앱의 코드는 가상 주소 공간의 시작 지점에 매우 근접해 있다. 그다음으로 매핑된 메모리 영역이 따른다. 이 가상 주소들은 프로세스 간 통신을 위해 공유된 램이나 해당 드라이버의 mmap()함수를 사용하여 프로세스의 주소 공간을 매핑한 물리 메모리 영역을 가리킨다.
물리 주소 공간을 프로세스 주소 공간에 매핑하면 프로세스가 매번 커널과 장치 드라이버를 거치는 대신 직접 IC 구성요소나 연결된 기기를 구동할 수 있다. 실제로 이러한 방법은 안드로이드HAL 컴퍼넌트의 핵심 드라이버 기능을 구현하는 매우 효과적인 방법이다.
마지막으로 라이브러리는 0x8000 0000에서 시작하며 프로세스의 스택은 프로세스의 최상단 주소에서부터 아래쪽으로 내려간다.
안드로이드 포팅 [펌]
안드로이드는 사용자 입력을 위한 이벤트 디바이스를 사용합니다. 거기에는 키패드와 쿼티2(qwerty2) 키보드와 마우스와 같은 세가지 디바이스가 있습니다. 쿼티2(qwerty2) 키보드와 마우스는 보통 디바이스입니다. 그래서 마우스 디바이스를 대체하는 키패드와 터치스크린을 설명하겠습니다.
$ adb shell # cat /proc/bus/input/devices I: Bus=0000 Vendor=0000 Product=0000 Version=0000 N: Name=”goldfish-events-keyboard” P: Phys= S: Sysfs=/class/inut/input0 U: Uniq= H: Handlers=kbd mouse0 event0 … # # cat /proc/bus/input/handlers N: Number=0 Name=kbd N: Number=1 Name=mousedev Minor=32 N: Number=2 Name=evdev Minor=64 # 안드로이드 쉘에서 /proc/bus/input/{devices,handlers}를 cat 하면, 안드로이드에서 사용되는 디바이스들을 볼 수 있습니다.
키패드 Qemu는 goldfish-events-keyboard를 에뮬레이트합니다. 그 것은 이벤트 디바이스(/dev/input/event0)를 사용하는 키패드입니다. 그래서 여러분은 이벤트 디바이스로부터 실제 활성화된 안드로이드 프로그램으로 전달되어지는 키 이벤트의 종류와 값을 알 수 있습니다. 그렇게 하기 위해서 event0 디바이스를 cat으로 읽고 파일로 그 출력을 재지정(redirect)합니다. 만약 에뮬레이터 상의 키 버튼이 눌리고 떼어지면 그 출력 값이 저장될 것입니다. Qemu는 goldfish-events-keyboard를 에뮬레이트합니다. 그 것은 이벤트 디바이스(/dev/input/event0)를 사용하는 키패드입니다. 그래서 여러분은 이벤트 디바이스로부터 실제 활성화된 안드로이드 프로그램으로 전달되어지는 키 이벤트의 종류와 값을 알 수 있습니다. 그렇게 하기 위해서 event0 디바이스를 cat으로 읽고 파일로 그 출력을 재지정(redirect)합니다. 만약 에뮬레이터 상의 키 버튼이 눌리고 떼어지면 그 출력 값이 저장될 것입니다.
struct input_event { struct timeval time; unsigned short type; unsigned short code; unsigned int value; }; 그 출력 형식은 input_event 구조체 입니다. 그래서 각 event의 출력은 시간을 위한 8 바이트, 타입을 위한 2 바이트, 코드를 위한 2 바이트, 값을 위한 4바이트로 총 16 바이트입니다. 리눅스 커널 소스 코드의 Documentation/input 디렉토리의 입력 이벤트 디바이스(input event device)에 관한 input.txt를 읽고, input-programming.txt를 읽으세요.
/* * Key Layout Scancode Table * * 1 2 3 0x1 0x10 0x100 * 4 5 6 0x2 0x20 0x200 * 7 8 9 0x4 0x40 0x400 * * 0 # 0x8 0x80 0x800 */ static unsigned short android_keycode[] = { /* * 0x66 0x67 0x9e Home Up Back * 0x69 0xe8 0x6a Left Ok Right * 0xe7 0x6c 0x6b Send Down Hangup * 0xe5 Menu just_distinction_for_private */ KEY_HOME, KEY_UP, KEY_BACK, KEY_LEFT, KEY_REPLY, KEY_RIGHT, KEY_SEND, KEY_DOWN, KEY_END, KEY_KBDILLUMDOWN, KEY_RESERVED, KEY_PLAY }; Tiger7 개발 보드는 그 고유의 scancode 테이블을 가집니다. 다음은 개발보드의 키 레이아웃과 scancode 테이블과 안드로이드 키 코드를 보입니다:
에뮬레이터에는 전원(power) 버튼이 있습니다. 그러나 출력 값을 얻기 위해서 무시했습니다.
… keycode = translate_keycode(scancode); … input_event(keydev->input, EV_KEY, keycode, KEY_PRESSED); or input_event(keydev->input, EV_KEY, keycode, KEY_RELEASED); … 키패드의 인터럽트가 감지(caught)되면 위 테이블의 안드로이드의 키 코드로 scancode를 변환하고 사용자 공간(user space) 프로그램으로 이벤트를 보냅니다.
고정밀도 타이머 – hrtimer는 키패드 debounce를 줄이기 위해서 사용되었습니다.
터치 스크린
포인팅 디바이스를 위한 이벤트 인터페이스를 지원하는 터치스크린 드라이버를 갖고 있다면, 잘 동작할 것입니다. 그렇지 않다면, 다른 포인팅 디바이스를 사용하거나 구현해야 합니다. 다행스럽게도 개발보드는 이미 안드로이드 포팅을 시작하기 전에 만들어진 터치스크린 드라이버 – drivers/input/touchscreen/tsc2007.c -가 구현되어 있었습니다. 여러분 고유의 드라이버를 구현하기 위해서는 drivers/input/touchscreen/ 의 드라이버와 Documentation/input/의 텍스트 파일을 참고하세요. 여기 개발 보드 상의 /proc/bus/input/{devices,handlers}의 출력이 있습니다. # cat /proc/bus/input/devices I: Bus=0000 Vendor=0000 Product=0000 Version=0000 N: Name=”MVT7 KEYPAD” P: Phys= S: Sysfs=/class/input/input0 U: Uniq= H: Handlers=kbd event0 evbug B: EV=f … I: Bus=0000 Vendor=0000 Product=0000 Version=0000 N: Name=”TSC2007 Touchscreen” P: Phys=0-0090/input0 S: Sysfs=/class/input/input1 U: Uniq= H: Handlers=event1 evbug B: EV=b B: KEY=400 0 0 0 0 0 0 0 0 0 0 B: ABS=1000003 # cat /proc/bus/input/handlers N: Number=0 Name=kbd N: Number=1 Name=evdev Minor=64 N: Number=2 Name=evbug 포인팅 디바이스를 위한 이벤트 인터페이스를 지원하는 터치스크린 드라이버를 갖고 있다면, 잘 동작할 것입니다. 그렇지 않다면, 다른 포인팅 디바이스를 사용하거나 구현해야 합니다. 다행스럽게도 개발보드는 이미 안드로이드 포팅을 시작하기 전에 만들어진 터치스크린 드라이버 – drivers/input/touchscreen/tsc2007.c -가 구현되어 있었습니다. 여러분 고유의 드라이버를 구현하기 위해서는 drivers/input/touchscreen/ 의 드라이버와 Documentation/input/의 텍스트 파일을 참고하세요. 여기 개발 보드 상의 /proc/bus/input/{devices,handlers}의 출력이 있습니다.
결과에서 보는 것과 같이, 프로그램 계층(application layer)에서 키패드는 /dev/input/event0를 사용하고, 터치스크린 인터페이스는 /dev/input/event1를 사용합니다.
안드로이드 포팅, 참고 자료 (AT91CAP9SDK 보드 기준)
안드로이드 포팅, 참고 자료 (AT91CAP9SDK 보드 기준)
이하 사항들은 안드로이드 포팅 정보의 요약 내용입니다.
— 안드로이드 포팅 시작 —
버닝 방법 요약은 다음과 같다. (윈도우에서의 예로서, 리눅스와 더불어 리눅스 CDC 드라이버 요소가 필요)
SAM-BA, CDC driver를 다운로드 후 설치하고, AT91CAP9-STK의 Linux Software Package 압축을 해제
안드로이드 포팅 시작
STK board를 콘센트와 연결하고 USB 케이블을 컴퓨터와 연결.
보드에서 J66 점퍼 제거(CAP9 칩 쪽의 파란색 위치)한 후 S4(EN_PMC)를 눌러 시작.
이때 윈도우는 인스톨 되어 있던 CDC 드라이버와 같은 새로운 장치를 발견, 사용자는 드라이버를 윈도우에서 자동으로 검색됨. (at91cap9stk-console-nd.bat는 GUI 버전이 아님)
조금 기다린 후, “logfile.log”이 생성되면 버닝이 완료된 것임.
전원 연결 해제 후, S4(EN_PMC)를 눌러 부트 프로세서를 시작해 부트가 실행되면 성공되긴 하지만, 최소한의 터치 기능만 있다.
(중략)
1 $git clone git: / / android.git.kernel.org / kernel / common.git cs
(이 과정전에 sudo apt-get install git-core 필요)
리눅스 커널 패치는 ‘AT91CAP9-STK Linux Software Package’에 있다.
압축을 해제하면, 안드로이드 포팅을 위한 세 개의 패치 파일이 있다.
1 2 3 $git clone git: / / android.git.kernel.0001_CAP9 – STK_linux – 2. 6. 27 – at91.patch 0002_CAP9 – STK_linux – 2. 6. 27 – at91 – exp – cap9 – dk.patch 0003_CAP9 – STK_linux – 2. 6. 27 – at91 – exp – cap9 – stk.patchrg / kernel / common.git cs
STK 보드는 0001 + 0003, DK 보드는 0001 + 0002가 필요하다.
$(andsrc)/kernel로 패치 파일을 옮기는 것이 요구되며, 커널 패치를 하기 위해 다음 명령어를 사용해라.
1 $patch – p1 < patch - file - name - here cs (중략) 사용자는 처음으로 at91cap9-sdk의 설정을 적용한다. 1 2 3 4 5 $cp $(andkernel) / common / arch / arm / configs / at91cap9stk_defconfig $(andkernel) / common / .config $make ARCH = arm menuconfig (잘 안되면 sudo apt - get install libncurses5 - dev) cs 여기서 우리는 처음 설정을 수정하지 않고, 바로 나와 설정을 저장한다. 유효한 사용가능한 ARM CPU 커널을 컴파일, 우리는 안드로이드 포팅을 위해 CodeSourcery를 사용한다. IA32 GNU / Linux Installer를 다운로드 한 후의 예. 1 $ . / arm - 2008q3 - 66 - arm - none - eabi.bin cs 설치 성공 후에 컴파일러 경로를 추가한다. 1 $export PATH = $PATH:$(codesourcery) / Sourcery_G + + _Lite / bin cs $(andkernel)/common 아래에 Makefile을 수정한다. 1 2 3 Modify $ (andkernel) / common under the Makefile: CROSS_COMPILE? = Arm - none - eabi - cs 그 다음 당신은 커널을 컴파일 할 수 있다. 지금 우리는 커널을 가지고 있지만 U-Boot는 uImage를 먹어, uImage에 대한 Image를 만들어야 한다. 커널 환경설정 툴을 $(andkernel)/common 아래에서 연다. 1 $make ARCH = arm menuconfig cs Ext3로 포맷된 SD 카드의 파일 시스템이어서 커널은 Ext3 파일 시스템을 지원해야 안드로이드 포팅을 이어갈 수 있다. 1 2 3 File systems - - - > < * > Ext3 journalling file system support [ * ] Ext3 extended attributes cs
ARM Thumb가 사용할 수 있도록 실행 가능한 파일로 컴파일을 할 것이다.
1 2 System Type – – – > [ * ] Support Thumb user binaries cs
AT91CAP9-STK에 응답하기 위하여
1 2 General setup – – – > [ * ] Enable the Anonymous Shared Memory Subsystem cs
1 2 3 4 5 $cd $(andkernel) / common / arch / arm / boot $gzip – 9 Image $mkimage – A arm – O linux – T kernel – C gzip – a 0x70008000 – d Image.gz uImage (이전에 sudo apt – get install uboot – mkimage) Colored by Color Scripter cs
우리가 원하는 La uImage kernel이다.
(중략)
소스는 ‘working-directory-name’의 ‘$(andsrc)’에 다운로드 된다.
여기서 우리는 아무런 수정 없이 바로 첫 번째 컴파일을 바로 하여 안드로이드 포팅을 계속한다.
1 2 3 4 5 6 7 8 9 10 sudo apt – get install sun – java5 – jdk(jdk 버전 5에서만 make됨) sudo apt – get install bison sudo apt – get install build – essential sudo apt – get install qemu sudo apt – get install qemu – kvm sudo apt – get install libsdl1. 2 – dev $cd $(andsrc) $make Colored by Color Scripter cs
컴파일 시간은 약 2.5 시간, 디스크 용량은 거의 8GB 정도 소요된다. (원글을 적은 중국 개발자 사양 – Intel Core 2 Solo [email protected])
컴파일이 되면 파일 시스템은 $(andsrc)/out/target/product/generic 다음에 있을 것이다.
안드로이드 파일 시스템은 주로 세 개의 파트 종류로 구성되어 있다.
1. Ramdisk.img는 파일 시스템 “/”의 /system과 /data 밖의 파일을 제외한 모든 파일들을 포함 2. System.img는 /system 아래의 모든 파일을 포함 3. Data.img는 /data 아래의 모든 파일을 포함
보통의 안드로이드 포팅 환경 아래서, 파일 시스템은 JFFS2 패키지이기 때문에 SAM-BA로 NAND에 버닝할 수 있다.
그러나 안드로이드 /data 폴더 아래의 파일 시스템은 memory-mapped(기억 장소 할당) 작업을 지원해야 하는데, JFFS2는 memory-mapped를 지원하지 않아, SAMBA에서 안드로이드 YAFFS2를 사용해 버닝 할 수 없다.
(중략)
리눅스에서 SD 카드를 카드 리더기에 넣으면, Ext3로 포맷이 된다(fdisk나 mkfs).
그 위치는 /media/disk일 것이고, 안드로이드의 “/”루트 폴더 위치와 대응한다.
우리는 .img 파일의 압축 해제가 필요하지 않는데, 왜냐하면, $(Andsrc)/out/target/product/generic 폴더 아래의 root, data, system 폴더들 ramdisk.img, userdata.img, system.img가 압축이 해제된 파일들이기 때문이다.
당신이 할 수 있다면 대응하는 위치에 복사가 된다.(루트 권한 필요)
1 2 3 $ sudo cp – r $(andsrc) / out / target / product / generic / root / * / media / disk / $ sudo cp – r $(andsrc) / out / target / product / generic / data / / media / disk / $ sudo cp – r $(andsrc) / out / target / product / generic / system / / media / disk / cs
그 다음 init.rc를 수정해야 한다.(/media/disk/init.rc).
1 Then we want to modify init.rc ( / media / disk / init.rc). cs
init.rc는 init 실행을 정의를 완료하며, 그리고 /data와 /system 마운트하여 실행하며, 그러나 우리는 이 폴더들을 버렸고, 그래서 그 명령들은 없애야 안드로이드 포팅할 수 있다.
init.rc에서 마운트 명령어를 모두 삭제하는 것을 시작하며, 오직 “mount tmpfs tmpfs /sqlite_stmt_journals size=4m”。”만 남겨준다. 우리는 커널과 파일 시스템을 완성시켰다.
(중략)
커널 환경설정 툴을 $(andkernel)/common 아래에서 연다
1 $make ARCH = arm menuconfig cs
Ext3로 포맷된 SD 카드의 파일 시스템이어서 커널은 Ext3 파일 시스템을 지원해야 한다.
1 2 3 File systems – – – > < * > Ext3 journalling file system support [ * ] Ext3 extended attributes cs
안드로이드의 일부는 ARM Thumb가 사용할 실행 가능한 파일로 컴파일을 할 것이다.
1 2 General setup – – – > [ * ] Enable the Anonymous Shared Memory Subsystem cs
1 2 System Type – – – > [ * ] Support Thumb user binaries cs
셋업이 완벽할 때, 셋팅을 .config에 저장하는 것을 기억한다.
(중략)
마지막으로 옹스트롬을 사용했을 때, at91cap9-stk-x11-nd.bat과 같은 디렉토리에 있다.
1 2 3 kernelFileName “at91cap9stk-linux.bin” – > KernelFileName “uImage” cs
uImage는 그 다음에 같은 방법으로 버닝된 디렉토리에 복사되어 안드로이드 포팅에 사용할 수 있다.
(버닝된 파일 시스템이 필요하지 않을 때, .tcl 파일에서 2개의 줄은 삭제한다.)
(중략)
1 2 U – Boot > setenv bootargs console = ttyS0, 115200 root = / dev / mmcblk0p1 rw init = / init rootwait cs
/dev/mmcblk0p1는 첫 번째 파티션에서 첫 번째 SD 카드, rootwait는 그 SD 카드 드라이브에서 루트가 준비 될 때까지 기다리는 것을 보장한다.
1 2 3 U – Boot > saveenv U – Boot > run bootcmd cs
bootcmd가 시작되며 커널과 드라이버가 로딩되고 SD 카드에서 루트 파일 시스템을 얻게되고 /init 폴더에서 작동하는 것이 실행된다.
So you have finished reading the 안드로이드 포팅 topic article, if you find this article useful, please share it. Thank you very much. See more: 안드로이드 포팅 하는법, 안드로이드 포팅 게임, ARM 안드로이드 포팅, 안드로이드 파일 시스템, 안드로이드 lunch 명령어