현재 ODROID를 위한 기본개발환경구성
- Host OS Ubuntu 권장사항
- Android 6.0 (Marshmallow) - AOSP master: Ubuntu 14.04 (Trusty)
- Android 2.3.x (Gingerbread) - Android 5.x (Lollipop): Ubuntu 12.04 (Precise)
- Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Ubuntu 10.04 (Lucid)
- Build Toolchain
- Android 8.0 and higher support only Clang/LLVM
- legacy kernels, GCC 4.9 included in the AOSP master branch (under prebuilts/) may also be used.
- JDK 권장사항
- Android 7.0 (Nougat) - Android 8.0 (Oreo): Ubuntu - OpenJDK 8, Mac OS - jdk 8u45 or newer
- Android 5.x (Lollipop) - Android 6.0 (Marshmallow): Ubuntu - OpenJDK 7, Mac OS - jdk-7u71-macosx-x64.dmg
- Android 2.3.x (Gingerbread) - Android 4.4.x (KitKat): Ubuntu - Java JDK 6, Mac OS - Java JDK 6
- Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Ubuntu - Java JDK 5
- 개발환경-Key packages
- Python 2.6 to 2.7 from python.org
- GNU Make 3.81 to 3.82 from gnu.org
- Git 1.7 or newer from git-scm.com
- Make Version
Android SITE의 기본요구사항 확인
https://source.android.com/setup/build/requirements
Host에서 USB Device 설정
https://developer.android.com/studio/run/device#setting-up1.1 Ubuntu 12.04 LTS 32bit Version 설치
Android 기본 빌드내용은 아래의 사이트를 참고
Linux에 기본 Android Build 환경과 SDK 및 기타 설정해보자
Ubuntu에 Android 개발환경을 설치해보자. 만약 Virtual Machine을 이용한다면,우선 Virtual Machine 먼저 설정하고, 아래와 같이 ubuntu를 기본으로 설치진행
- OS : unbuntu 12.04_LTS
- Virtual Box 사용.
Virtual Box 설치 및 Ubuntu 12.04 설치
https://ahyuo79.blogspot.com/2013/12/virtualbox.html
repo 설치 및 git 설치
https://ahyuo79.blogspot.com/2014/07/repo.html
Google의 개발환경구성 관련설명
https://source.android.com/setup/build/initializing
https://ahyuo79.blogspot.com/2014/07/repo.html
Google의 개발환경구성 관련설명
https://source.android.com/setup/build/initializing
Google의 개발환경구성 관련설정
https://source.android.com/source/initializing.html#installing-the-jdk
ODROID Download
https://com.odroid.com/sigong/nf_file_board/nfile_board_view.php?keyword&tag&bid=230
https://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroidaf&bid=1294
https://com.odroid.com/sigong/nf_file_board/nfile_board_view.php?keyword=&tag=&bid=95
설치된 중복 Package 관리방법
https://ahyuo79.blogspot.com/2018/02/ubuntu-package-2.html
jdk-6u26-linux-x64.bin (계정이 필요)
https://www.oracle.com/technetwork/java/javase/downloads/index.html
https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
1.1. Installing JDK (Java Development Kit)
ubuntu를 설치를 하고 update를 하면 , 기본적으로 openJDK가 설치가 된다고 하는데 이 openJDK로 빌드를 하면 문제발생하는데, 주로 JDK의 Version 문제이다.
ODROID Android Source Version 를 여러 개 같이 빌드하니, 이 문제는 각 버전마다 별도로 각각 관리해야함
일단 TEST를 위해서 Sun사 JDK와 OpenJDK 둘다 설치해보고 테스트 중이다.
더불어 Oracle JDK도 존재하며, Sun 사는 Oracle사에 인수합병이 되었으니, Sun JDK가 이전 Version , Oracle JDK가 이후 Version일 것 이라고 생각함
본래 JDK에 문제가 없다면 하나만 설치하면된다. 문제가 발생하면 처음 Version을 변경을 해보고, 다른 JDK로 변경을 해보자.
위의 명령대로 했더니, 설치가 안되어서, 다시 구글링해서 아래와 같이 script version or manual version으로 설치
https://source.android.com/source/initializing.html#installing-the-jdk
ODROID Download
https://com.odroid.com/sigong/nf_file_board/nfile_board_view.php?keyword&tag&bid=230
- 기본 adb 와 fastboot 설치
$ sudo apt-get install android-tools-adb android-tools-fastboot
- 설정 Tool Chain
$ sudo apt-get install gcc-arm-linux-gnueabihf $ vi ~/.profile ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- JAVA_HOME=/usr/lib/jvm/jdk1.6.0_35 PATH=$JAVA_HOME/bin:$PATH
- AOSP Build 시 문제사항
$ sudo apt-get install libswitch-perl
- JDK 관련문제사항
Copying: out/target/common/obj/APPS/KeyChain_intermediates/emma_out/lib/classes-jarjar.jar Copying: out/target/common/obj/APPS/Launcher2_intermediates/emma_out/lib/classes-jarjar.jar make: *** [out/target/common/docs/api-stubs-timestamp] 오류 45
- JDK 문제 발생시 변경
$ update-alternatives --config javadoc $ update-alternatives --config java $ update-alternatives --config javac $ update-alternatives --config jar
- Errors.HIDDEN_SUPERCLASS
.... ERROR사항 (stripped of unavailable superclass 에러) (JDK 6으로 변경) Install: out/target/product/odroidx2/system/app/Development.apk Copying: out/target/common/obj/JAVA_LIBRARIES/uiautomator_intermediates/noproguard.classes.jar target Dex: uiautomator Install: out/target/product/odroidx2/system/app/PinyinIME.apk frameworks/base/ethernet/java/android/net/ethernet/EthernetStateMachine.java:72: error 111: Public class android.net.ethernet.EthernetStateMachine stripped of unavailable superclass com.android.internal.util.StateMachine DroidDoc took 19 sec. to write docs to out/target/common/docs/api-stubs
https://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroidaf&bid=1294
https://com.odroid.com/sigong/nf_file_board/nfile_board_view.php?keyword=&tag=&bid=95
설치된 중복 Package 관리방법
https://ahyuo79.blogspot.com/2018/02/ubuntu-package-2.html
- JAVA JDK 관련링크
jdk-6u26-linux-x64.bin (계정이 필요)
https://www.oracle.com/technetwork/java/javase/downloads/index.html
https://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase6-419409.html
1.1. Installing JDK (Java Development Kit)
ubuntu를 설치를 하고 update를 하면 , 기본적으로 openJDK가 설치가 된다고 하는데 이 openJDK로 빌드를 하면 문제발생하는데, 주로 JDK의 Version 문제이다.
ODROID Android Source Version 를 여러 개 같이 빌드하니, 이 문제는 각 버전마다 별도로 각각 관리해야함
일단 TEST를 위해서 Sun사 JDK와 OpenJDK 둘다 설치해보고 테스트 중이다.
더불어 Oracle JDK도 존재하며, Sun 사는 Oracle사에 인수합병이 되었으니, Sun JDK가 이전 Version , Oracle JDK가 이후 Version일 것 이라고 생각함
본래 JDK에 문제가 없다면 하나만 설치하면된다. 문제가 발생하면 처음 Version을 변경을 해보고, 다른 JDK로 변경을 해보자.
- Sun JDK 설치 (실패)
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner" $ sudo apt-get update $ sudo vi /etc/apt/sources.list ## check your list $ sudo apt-get install sun-java6-jdk
위의 명령대로 했더니, 설치가 안되어서, 다시 구글링해서 아래와 같이 script version or manual version으로 설치
- Sun JDK 설치 (성공)
$ wget https://raw.github.com/flexiondotorg/oab-java6/master/oab-java.sh $ chmod +x oab-java.sh $ sudo ./oab-java.sh $ sudo apt-get update $ sudo apt-get install sun-java6-jdk sun-java6-fonts sun-java6-source $ sudo update-alternatives --config java // JAVA JDK중 사용자가 직접설정 $ sudo update-alternatives --all // 모든설정 사용자가 직접설정. # 체크 모든 JDK , JRE 설정
- Oracle JDK 설치
sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get upgrade sudo apt-get install oracle-java7-installer // oracle-7 JDK 설치 sudo update-java-alternatives -s java-7-oracle // oracle-java-7로 설정 및 사용 sudo echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true | sudo /usr/bin/debconf-set-selections // 정확히 뭔지 모르겠음 sudo apt-get install oracle-java7-set-default // JAVA_HOME and PATH 환경변수 자동설정. sudo apt-get install oracle-java8-installer sudo apt-get install oracle-java6-installer // 각 version 별로 설치
http://askubuntu.com/questions/21131/how-to-correctly-remove-openjdk-openjre-and-set-sunjdk-sunjre-as-default
Sun사와 Oracle 사의 JDK를 설치, Version 1.6로 확인 JDK는 Ubuntu Terminal에서 설치를 해야한다. (SSH Client 설치할 경우, Error)
JDK 관련설명 및 사용법
https://help.ubuntu.com/community/Java
Android Version ICS와 JDK 권장내용 (ODROID 관련내용, 중요한 내용)
http://codewalkerster.blogspot.kr/2011/11/android-openjdk-vs-sun-jdk-build.html
- Open JDK 설치
$ sudo apt-get update $ sudo apt-get install openjdk-7-jdk
- SUN SDK 6 설치확인
$ java -version $ javac -versionSun JDK 6
$ java -version //Sun JDK 6 and Oracle 6
java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)
OPEN JDK 7 설치확인
$ java -version // OpenJDK 설치시
java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1~0.12.04.2)
OpenJDK 64-Bit Server VM (build 24.51-b03, mixed mode)
javac 1.7.0_55
이렇게 JDK를 여러개를 설치 한 후 JDK와 JRE를 변경하고 싶다면 update-alternatives를 이용하는데, 이게 애매할때가 있는데,
이런 경우에는 각 설치한 JDK 패키지들을 각자 삭제한후 새로 설치 진행을 하자
나중에 정리가 필요할 것 같다.
1.2. Ubuntu 12.04의 Package 설치
$ sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ libgl1-mesa-dev g++-multilib mingw32 tofrodos \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
1.3. Host 에서 ADB USB Access 허용
Host 즉 Window에서, Guest OS인 Linux Server에 usb device 관련설정 한 후에 , Window의 Virtual box에서 USB Filter로 등록하여 사용하자.
- adb 사용을 위해 USB Device 설정
$ sudo vi /etc/udev/rules.d/51-android.rules SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666" $ sudo chmod a+rx /etc/udev/rules.d/51-android.rules $ sudo service udev restart
아래의 사이트 참고
http://developer.android.com/tools/device.html
Fastboot 설치방법
https://github.com/red-root/PortingARMLinux/wiki/Fastboot-%EC%84%A4%EC%B9%98-%EB%B0%8F-%EC%82%AC%EC%9A%A9%EB%B2%95
2. How to install Toolchain
Lite version 만 무료이며, 아래의 링크는 ODROID 사이트에서 가져옴
- Code Sourcery - Tool Chain Download
- Download 후 설치
$ sudo chmod a+x arm-2010q1-188-arm-none-eabi.bin $ sudo dpkg-reconfigure -plow dash 아니오 선택. $ ./arm-2010q1-188-arm-none-eabi.bin
설치시 PATH에 cross compiler 설치된 디렉토리 자동으로 추가되며,이를 .bath_profile로 확인.
3. How to install SDK and ECLIPSE
3.1 ECLIPSE
$ sudo apt-get install ecplise
회사 컴퓨터는 위와 같이 설치가 했는데 아래와 같은 에러가 발생하여, 아래와 같이 해결.
java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
$ ln -s /usr/lib/jni/libswt-* ~/.swt/lib/linux/x86_64/
이상하게, Eclipse와 위에서 설치한 필수 library와 충돌한다.
만약 위의 대로 설치가 되지 않는다면, 아래와 사이트가서 직접 다운로드해서 실행.
http://www.eclipse.org/downloads/packages/release/indigo/sr2
3.2. ECLIPSE에서 Android SDK 설치
ODROID 메뉴얼과 아래의 메뉴얼을 참조하면 쉽게 할수 있을 것이다.
$ eclipse 실행. Help->Install New Software -> ADD
ADT(Android Develop Tools) 로
Name: ADT Plugin
Location: https://dl-ssl.google.com/android/eclipse/
- ADB와 FASTBOOT를 사용하기위해서 PATH설정
$ vi ~/.bash_profile PATH=${PATH}:~/android-sdks/platform-tools $ source ~/.bash_profile
아래사이트 참조
http://blog.naver.com/PostList.nhn?from=postList&blogId=kazama10&categoryNo=29¤tPage=3
Ref.
http://source.android.com/source/initializing.html