레이블이 EVM-ODROID-X2인 게시물을 표시합니다. 모든 게시물 표시
레이블이 EVM-ODROID-X2인 게시물을 표시합니다. 모든 게시물 표시

8/16/2014

ODROID UBOOT 와 BOOT PART 관련부분링크

Uboot Build
  http://linux-exynos.org/wiki/ODROID/u-boot

Uboot 소스
  https://github.com/hardkernel/u-boot/tree/odroid-v2010.12

How to write zImage via dd command. (fastboot 참고)
  http://codewalkerster.blogspot.kr/2014/03/how-to-write-zimage-via-dd-command.html

DD 명령어로 Image Backup
  http://major.io/2010/12/14/mounting-a-raw-partition-file-made-with-dd-or-dd_rescue-in-linux/

BL2/BL1 정보 (Bootloader1/2)
  http://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroidx&bid=3944

Uboot Build 및 Toolchain
  https://wiki.odroid.com/old_product/odroid-x_u_q/odroid_u3/u3_building_u-boot



DD 명령어
  http://forum.falinux.com/zbxe/index.php?document_srl=561988&mid=lecture_tip
  https://en.wikipedia.org/wiki/Dd_(Unix)
  https://linoxide.com/linux-command/linux-dd-command-create-1gb-file/


  • ODROID-U3 Partition Table 구성 
  https://wiki.odroid.com/old_product/odroid-x_u_q/odroid_u3/u3_partition_table

  • Partition 관련설정부분 
관련소스
  https://github.com/hardkernel/u-boot/blob/odroid-v2010.12/arch/arm/include/asm/arch-exynos/movi_partition.h

$ vi arch/arm/include/asm/arch-exynos/movi_partition.h
#define PART_SIZE_FWBL1      (15 * 1024)
#define PART_SIZE_BL1           (16 * 1024)
#define PART_SIZE_UBOOT     (1024 * 1024)
#define PART_SIZE_TZSW       (156 * 1024)
#define PART_SIZE_KERNEL    (8 * 1024 * 1024)
#define PART_SIZE_ROOTFS   (24 * 1024 * 1024)

SD Card Fusing Shell Script 
  https://github.com/hardkernel/u-boot/tree/odroid-v2010.12/sd_fuse
  https://github.com/hardkernel/u-boot/blob/odroid-v2010.12/sd_fuse/sd_fusing.sh

  • dd를 이용하여 직접 Image 구성방법

//각 binary file을 mmcblk0에 직접 write  
$ dd if=sd_fuse/bl1.HardKernel of=/dev/mmcblk0 seek=1   //seek= 1x512 bytes (default 512byte) 
$ dd if=sd_fuse/bl2.HardKernel of=/dev/mmcblk0 seek=31  //seek= 31x512 bytes (default 512byte) 
$ dd if=u-boot.bin of=/dev/mmcblk0 seek=63
$ dd if=sd_fuse/tzsw.HardKernel of=/dev/mmcblk0 seek=2111

$ dd conv=notrunc seek=2455 bs=512 if=zImage of=/dev/block/mmcblk0

$ dd if=zImage of=/dev/mmcblk0 seek=1 //seek= 1x512 bytes (default 512byte) 
$ dd if= of=/dev/mmcblk0 seek=31
$ dd if=u-boot.bin of=/dev/mmcblk0 seek=63
$ dd if=sd_fuse/tzsw.HardKernel of=/dev/mmcblk0 seek=2111

$ fdisk -l /media/sf_SHARED/images/sd_self_installer.img

Disk /media/sf_SHARED/images/sd_self_installer.img: 524 MB, 524288000 bytes

189 heads, 61 sectors/track, 88 cylinders, total 1024000 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00008403



                                        Device Boot      Start         End      Blocks   Id  System

/media/sf_SHARED/images/sd_self_installer.img1          204800     1023999      409600    b  W95 FAT32

$ mount -o loop,offset=104857600 /media/sf_SHARED/images/sd_self_installer.img        //204800 x512 = 104857600   

8/06/2014

ODROID Android- BUILD2

1. 개발환경설정 

repo 설치
  https://ahyuo79.blogspot.com/search/label/SCM-Repo

$ vi .bash_profile  or .bashrc // 매번 export로 설정하기 귀찮아서 직접설정
ARCH=arm 
CROSS_COMPILE=arm-none-eabi- 


2. Build Android

Android Source Build 와 fastboot를 이용하여 Image 굽기 

download site
  http://dn.odroid.com/

$ repo init -u https://github.com/hardkernel/android.git -b 4412_4.4.4_master
Your Name  [xxxx]:        // 이름 확인
Your Email [xxxxx]:       // E-Mail 확인
Your identity is: xxxxxxxxxxxxx // 이름과 E-Mail 확인
is this correct [y/N]? y
repo has been initialized in /home/xxxxxxx     // 초기화 된후 .repo 생성 

$ repo sync -j 16
$ repo start 4412_4.4.4_master --all

2.1 Setting 및 Build

$ cd android
$ vi device/hardkernel/odroidx2/BoardConfig.mk   // 최신소스 수정필요없음 (아래항목없음)
     BOARD_USES_EMMC = true -> Use eMMC        
     BOARD_USES_EMMC = false -> Use SD Card
$ chmod u+x ./build_android.sh

$ ./build_android.sh odroidx2     // Build 


