몰디브를 꿈꾸며...
안드로이드 개발 환경 구축(odroid u3) 본문
# emmc 메모리 관련 오류 발생시 응급 조치
http://forum.odroid.com/viewtopic.php?f=53&t=969
# 우분투 설치
최신 우분투 패키지를 Virtual Box에 설치한다. 현재 시점에서 최신 버젼은 14.04.1 lts이다. 우분투 홈페이지에서 다운받는 것도 좋지만, 다음 미러 사이트(http://ftp.daum.net/ubuntu-releases/)에서 cd 이미지 화일을 다운 받았다.
설치를 하고 나서 필요없는 office/게임등은 지웠다.
- 터미널 프로그램 찾기가 왜 이리 힘든지. 오랫만에 우분투를 접해봐서 당황스러웠다.
"대시"라고 깔고 나면 왼쪽 메뉴 첫번째 아이콘을 클릭하고 "Te"까지만 치면 terminal 프로그램이 나온다. 왼쪽 메뉴에 고정시키자. 일단.
# 패키지 업데이트 및 업그레이드
패키지 최신 버젼으로 업그레이드 하자.
터미널 에서 아래 명령어를 실행한다.
$sudo apt-get update --yes && sudo apt-get upgrade --yes |
# 안드로이드 빌드에 필요한 패키지 체크
아래 링크를 참고하여 필요한 패키지 설치한다.
http://source.android.com/source/initializing.html
문서를 읽다보니 아래 문구와 같이 요구사양이 나온다.
현재 Virtual Box 사양은 램 2G/하드 20G로 설정해 놓았다.
일단 현재 설정에서 시도를 해 보겠다.
# JDK 설치
$ sudo apt-get update |
# 필요한 패키지 설치
$ sudo apt-get install bison g++-multilib git gperf libxml2-utils $ sudo apt-get install lib32z1 flex libswitch-perl |
# Oracle java6 설치
$ sudo add-apt-repository ppa:webupd8team/java |
# LIbx11-dev:i386 깔기
$ sudo apt-get install libx11-dev:i386 --yes |
# GCC-4.4 설치
$ sudo apt-get install gcc-4.4 g++-4.4 g++-4.4-multilib gcc-4.4-multilib --yes |
bashrc를 수정하고 스크립트를 한번 실행해준다.
$ echo "export CC=gcc‐4.4 CXX=g++‐4.4" >> ~/.bashrc |
# U-boot-tools 설치
$ sudo apt-get install u-boot-tools |
# 툴체인 설치
- odroid u3는 안드로이드와 우분투(리눅스)의 커널 빌드용 툴체인이 서로 다르다.
- 아래 링크에서 다운로드.
- http://www.mdrjr.net/odroid/tools/arm-2010q1.tar.xz
$ wget http://www.mdrjr.net/odroid/tools/arm-2010q1.tar.xz $ tar -Jxvf arm-2010q1.tar.xz |
# 커널 빌드
- 참고 사이트
http://odroid.com/dokuwiki/doku.php?id=en:androidplatformbuildguideforexynos4412
http://forum.odroid.com/viewtopic.php?f=51&t=83
- odroid u3용 안드로이드 리눅스 커널은 아래 링크로 가서 다운받는다.
https://github.com/hardkernel/linux/tree/odroid-3.0.y-android
- 압축 해제후 빌드한다.
$ wget https://github.com/hardkernel/linux/archive/odroid-3.0.y-android.zip $ unzip odroid-3.0.y-android.zip $ make ARCH=arm odroidu_android_defconfig $ make -j4 ARCH=arm zImage modules |
# 수정된 커널 적용
빌드한 커널 이미지를 보드에 적용해보자.
fastboot을 이용하라고 나온다.
보드와 호스트를 usb로 연결한다.
보드의 콘솔을 연결하여 디버깅 메세지를 볼 수 있는 상태가 되어야 한다.
보드를 리부팅하고 u-boot모드로 진입한다.
fastboot이라고 치고 대기.
USB3503 NINT = OUTPUT LOW! |
- 보드에 새로운 커널을 적용하기 위해 아래와 같이 fastboot을 실행해준다.
$ fastboot flash kernel arch/arm/boot/zImage |
- 장치에서 응답이 없다. 아무래도 드라이버 같은걸 깔아줘야 하나보다.
- adb 명령어를 이용하여 장치 인식이 정상적으로 되고 있는지 확인한다.
- adb도 패키지를 설치해야 한다. 설치후
$ sudo adb devices $ sudo adb shell |
- 장치 검색이 안된다. 드라이버를 설치해야 한다.
- http://odroid.us/mediawiki/index.php?title=ADB_Guide
사이트를 참고하여 진행해 보자.
- Android SDK를 설치해야 한다.
아래 사이트에서 Standalone 타입을 다운 받았다.
http://developer.android.com/sdk/installing/index.html?pkg=tools
$ wget http://dl.google.com/android/android-sdk_r23.0.2-linux.tgz |
- 압축해제후 tools 디렉토리내 'android'를 실행하여 sdk manager를 실행한다.
- tools 카테코리이외 패키지는 선택해제한후 설치 진행한다.
# USB 장치 인식
- 일반사용자 권한으로 usb장치에 접근하기 위해서는 다음과 같이 한다.
- 다음과 같이 규칙 화일을 생성하고
$ sudo gedit /etc/udev/rules.d/51-android.rules |
- 아래 내용을 추가한후 저장한다.
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
- 실행권한을 부여하고 udev 서비스를 다시 시작한다.
$ sudo chmod a+x /etc/udev/rules.d/51-android.rules $ sudo service udev restart |
- adb 명령어를 이용하여 장치가 인식이 되는지 확인.
$ adb devices |
- fastboot을 이용하여 커널 이미지 적용이 진행된다.
$ fastboot flash kernel linux-odroid-3.0.y-android/arch/arm/boot/zImage |
- adb를 이용해서도 module과 커널을 업데이트 할 수 있다. fastboot을 이용한 업데이트는 u-boot 모드에서 fastboot명령어를 실행하고 대기한 상태에서 실행하는것이지만 abd를 이용할때는 보드가 부팅이 완료된 상태에서 진행하면 된다.
$ adb remount $ adb push arch/arm/boot/zImage /system/lib/modules |
# 안드로이드 버젼 확인
- 현재 안드로이드 버젼 확인은 보드 콘솔창에서 아래와 같이 명령어를 실행하면 된다.
root@android:/ # getprop ro.build.description |
# 안드로이드 소스 다운로드
- repo 설치를 위해 home 디렉토리에 작업 디렉토리를 따로 만든다.
$ mkdir ~/bin |
- repo 툴을 다운로드하고 실행가능하게 변경한다.
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo |
- 작업 디렉토리로 이동하여 repo 초기화및 소스 동기화를 한다.
$ repo init -u https://github.com/hardkernel/android.git -b 4412_4.1.2_master |
- 빌드 실행
$ ./build_android.sh odroidu |
- 다음과 같은 메세지가 나오면 빌드가 성공한것이다.
ok success !!! |
# 안드로이드 설치
- 보드와 호스트간 usb 케이블로 연결된 상태에서 보드를 리부팅하고 아래와 같이 u-boot 모드에서 fastboot을 실행하여 대기 상태로 만든다.
U-Boot 2010.12-svn (May 12 2014 - 15:05:46) for Exynox4412
Exynos4412 # fastboot |
- ramdisk 및 시스템 파티션 적용
$ fastboot flash ramdisk out/target/product/odroidu/ramdisk-uboot.img $ fastboot flash system out/target/product/odroidu/system.img |
- 보드 리부팅
$ fastboot reboot |
'안드로이드' 카테고리의 다른 글
안드로이드 시작하기(SDK 설치) (0) | 2014.03.26 |
---|