728x90

기본적으로 linux는 ubuntu 14.04(64bit desktop)를 VM에 설치했다.


hard disk : 30G

memory : 1G


android-x86 용 가이드가 잘 되어 있어서 따라하기만 하면 됨


http://www.android-x86.org/getsourcecode


  $ repo init -u http://git.android-x86.org/manifest -b kitkat-x86

  $ repo sync



install JAVA : 최신버전인 1.8 설치했더니 맞지 않단다 1.6 or 1.7을 설치하라고 해서 다시 설치함

http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

download : jdk-7u60-linux-x64.tar.gz


  $ mkdir /usr/local/java/

  $ mv jdk-7u60-linux-x64.tar.gz /usr/local/java/

  $ tar xvfz /usr/local/java/jdk-7u60-linux-x64.tar.gz

  $ sudo vi /etc/profile


마지막 부분에 내용 추가

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")


명령어에 새로 설치한 java를 등록

  $ sudo update-alternatives --install "/usr/bin/java" "java" "/usr/local/java/jdk1.7.0_60/bin/java" 1;


  $ sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/local/java/jdk1.7.0_60/bin/javac" 1;

 

  $ sudo update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/local/java/jdk1.7.0_60/bin/javaws" 1;


  $ sudo update-alternatives --set java /usr/local/java/jdk1.7.0_60/bin/java;

  $ sudo update-alternatives --set javac /usr/local/java/jdk1.7.0_60/bin/javac;

  $ sudo update-alternatives --set javaws /usr/local/java/jdk1.7.0_60/bin/javaws;


변경사항 적용

  $ source /etc/profile


설치 확인

  $ java -version




728x90
728x90

In file included from external/oprofile/libpp/arrange_profiles.cpp:24:0:

external/oprofile/libpp/format_output.h:94:22: error: reference ‘counts’ cannot be declared ‘mutable’ [-fpermissive]

make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/liboprofile_pp_intermediates/arrange_profiles.o] Error 1




SOLUTION

external/oprofile/libpp/format_output.h
Fix/Work-around:
- mutable counts_t & counts;
+ counts_t & counts;


728x90

'Programming > android' 카테고리의 다른 글

perl 5.18 switch module error  (0) 2015.03.20
android img upload(fastboot)  (0) 2014.09.29
Can't locate Switch.pm  (0) 2014.09.29
android-x86 build 도중 만난 errors  (0) 2014.07.13
android Kitkat 을 VMware에 설치해보자  (0) 2014.07.13
linker.cpp error  (0) 2013.12.19
Android Version & Source tree  (0) 2013.09.13
LogFilter : Android Log viewer MFC version  (0) 2013.09.11
build error  (0) 2013.07.02
bluez scan  (3) 2013.04.03
728x90

external/mesa3d/src/glsl/linker.cpp:623:33: warning:   by ‘virtual ir_visitor_status remap_variables(ir_instruction*, gl_shader*, hash_table*)::remap_visitor::visit(ir_dereference_variable*)’ [-Woverloaded-virtual]

external/mesa3d/src/glsl/linker.cpp: In function ‘void assign_varying_locations(gl_shader_program*, gl_shader*, gl_shader*)’:

external/mesa3d/src/glsl/linker.cpp:1394:49: error: expected primary-expression before ‘,’ token

external/mesa3d/src/glsl/linker.cpp:1394:50: error: ‘varyings’ was not declared in this scope

external/mesa3d/src/glsl/linker.cpp:1394:58: error: ‘offsetof’ was not declared in this scope

external/mesa3d/src/glsl/linker.cpp:1395:48: error: expected primary-expression before ‘,’ token

external/mesa3d/src/glsl/linker.cpp:1412:47: error: expected primary-expression before ‘,’ token

external/mesa3d/src/glsl/linker.cpp:1412:48: error: ‘position’ was not declared in this scope

external/mesa3d/src/glsl/linker.cpp:1414:47: error: expected primary-expression before ‘,’ token

external/mesa3d/src/glsl/linker.cpp:1414:48: error: ‘pointSize’ was not declared in this scope

external/mesa3d/src/glsl/linker.cpp:1424:47: error: expected primary-expression before ‘,’ token

external/mesa3d/src/glsl/linker.cpp:1424:48: error: ‘position’ was not declared in this scope

external/mesa3d/src/glsl/linker.cpp:1428:47: error: expected primary-expression before ‘,’ token

external/mesa3d/src/glsl/linker.cpp:1428:48: error: ‘frontFacingPointCoord’ was not declared in this scope

external/mesa3d/src/glsl/linker.cpp:1431:47: error: expected primary-expression before ‘,’ token

external/mesa3d/src/glsl/linker.cpp:1431:48: error: ‘frontFacingPointCoord’ was not declared in this scope

external/mesa3d/src/glsl/linker.cpp: In function ‘void link_shaders(const gl_context*, gl_shader_program*)’:

external/mesa3d/src/glsl/linker.cpp:1734:49: error: expected primary-expression before ‘,’ token

external/mesa3d/src/glsl/linker.cpp:1734:50: error: ‘fragColor’ was not declared in this scope

external/mesa3d/src/glsl/linker.cpp:1734:59: error: ‘offsetof’ was not declared in this scope

make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libMesa_intermediates/src/glsl/linker.o] Error 1




SOLUTION

Problem comes from host libstdc++. Since version 4.6 <cstdio> does not include <cstddef> anymore.

Downgrade host package to libstdc++ 4.5 or add '#include <cstddef>' into linker.cpp

728x90
728x90

https://source.android.com/source/build-numbers.html


Code name

Version

API level

(no code name)

1.0

API level 1

(no code name)

1.1

API level 2

Cupcake

1.5

API level 3, NDK 1

Donut

1.6

API level 4, NDK 2

Eclair

2.0

API level 5

Eclair

2.0.1

API level 6

Eclair

2.1

API level 7, NDK 3

Froyo

2.2.x

API level 8, NDK 4

Gingerbread

2.3 - 2.3.2

API level 9, NDK 5

Gingerbread

2.3.3 - 2.3.7

API level 10

Honeycomb

3.0

API level 11

Honeycomb

3.1

API level 12, NDK 6

Honeycomb

3.2.x

API level 13

Ice Cream Sandwich

4.0.1 - 4.0.2

API level 14, NDK 7

Ice Cream Sandwich

4.0.3 - 4.0.4

API level 15, NDK 8

Jelly Bean

4.1.x

API level 16

Jelly Bean

4.2.x

API level 17

Jelly Bean

4.3

API level 18


Source Tree


├── bionic                        : bionic libc(BSD의 libc 수정)를 포함

├── bootable                       : bootloader, recovery mode 관련 코드

├── build                          : 빌드 관련 스크립트를 저장

│   ├── envsetup.sh           : 환경 정보 설정 파일, 제조사의 Flag들에 대한 설정

   │                                           ( source build/envsetup.sh 로 반영)

│   ├── core

│   │       └── prelink-linux-arm.map : shared library들이 로딩되는 번지를 

   │                                                     미리 지정한 파일

│   └── target

│            └── board

│               └── generic

│                           ├── AndroidBoard.mk    : 최상위 directive 파일, 

│                               │                                     Android 최종 결과물 구성서 

│                               │                                     자동 포함 bin에 대한 install을 결정

│                           │                              init.rc, init%hw%.rc 들을 install

│                           ├── BoardConfig.mk   : HAL의 en/disable 등을 결정, 

│                               │                      Android.mk파일들에서 사용되는 define을 선언

│                           └── device.mk   : 최종 결과물에 대해 filesystem설정 및 

                                                      포함시키고 싶은 binary들을 copy/install 결정

├── cts                 : Compatibility Test Suite, GMS를 탑재 위해 통과해야 하는 Test

├── dalvik               : dalvik VM 관련 소스 코드

├── development           : 개발용 application을 저장 

                                   (하위에 samples directory에 참고할만한 source가 많이 있다)

├── device               : 칩 관련 설정 파일 및 디버깅을 위한 cmm 파일 등을 포함

├── external                 : 기존 작성된 library, binary등의 소스 코드를 포함

│       └── synergy : CSR synergy source 

├── frameworks

│      ├── base      : Android Framework Source Code

│      ├── cmds      : binder 관련된 service manager 소스코드 및 여러 가지 command

│      ├── libs        : Android base library(AudioFlinger,SurfaceFlinger,util,binder 등)

│      ├── media     : media 관련 Client & Service 라이브러리

│      │                      (media관련된 부분이 양이 많고 독립적이라 따로 빼서 관리함)

│      └── policies : Android 시스템을 background에서 제어하는 최상위 application

│                            KeyGuard 관련, 화면 제어(rotation..),event 관리 등의 작업 처리

├── hardware         : Android에서 사용하는 h/w 관련 소스 코드 포함(HAL, include..)

│      ├── libhardware     : Board H/W 의존성이 높은 하드웨어 모듈 포함

│      └── libhardware_legacy: 일반적으로 Android에 반드시 있어야 하는 H/W 모듈

├── packages               : Android 기본 Application 소스 코드를 포함

├── prebuilt                 : 툴체인과 미리 빌드되어 들어가는 바이너리 파일 포함

├── system             : Android의 기본 바이너리 소스 코드(init…)

│      ├── core

│      │      ├── init           : Android init 소스 코드

│      │      └── vold         : external storage 제어 모듈 (Eclair)

│      └── vold                 : external storage 제어 모듈 (Froyo/Gingerbread)

├── vendor               : vendor specific code(HAL, product list 관리…)

└── ndk                 : Native Development Kit (docs directory를 참고하면 

도움이 많이 된다. : ANDROID-MK.html, SYSTEM-ISSUES.html, NDK-BUILD.html등)



728x90

+ Recent posts