Ref.
  http://dev.odroid.com/projects/howtobuild4


2.2 Fastboot Flash Image

  • Host 에서 Android Flash 방법 
fastboot를 이용하여 flash 진행 
#fastboot flash system system.img   //fastboot flash  partition 이름  file 이름 
#fastboot flash userdata userdata.img       
#fastboot flash cache cache.img
#fastboot reboot 

Google Fastboot 사용법
  https://source.android.com/setup/build/running
  https://blog.dasomoli.org/381/

Android Partition Table
  https://android.stackexchange.com/questions/5232/how-can-i-view-the-android-internal-partition-table

  • 참고사항 A
각 Makefile 및 drivers 체크

$ ls device/hardkernel/odroidx2/BoardConfig.mk             // Board 관련된 정보 확인.
$ ls device/hardkernel/odroidx2/drivers/                   // X2 kernel module 위치확인

  • 참고사항 B
Sun JDK 사용시에는 문제가 없었는데, OpenJDK 사용하니 문제가 발생해서 , 다시변경 .
============================================
Checking build tools versions...
************************************************************
You are attempting to build with an unsupported JDK.


You use OpenJDK but only Sun/Oracle JDK is supported.
Please follow the machine setup instructions at
    https://source.android.com/source/download.html
************************************************************


2. Download & Build  Linux Kernel

ODROID 의 Linux Kernel Download 및 Build 후 Image write 

$ git clone https://github.com/hardkernel/linux.git -b odroid-3.0.y-android
$ cd linux
$ ls arch/arm/configs/odroidx2*                         // 확인후 설정
$ make  odroidx2_android_442_defconfig   
$ make zImage   or make                                // make는 moudles도 함께,           
$ ls arch/arm/boot/
$ make modules -j4      
$ make modules_install  INSTALL_MOD_PATH=~/tmp          // 임시설정, 위의 Android에 복사


2.1 Flash Image

# fastboot flash kernel arch/arm/boot/zIamge
# fastboot reboot


3. Download & Build  Uboot

ODROID 의 Uboot Download 및 Build 후 Image write 

$ git clone https://github.com/hardkernel/u-boot.git
$ cd u-boot
$ ls board/samsung/smdk4212/     // 소스 확인
$ make distclean
$ make smdk4412_config
$ make
    ( 위 make 시 아래 파일 생성 ./mkbl2 u-boot.bin bl2.bin 14336 (bl2.bin n파일 생성)

$ cd sd_fuse                    // 난 아래와 같이 사용.    
$ ./sd_fusing_4412.sh /dev/sdb  // Flash Image 
  (/dev/sdb는 현재 SD카드가 마운트되어 있는 장치파일로 지정 : sudo fdisk -l 명령어로 확인가능)
$ sync


4. Build  SD Image

SD Image의 구성은 두 부분으로 구성
  1. 0M~100M의 Booting image
  2. 100M~500M FAT32로 구성된 kernel image 와 andoid filesystem 
현재 GPT구성이 아니며, FDISK 기반으로 구성 (MBR)


4.1 Main Image 구성

  • dd 와 fdisk 기반으로 Main Image 구성 

$ dd if=/dev/zero of=my_sd_self_installer.img bs=1k count=500k  // 500M image 설정

$ fdisk ./my_sd_self_installer.img   // fdisk를 사용하여 아래와 같이 설정  

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1):
Using default value 1
First sector (2048-1023999, default 2048): 204800
Last sector, +sectors or +size{K,M,G} (204800-1023999, default 1023999):


$ fdisk -l ./my_sd_self_installer.img

Units = sectors of 1 * 512 = 512 bytes

                     Device Boot      Start         End      Blocks   Id  System
./my_sd_self_installer.img1          204800     1023999      409600   83  Linux


// 204800 x 512 = 104857600  약 100M 부터설정 

4.2 Make Boot Image 구성

uboot Image 및 기타 bootloader를 삽입
$ sudo losetup -o0 /dev/loop0 ./my_sd_self_installer.img     //attach device offset=0 
$ cd u-boot/sd_fuse/
$ sd_fusing.sh /dev/loop0
$ sudo losetup -d /dev/loop0   //detach device


4.3 Make FAT32 Image

100M 이후 부터는 FAT32 Filesystem 생성 
$ sudo losetup -o104857600 /dev/loop0 ./my_sd_self_installer.img  //attach device offset= 204800 x 512 = 104857600 
$ sudo mkdosfs -F32 /dev/loop0
$ sudo losetup -d /dev/loop0   //detach device


4.4 Build FAT32 Image

기존에 존재하던 Image 및 boot.scr 들을  FAT32 Image에 mount 하여 복사한다.
$ sudo mount -o loop,offset=104857600 ./my_sd_self_installer.img ~/tmp //mount offset= 204800 x 512 = 104857600 
$ sudo cp -a ~/file/*      ~/tmp/
$ umount ~/tmp


ODROID Build 관련내용 
  http://odroid.com/dokuwiki/doku.php?id=en:androidplatformbuildguideforexynos4412

Loopback Device (dd 와 losetup) 기본사용법
  http://wiki.osdev.org/Loopback_Device

sd_fusing.sh 관련내용 
  http://chiccoder.tistory.com/40

7/30/2014

ODROID X2 관련 소스 정보 및 링크자료


  • ODROID 에 관련된 ANDROID SOURCE SITE들
  http://source.android.com/    (기본 AOSP)
  http://www.cyanogenmod.org/about      (설명)
  http://download.cyanogenmod.org/       (Download)
              

OEMPlatformRepositories/Resources
GooglevariousGoogle's Git Repository Nexus binary blobs
HTCvariousDev Center
LGvariousLG Open Source Code Distribution
MotorolavariousMotorola Open Source Center
NvidiaTegraTegra's GitWeb
QualcommMSM/QSDCode Aurora Forum
SamsungvariousSamsung Open Source Release Center
Texas InstrumentsOMAPwww.omapzoom.com , Omappedia

  • Download Source (Android, Kernel, Uboot)
  https://github.com/hardkernel
  https://github.com/codewalkerster
  https://github.com/CyanogenMod


Porting Guide
  http://wiki.cyanogenmod.org/w/Doc:_porting_intro                         ( porting info)
  http://wiki.cyanogenmod.org/w/Doc:_integrated_kernel_building      ( kernel building )

Porting Discuss
  https://groups.google.com/forum/?fromgroups#!forum/android-porting
  http://forum.cyanogenmod.org/topic/15492-general-cyanogenmod-porting-discussion/


ODROID Porting GUIDE
  http://badawave.tistory.com/entry/Android-422-in-ODROID-X2
  http://badawave.tistory.com/entry/OdroidX2-CyanogenMod-10-CM101-%EB%B9%8C%EB%93%9C


  • ODROID 기본 설정 및 빌드방법

Uboot Info (ODROID)
  http://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroidxu&bid=3838
  http://badawave.tistory.com/entry/ODROID-X2-U2-UBoot-%EB%B9%8C%EB%93%9C%ED%95%98%EA%B8%B0


ODROID 매거진
  http://magazine.odroid.com/


ODROID-U2 Build GUIDE
  http://www.funtoo.org/ODROID_U2
  https://docs.google.com/file/d/1j_7Y6GaqocWX-PXVjThiz38hswpgrsOiUNmFrJx2desFbSlzi9vlWxHz_Gge/edit?hl=en

  http://www.netmite.com/android/mydroid/development/pdk/docs/index.html

ODROID-X2 포럼
  https://forum.odroid.com/viewforum.php?f=129&sid=9eb986d60eef568ddc466f89ffa58651

ODROID-X2 포럼 변경된 주소
  https://com.odroid.com/sigong/nf_board/nboard.php?brd_id=odroid-x2

KITKAT 이슈
  https://medium.com/marojuns-android/1ecb94c24694

ODROID-X2 Download
  http://appmarkers.tistory.com/category/Embedded/ODROID-X2
  http://appmarkers.tistory.com/entry/%EA%B0%9C%EB%B0%9C%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0-ODROIDX2-%EC%86%8C%EC%8A%A4-%EC%BB%B4%ED%8C%8C%EC%9D%BC
  https://com.odroid.com/sigong/nf_file_board/nfile_board.php?keyword=&tag=ODROID-X2&page=1
  https://com.odroid.com/sigong/nf_file_board/nfile_board_view.php?keyword=&tag=&bid=228

7/22/2014

ODROIDX2에 Android 설치 및 Gapps 설치 (ODROID X2)

1. ODROID Board에 새로운 Image를 Write

Odroid를 2012년 말에 샀는데, 드디어 어찌되었든, Kitkat이 나왔으니, 아래와 같이 설치를 해서 ODROID로 NAS형태로 써보고, 
하드디스크 연결해서, Settop 박스처럼도 써보자.
Image write 하는 방법은 간단하며,지금 odroid-x2 인 경우, 부트하는 방법이 두가지 모드이다.

  • How To Write the Image on Wins 
  http://odroid.us/mediawiki/index.php?title=Step-by-step_Ubuntu_SD_Card_Setup_--_for_Windows_Users


emmc 모드와 sd카드 모드 부팅을 하지만, SD카드는 직접 구우면 되지만, emmc 보드의 끝부분 interface가 microSD이나, board가 너무 두꺼워서
나의 microSD adapter 에도 연결이 되지 않는데, 다른 converter를 사야할 것 같다. 
현재 ODROID에서 제공해주는 Image는 아래와 같다.

  • ODROID X2 Android Release Image 종류
  1. emmc_self_installer.zip   : Image를 emmc에  굽고, emmc에 모든것이 설치됨.
  2. sd2emmc_installer.zip    :  Image를 SD카드에 굽고, emmc에 모든것이 설치됨.
  3. sd_self_installer.zip        : Image를 SD카드에 굽고  SD카드에 모든것이 설치됨.

한번 더 압축되어 있고, installer가 있기에 맘대로 설치장소가 변경가능하다.
이부분은, Image를 구우면, boot.scr 파일 있는데, 여기서 설정변경해서 바꾼것 같다.

# EMMC Self Update
#setenv device   "0"
#setenv ToSDMMC  "0"

# SD/MMC Self Update
#setenv device   "0"
#setenv ToSDMMC  "1"

# EMMC Update from SD/EMMC
setenv device   "1"
setenv ToSDMMC  "0"

# SD/MMC Update from EMMC
#setenv device   "1"
#setenv ToSDMMC  "1"

eMMC와 SD Card version 이 두 버전이 존재하는데, emmc가 더 속도가 빠르므로, emmc로 사용하고 있으며, SD Card는 오직 테스트 버전 


2. GApps 이란

GMS(Google Mobile Service) or GApps라고 하며 주로 개발용, 즉 AOSP를 설치할 경우 이를 포함하고 있지 않다.

Gapps를 포함해서 배포를 하게된다면 구글에게 라이센스를 주어야 한다고 하며, 그래서 개발용 AOSP(Android Open Source Project)는 
GApps를 포함이 되어 있지 않고 별도로 설치해야한다.

GAPPS는 구글에서 제공하는 Application 이며, Gmail 포함하여 관련된 Service App들 

GApps 관련자료
  https://namu.wiki/w/%EA%B5%AC%EA%B8%80%20%EC%95%B1%EC%8A%A4
  https://github.com/opengapps/opengapps/wiki/Package-Comparison

공식 Download
  https://opengapps.org/


이제 playstore와 google에서 기본으로 제공해주는 프로그램들을 설치해서 태블릿 처럼 맘대로 쓰자


2.1 GAPPS 설치 및 Download 

ODROID에 가서 아래의 파일을 Down

필요파일
  • Google Apps (Stock package) :     
pa_gapps-stock-4.4.4-20140620-signed.zip
        
위의  App에 Google의 기본 App 과  Play Store 가 있기에 아래와 같이 설치하고,
설치후 Playstore에서 추후 다운받아 설치를 진행하면 되겠다.

       
2.2 GAPPS 설치방법 

(Window에서 adb를 설치했음)
Window에서 cmd로 Terminal창을 연 후 아래와 같이 실행한다.

cd Y:\ODROID\Play Store APK\pa_gapps-stock-4.4.4-20140620-signed

adb remount

adb push system /system  

  http://www.thedroid.net/download-android-4-4-kitkat-apps/
  http://www.thedroid.net/download-google-apps-gapps-android-kitkat/

1/03/2014

Android 의 envsetup.sh 기본사용법

1. Android Build 

Android 는 envsetup.sh이라는 shell script 이용하여, 전체빌드 및 부분빌드, 다양한 shell 기능을 제공한다.


1.1 Android 전체빌드의 예제 (ODROID X2 )

  1. envsetup을 설정
  2. lunch로 환경설정
  3. make 

$ . build/envsetup.sh  or $ source build/envsetup.sh
$ lunch odroidx2-eng
$ make -j4 

  • lunch 시 설정 
  1. odroidx2-user : 최종제품으로 엑세스를 제한
  2. odroidx2-userdebug:  user 기능에 디버깅기능을 추가 및 root 액세스가 가능하여 디버깅용
  3. odroidx2-eng : 디버깅 추가 도구 

Google Android Build 


2. build/envsetup.sh 의 기능 

envsetup.sh는 android에서 제공하는 shell script로 안에 기본 function들을 제공하고 있으며, vendorsetup 관련부분도 봐야한다. 

  • source build/envsetup.sh 실행시 
odroidx2를 vendor를 등록한 것을 확인이 가능 (lollipop version)

$ . build/envsetup.sh
including device/lge/hammerhead/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/htc/flounder/vendorsetup.sh
including device/moto/shamu/vendorsetup.sh
including device/generic/mini-emulator-mips/vendorsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/hardkernel/odroidx2/vendorsetup.sh
including device/hardkernel/odroidu/vendorsetup.sh
including device/hardkernel/odroidx/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/asus/fugu/vendorsetup.sh
including device/asus/flo/vendorsetup.sh
including device/asus/deb/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/asus/grouper/vendorsetup.sh
including sdk/bash_completion/adb.bash 

lunch에 등록시 odroidx2-userdebug 와 odroidx2-eng 설정등록다름

$ cat device/hardkernel/odroidx2/vendorsetup.sh 
add_lunch_combo odroidx2-userdebug
add_lunch_combo odroidx2-eng




1.1 빌드환경 설정 (choosecombo, lunch)

Android의 빌드환경을 설정해주는 도구로, choosecombo는 아직 사용못해봄.
등록된 vendor 정보로 나의 환경을 설정

$ lunch odroidx2-eng
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=5.1
TARGET_PRODUCT=odroidx2
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a9
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.2.0-67-generic-x86_64-with-Ubuntu-12.04-precise
HOST_BUILD_TYPE=release
BUILD_ID=LMY47I
OUT_DIR=out
============================================ 

Android Device 의 Makefile과 환경설정설명 참고자료
  http://elinux.org/Android_Device   

cgrep/jgrep/lunch 등 관련부분 설명
  http://chlrbgh0.tistory.com/207

세부동작은  build/envsetup.sh 개별 function을 참고
  1. lunch function 참조
  2. choosecombo function 참조

1.2 build 방법  

부분빌드 사용법은 전체빌드와 동일하며,  build /envsetup 설정 한 후  각 function을 이용가능하다.
세부동작은  build/envsetup.sh 개별 function을 참고

  1. - 현재 경로를 기준으로 소스 트리의 최상위 경로로 이동한 후 make를 실행해준다.
  2. mm - 현재 경로를 기준으로 가장 가까운 단위 모듈을 찾아서 그 모듈만 build 해준다.
  3. mmm - 파라미터로 주어진 경로들에 대해 단위 모듈 build를 해준다. 마지막에 snod를 추가할 경우 System image 파일까지 새로 생성해준다 

  • hmm 으로 각 사용법 확인 

$ hmm
Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment:
- lunch:   lunch -
- tapas:   tapas [  ...] [arm|x86|mips|armv5|arm64|x86_64|mips64] [eng|userdebug|user]
- croot:   Changes directory to the top of the tree.
- m:       Makes from the top of the tree.
- mm:      Builds all of the modules in the current directory, but not their dependencies.
- mmm:     Builds all of the modules in the supplied directories, but not their dependencies.
           To limit the modules being built use the syntax: mmm dir/:target1,target2.
- mma:     Builds all of the modules in the current directory, and their dependencies.
- mmma:    Builds all of the modules in the supplied directories, and their dependencies.
- cgrep:   Greps on all local C/C++ files.
- ggrep:   Greps on all local Gradle files.
- jgrep:   Greps on all local Java files.
- resgrep: Greps on all local res/*.xml files.
- sgrep:   Greps on all local source files.
- godir:   Go to the directory containing a file.  


아래내용참조.
  http://www.kaisyu.com/notes/google-android/android-envsetupsh
  http://www.kaisyu.com/notes/google-android/android-partial-module-build

  • 부분빌드 적용예 (ODROID 적용)
  1. 먼저 관련 directory 이동  
  2. build/envsetup.sh 위치를 찾고 source envsetup.sh 설정 (source 대신 . 사용가능)
  3. 부분빌드 시도. (mm)

$ . ../../build/envsetup.sh
$ mm

make: *** No rule to make target `out/target/product/generic/obj/SHARED_LIBRARIES/libc_intermediates/export_includes', needed by `out/target/product/generic/obj/SHARED_LIBRARIES/libiw_intermediates/import_includes'.  Stop.

$ find  out  -name libc_intermediates

out/target/product/odroidx2/obj/SHARED_LIBRARIES/libc_intermediates
out/target/product/odroidx2/obj/STATIC_LIBRARIES/libc_intermediates


  • ODROID는 에러가 나서, Main root에서 아래와 같이 실행

$ source build/envsetup.sh
$ export TARGET_PRODUCT=odroidx2
$ mmm /external/wireless-tools

  http://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=freeboard&kind=&bid=104

1/01/2014

ODROID Android Build 시 문제사항 및 해결

1. ODROID에서 개발환경설정 

  • Download
Odroid의 사이트의 BSP소스 에서  Download

  • Ubuntu 12.02 개발환경설정 
  https://ahyuo79.blogspot.com/2013/12/android-build-environment2.html


FOR HDMI OUT SEETING.
  http://dn.odroid.com/Android_Beta_1.6/resolution_set/

ODROID- U-BOOT 와 Kernel BUILD  설명 SITE
  http://dev.odroid.com/projects/ics/#s-6.4

ODROID-ANDROID BUILD
   http://dev.odroid.com/projects/howtobuild4

2.1 How To build UBOOT 

ODROID Uboot Build 및 문제사항 정리 

$ cd u-boot-odroid-v2010.12 
$ make distclean 
$ make smdk4412_config
$ make CROSS_COMPILE=arm-none-eabi-

  • Uboot Build 에러사항 및 해결방법
   {standard input}:85: Error: unknown pseudo-op: `.arch_extension'
   {standard input}:168: Error: unknown pseudo-op: `.arch_extension'
해결방법.
$ vi board/samsung/smdk4212/smc.c 
       ## .arch_extension 주석처리 

참고자료
  http://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroidq2&kind=&bid=3628


2.2 How To build Linux KERNEL 

ODROID Kernel Build 및 문제사항 정리 

  • Kernel Build 후 mkimage 사용을 위해 설치
$ sudo apt-get install uboot-mkimage 


$ cd kerenl_4412

$ make ARCH=arm odroidx2_android_sdmmc_defconfig   //====> ODROID-X2 (SD Boot)
or
$ make ARCH=arm odroidx2_android_emmc_defconfig   //====> ODROID-X2 (eMMC Boot)

$ make ARCH=arm CROSS_COMPILE=arm-none-eabi-


Ref. uboot, kernel,flash images.
  http://dev.odroid.com/projects/ics/#s-6.4


3. Android Build 

ODROID에서는 별도의 Shell Script을 지원을 해주고 있어서 아래와 같이 실행하며 Build가 정상적으로 동작이 된다.


== odroid - X2 ==
$ cd android
$ vi device/hardkernel/odroidx2/BoardConfig.mk
     BOARD_USES_EMMC = true -> Use eMMC
     BOARD_USES_EMMC = false -> Use SD Card
$ chmod u+x ./build_android.sh
$ ./build_android.sh odroidx2 

Ref.
  http://dev.odroid.com/projects/howtobuild4


3.1 odroid recommend

odroid에서 JDK version 문제 에러 발생시, 우선 package index update 후

$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ jaunty multiverse"
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ jaunty-updates multiverse"
$ sudo apt-get update
$ sudo vi /etc/apt/sources.list


3.2  Android Build 중 문제사항 정리 

빌드 중 JDK문제로 인하여  여러 JDK를 설치 했으며, 이를 변경하며 테스트

  • Android Build 에러사항-1
make: *** [out/target/common/obj/APPS/Calculator_intermediates/classes-full-debug.jar] 오류 41
Android Build 해결방법-1
Open JDK 삭제 후 Sun사 JDK 설치후  JAR 설정 변경

$ sudo update-alternatives --config jar
*2번으로 변경

대체 항목 jar에 대해 (/usr/bin/jar 제공) 2개 선택이 있습니다.

  선택       경로                           우선순  상태
------------------------------------------------------------
* 0            /usr/bin/fastjar                  100       자동 모드
  1            /usr/bin/fastjar                  100       수동 모드
  2            /usr/lib/jvm/java-6-sun/bin/jar   63        수동 모드

  • Android Build 에러사항-2
상위와 같이 변경했지만, 해결되지 않고 아래의 다른 에러원인을 분석.
classpath에  문제발생하여 odroid를 보니 path가 나와 다르기에 이를 변경.

bad class file: android/app/Activity.class(android/app:Activity.class)

unable to access file: corrupted zip file

Please remove or make sure it appears in the correct subdirectory of the classpath.

import android.app.Activity;
Android Build 해결방법-2
$ mkdir ~/mydroid
$ cp -a android ~/mydroid/


Ref.
  http://blog.daum.net/cortex/269
  http://codewalkerster.blogspot.kr/2011/11/android-openjdk-vs-sun-jdk-build.html


  • Android Build 에러사항-3
/bin/bash: xsltproc: 명령어를 찾을 수 없음

Android Build 해결방법-3
$ sudo apt-get install xsltproc

12/31/2013

Android 개발환경 설정 Ubuntu 12.04

1. ANDROID BUILD 개발환경.

현재 ODROID를 위한 기본개발환경구성 

  • Host OS Ubuntu 권장사항 
  1. Android 6.0 (Marshmallow) - AOSP master: Ubuntu 14.04 (Trusty)
  2. Android 2.3.x (Gingerbread) - Android 5.x (Lollipop): Ubuntu 12.04 (Precise)
  3. Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Ubuntu 10.04 (Lucid)

  • Build Toolchain
  1. Android 8.0 and higher support only Clang/LLVM
  2. legacy kernels, GCC 4.9 included in the AOSP master branch (under prebuilts/) may also be used.

  • JDK 권장사항 
  1. Android 7.0 (Nougat) - Android 8.0 (Oreo): Ubuntu - OpenJDK 8, Mac OS - jdk 8u45 or newer
  2. Android 5.x (Lollipop) - Android 6.0 (Marshmallow): Ubuntu - OpenJDK 7, Mac OS - jdk-7u71-macosx-x64.dmg
  3. Android 2.3.x (Gingerbread) - Android 4.4.x (KitKat): Ubuntu - Java JDK 6, Mac OS - Java JDK 6
  4. Android 1.5 (Cupcake) - Android 2.2.x (Froyo): Ubuntu - Java JDK 5

Repo 와 Git 및 Build 환경구성 

  • 개발환경-Key packages
  1. Python 2.6 to 2.7 from python.org
  2. GNU Make 3.81 to 3.82 from gnu.org
  3. Git 1.7 or newer from git-scm.com

  • Make Version 
To avoid build errors, Android 4.0.x (Ice Cream Sandwich) and earlier must revert from make 3.82.

Android SITE의 기본요구사항 확인 
  https://source.android.com/setup/build/requirements

Host에서 USB Device 설정
  https://developer.android.com/studio/run/device#setting-up


1.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 Machine을 사용한 Linux를 이용할 경우, 적어도, 16GB RAM 그리고, 30GB 그 이상의 disk 용량을 요구.

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

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


  • 기본 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 시 문제사항 
  https://stackoverflow.com/questions/20235901/aosp-build-error
$ 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
아래와 같이 JDK Version 변경 
.... 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 관련링크
Java SE Development Kit 6u26
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 설치확인
각 JDK를 설치 후 Version 확인 

$ java -version
$ javac -version 
Sun 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
  https://sourcery.mentor.com/sgpp/lite/arm/portal/release1294

  • 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&currentPage=3


Ref.
  http://source.android.com/source/initializing.html

12/30/2013

ODROID-X2 보드구성 및 관련내용

1. ODROID-X2 보드 기본구성

  • Exynos4412 기반의 1.7GHz ARM Cortex-A9 Quad Core with 2GB memory
  1. Low-cost development platform
  2. 1.7GHz Quad core ARM Cortex-A9 MPCore
  3. 2GB Memory
  4. 6 x High speed USB2.0 Host port
  5. 10/100Mbps Ethernet with RJ-45 LAN Jack
  6. Android 4.x & Ubuntu BSP
  7. Community-driven projects & supports








이외에 ODROID-U2/X/X2/Q가 전부 Exynos 4412를 사용하는데, 자세한 사항을 보면 약간씩 틀리며, CPU Clock과 Memory 부분도 다르다.
그래서 좀 좋은 X2를 구입을 했으며,별도로 아래의 사항들을 더 구입을 했다.


  • 별도구입사항 ( Cable 및 전원사항)
  1. USB-UART Module Kit (상위보드 UART1.8V 에 연결 , CP210x Driver 설치)
  2. HDMI Cable (micro type)
  3. micro USB Cable
  4. Wifi Module 2
  5. 5V2A Adaptor
  6. eMMC Module/eMMC Reader
  7. 8GB SD Card/ SD Card Adapter

  • HW 외부설정  (Jumper 설정)
  1. Bootmode       (eMMC Module or SD Card Slot 선택) 
  2. micro HDMI     (720P or 1080P 선택)

관련자료 제품군 참조
  www.hardkernel.com
  http://odroid.com/dokuwiki/doku.php

1.2 ODROID-X2 USB Device 구성

ODROID-X2에서 USB Device는 두개를 제공하며, 이를 이용하여 Debug 및 통신을 한다.

  1. UART2USB Device  (상위보드의 UART 1.8V에 연결 후 Driver 설치)
  2. DNW 관련 Device   (상위보드의 Micro USB로 이용)

  • UART To USB Driver (CP210x Driver 설치)


  CP210x Driver Download
  http://www.silabs.com/products/mcu/pages/usbtouartbridgevcpdrivers.aspx


2.  ODROID X2 Release Version TEST 

  • ODROID X2 보드 연결사항 
  1. USB-UART 연결  
  2. WIFI USB Dongle 연결 
  3. HDMI 연결 
  4. USB HID 지원기능  (MOUSE / KEYBOARD )

  • 부팅시 LED 동작확인 
  1. RED: 전원인가시 무조건 ON
  2. BLUE: GPC로 GPIO로 동작추측  (부팅 or 동작 중에 자주 켜지므로 확인)
  3. BLUE: GPC로 GPIO로 동작추측
전원을 뽑은 후 RED LED가 꺼질때가지 기다리자.

  • HW 주의사항 및 체크사항  
  1. 부팅이 안될때(상위 LED확인), 전원과 USB-UART 빼고 기다린후 다시 시도   
  2. RESET S/W 3초간 눌러주어야 동작. (RESET 동작실행)
  3. POWER S/W 눌러 POWER OFF 진행
  4. HDMI가 예민해서 그런지, 2번 or 3번 테스트를 진행. 

eMMC의 경우 uboot 영역은 SD Card카드와 달리 PC에서 접근 할수가 없다고 한다.
  https://codewalkerster.blogspot.com/2014/02/how-to-recovery-emmcemmc-50-u-boot-on.html


2.1  How To write Image in Window 

ODROID에서 지원하는 IMAGE는 UBUNTU/ANDROID이며, 아래의 사이트에서 본인 원하는 Image들을 Download 하자

  • ODROID X2 Android Image Download
  https://dn.odroid.com/4412/Android/

  • ODROID X2 Ubuntu Image Download
  https://dn.odroid.com/4412/Linux/
  https://dn.odroid.com/4412/Linux/ubuntu_16.04lts/


$ md5sum ubuntu-14.04.2lts-lubuntu-odroid-x2-20150224.img.xz
f45831ab42a26dc39708d7e91e40296e  ubuntu-14.04.2lts-lubuntu-odroid-x2-20150224.img.xz
// download 후 md5sum file 과 비교  
$ unxz ubuntu-14.04.2lts-lubuntu-odroid-x2-20150224.img.xz 

  1. Image Download 및 압축해제  (반디집이용 )
  2. SD Format 진행 
  3. SD Card에 Image Writing (Etcher or Win32DiskManager 이용) 

  • SD Card 및 Odroid Image Write
  http://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=notice&bid=2258
  http://odroid.us/mediawiki/index.php?title=Step-by-step_Ubuntu_SD_Card_Setup_--_for_Windows_Users
  https://wiki.odroid.com/troubleshooting/odroid_flashing_tools


2.2  Ubuntu Image 경우 

  • TEST 진행한 Image 
  1. ubuntu-14.04.2lts-lubuntu-odroid-x2-20150224.img (동작안됨)
  2. ubuntu-16.04-mate-odroid-x2-20160920.img (동작확인)

  최신 Image인 경우, Kodi 는 물론 WIFI도 잘동작하며, HDMI동작을 확인


  • Ubuntu Serial
    User: root
    Password: odroid

  • Ubuntu X Server
    User: root
    Password: odroid


2.3  Android Image 경우 

  • TEST 진행한 Image
android-4.4.4_alpha-5.4-sd_installer-odroidx2-20160307.img (동작확인)

처음 동작하면 내부 Image를 write 하고 booting 하므로 시간이 많이 걸림

  1. ODROID Utility가 Superuser 권한을 요청
  2. 키보드는 좌측상단에서 설정가능 (한글미지원) 
  3. Setting 에서 WIFI ON 후 동작확인

  • 주의사항 
주의 HDMI이 연결후 화면이 전체녹색일 경우 다시 외부연결로 시도하면 해결


2.3.1 Gapp 관련사항 

Google Apps로 PlaySotre 및 관련 Google Program을 이용하기 위해서 사용되어지는 Android App이며, 이를 함께 배포시 이는 구글에게 라이센스를 제공해야한다.


  • 최근테스트 ( 2018년)
  1. 4.4.4는 Kitkat이므로 GAppsInstaller_kitkat.apk Download 
  2. ODROID-X2를 전원을 끈후 SD CARD를 컴퓨터에 연결 
  3. DOWNLOAD 디렉토리에 상위 파일 복사.
  4. SD CARD 다시 넣고 BOOT 
  5. Ultra Exploler로 상위 apk를 설치
  6. 설치후 자동 Reboot 
  7. Play Store 등록 

등록은 되지만 설치되는 APP이 현재는 거의 없는 듯 하다.

  • Android Version History
  https://en.wikipedia.org/wiki/Android_version_history

  • GMS(Gapp) Download
  https://dn.odroid.com/GAPPS/
  https://codewalkerster.blogspot.com/2013/11/universal-1-click-gapps-installer-for.html
  http://codewalkerster.blogspot.kr/2013/09/odroid-xu-updatezip.html

  • NAS 사용 
이전에 KODI를 설치하고 ODROID로 NAS를 사용했지만, 팬소리와 열 문제로 셋탑박스와 공유기로 변경을 했다.
  https://www.wsgvet.com/bbs/board.php?bo_table=odroid&wr_id=69


3. 개발환경구성 

이전에는 기억하기로 Android/Ubuntu 지원했던걸로 기억하고 있으며, 최근에 보니 아래와 같이 두개를 다 지원을 해주는 것 같다.
현재 사이트를 다시 가보니, 예전의 링크들은 다 없어지고, 구식이 되어 지원을 안해주는 것 같다.

  • ODROID-X2의 지원 OS 
  1. Android 지원 
  2. Ubuntu 지원

이전에 일반리눅스 사용시에 Uboot / Kernel 이 제공되기 때문에 Filesystem을 구축하여 나의 리눅스를 구축하여 사용했다.

  • 이전 ODROID-BSP 기반으로 했던사항들 
  1. ODROID X2 Android/Ubuntu 기본기능 확인 및 NAS로 이용
  2. ODROID X2 BSP 빌드 및 관련기능확인
  3. Android에서 IPTIME n150ua  WIFI USB Driver Porting하여 동작확인
  4. ODROID X2의 Ubuntu 기반으로 QT 포팅 (Source Download 및 빌드)
  5. ODROID X2의 Uboot/Kernel 과 TI Filesystem으로 최적화하여 Boot 및 QT 포팅
  6. ODROID X2 Lollipop Porting 및 소스분석 (도중 그만둠) 

귀찮아서 블로그에 제대로 정리를 하지 않았더니, 나도 몇년이 지난지금 봐도 잘 모르겠다.
그래서 다시 정리하기로 결정했으며, 6번은 회사일로 중간에 그만두었지만, 소스 분석이 더 중요한 것 같아 남겨야 할 것 같다. 

  • HOST Linux 개발환경 
Host OS를 Ubuntu 12.02 와 그 이전 version을 사용했던걸로 기억을 하고 있다.
그리고, 현재는 시간이 되어서 이것을 정리할 겸해서 다시 Ubuntu 14.04를 사용할 예정이다.
Ubuntu 설치시 꼭 필요한 Package는 다시 정리하자. (필요 없다면 설치하지 말자)


Odroid ToolChain 
이전에는 arm-2010q1을 사용했었는데, 이번에는 다른 GCC도 가능로도 별문제가 되지 않을 것 같다.

  http://www.codesourcery.com/sgpp/lite/arm/portal/release1294
  http://code.google.com/p/acoral-hg/downloads/detail?name=arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu.tar.bz2&can=2&q=

관련참고사항
  https://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroidx&kind=&bid=4164

Toolchain
  https://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroid-x2&kind=&bid=5171


Ubuntu Image
  https://com.odroid.com/sigong/nf_board/nboard_view.php?brd_id=odroid-x2&kind=&bid=5442
  • Odroid Toolchain (새로생긴사이트)
  https://dn.odroid.com/toolchains/



3.1 BSP Source Download 

이전에 아래의 사이트에서 BSP를 다운받아 사용했지만, 현재 존재하지 않지 않는다.
Android Beta 1.x.x 이런씩 으로 지원을 했지만, 폴더가 다 삭제되고 없으며 마지막 1.9.0만 존재

ANDROID:
  http://dn.odroid.com/Android_Beta_1.8.0/BSP
관련정보
  http://dn.odroid.com/Android_Beta_1.8.0/X/

  • 새로변경된 정보
ODROID 전체폴더구성
  http://dn.odroid.com/

Exynos 4412기반의 Boad 관련정보
  https://dn.odroid.com/4412/

마지막으로 남은 폴더
  https://dn.odroid.com/Android_Beta_1.9.0/

일단 상위에서 제공해주는 Image를 구워서 한번 동작을 해보고, 다시 Uboot / Kernel / Android Build를 정리해가자.


3. Build 관련정보 

ODROID의 Getting Started에서 관련보드 참조
  http://odroid.com/dokuwiki/doku.php

wiki 링크가 변경되어 새로 수정
  https://wiki.odroid.com/start
  https://wiki.odroid.com/old_product/odroid-x_u_q/odroid4412

중요정보
  http://odroid.us/mediawiki/index.php?title=Main_Page
  http://odroid.us/mediawiki/index.php?title=Step-by-step_Ubuntu_SD_Card_Setup_--_for_Windows_Users

XBMC(KODI) 설치 (이전에는 XBMC로 배포)
  https://kodi.wiki/view/ODROID


3.3 회로도 및 메뉴얼 

최근보니, 링크가 거의 깨진것 같으며, 이전에 받았던 메뉴얼을 찾아 볼수가 없으며, 물론 엑시노스의 완전 메뉴얼은 NDA 문제로
ODROID에서도 제공받을 수 없다

회로도 (참고용)
  https://dn.odroid.com/4412/Hardware/ODROID-X_BASE_Rev_06.pdf

Exynos-4412 User Manual 1.0
  http://com.odroid.com/sigong/nf_file_board/nfile_board_view.php?bid=118