1. 서론

ㄱ. Tizen git을 통해 3.10 kernel을 받고 빌드하여 올리는 방법을 알아본다.


2. 본론

1. 타이젠 git에서 3.0 kernel 을 clone 함 

git clone ssh://kimyjin1989@review.tizen.org:29418/platform/kernel/linux-3.10.git

2. git checkout으로 tizen_2.0 브런치로 이동

git checkout tizen_2.0

3. 컴파일 중 exynos_drm.h에서 에서

vi로 .config 수정

http://forum.xda-developers.com/showthread.php?t=1748297&page=12

Solution: change CONFIG_DRM_I2C_CH7006=m to CONFIG_DRM_I2C_CH7006=n

이런식으로 시도해보겠음.


4. DRM 문제 해결 후 재 컴파일 하는데 sys/ioccom.h 파일이 없다고 뜸

오드로이드 찾아보니 툴체인이 4.6이나 4.7 이상 되어야 컴파일 된다고 댓글 달린것이 있음.


5. 위의 에러는 ARM-EABI의 버전이 낮아서 발생한 문제로 4.7로 변경하니 에러 하나와 함께 빌드 됨.

해당 에러는 다음의 그림과 같음


이 에러를 해결하기 위해 zlop 설치.

apt-get install lzop


6. 위의 문제를 해결한 후

커널을 빌드하게 되면 다음과 같이 빌드가 된다.


make trats2_defconfig

make uImage 



7. 이 이미지를 fastboot를 통해서 U-boot가 올려져있는 SD카드에 넣고 부팅하게 되면.

위와같이 Starting kernel에서 정지됨.


3. 결론

ㄱ. 커널 빌드가 되었습니다. 

ㄴ. 커널이 시작되지 않는 이유를 찾고 고치도록 하겠습니다.

Posted by 시크한공돌이
,

1. 목적(purpose)

ㄱ. 타이젠 관련 실행파일의 빌드를 위해 ARM 크로스 컴파일러를 설치한다.

(ARM toolchain install to cross compile for build of Tizen)

ㄴ. 설치한 크로스 컴파일러의 설정을 한다.

(Configuration ARM cross complie toolchain)

※ 추후 u-boot를 빌드에 64비트 실행이 존재하므로 이전 우분투를 설치할 때 64BIT 운영체제를 설치하도록 한다. (You must install 64bit OS to build u-boot. U-boot builder have 64bit execute file)


2.내용(body)

ㄱ. 툴체인 다운로드 (Toolchain Download)

a. 먼저 http://www.mentor.com/에서 IA32용 GNU/Linux ARM EABI를 받아야함.

(First, you have to download 'GNU/Linux EABI for IA32' in http://www.mentor.com/)

https://sourcery.mentor.com/GNUToolchain/release1294?lite=arm 접속(enter the link)


위와 같은 화면이 보이면 'Download Lite Edition' 클릭한다.('Download Lite Edition' click)


각 양식들을 체우고 'Get Lite!' 버튼을 클릭한다. (Fill in all of form.)


그 후 메일을 확인하면 ARM EABI를 받을 수 있는 메일이 수신되어있다. 메일을 열면 아래와 같은 주소가 담긴 메일이 보인다.(Then, you can receive a mail to download ARM EABI)


주소가 담긴 메일에서 빨간 네모박스 위치의 주소를 클릭하면 ARM의 EABI를 다운받는다.

(Click the link inside of red box to download ARM EABI)

※ 여기서 EABI란(임베디드 응용 프로그램 이진 인터페이스, embedded-application binary interface)는 임베디드 소프트웨어 프로그램을 수행하는 파일 형식, 자료형, 레지스터 사용, 스택 프레임 조직, 명령 변수를 위한 표준 변환을 정의하고 있다.

EABI를 지원하는 컴파일러는 이와 같은 또다른 컴파일러가 만든 코드와 호환되는 목적 코드를 만드므로 개발자들이 다른 컴파일러가 만들어 낸 목적 코드와 한 컴파일러로 만든 라이브러리를 연결할 수 있게 한다. 자체적인 어셈블리어 코드를 작성하는 개발자들은 EABI를 사용하여 호환 컴파일러가 만들어낸 어셈블리 코드와 상호 작용하게 할 수 있다.

일반 목적의 운영 체제에서 ABI와 EABI의 주된 차이점은 권한 명령이 응용 프로그램 코드 내에서 실행되는 점, 동적 링크가 요구되지 않는다는 점(심지어는 아예 동적 링크를 허용하지 않는 경우도 있음), 메모리 저장을 위해 더 작아진 스택 프레임 조직을 갖춘다는 점이 있다.

(An embedded-application binary interface (EABI) specifies standard conventions for file formats, data types, register usage, stack frame organization, and function parameter passing of an embedded software program.

Compilers that support the EABI create object code that is compatible with code generated by other such compilers, thus allowing developers to link libraries generated with one compiler with object code generated with a different compiler. Developers writing their own assembly language code may also use the EABI to interface with assembly generated by a compliant compiler.

The main differences of an EABI with respect to an ABI for general purpose operating systems are that privileged instructions are allowed in application code, dynamic linking is not required (sometimes it is completely disallowed), and a more compact stack frame organization is used to save memory.[4] The choice of EABI can affect performance.)


빨간 네모박스의 IA32 GNU/Linux TAR 파일을 받는다. (Download IA32 GNU/Linux TAR file inside of redbox)


다운 파일이 Downloads 폴더 안에 생성된것을 볼 수 있다.(arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu-tar.bz2)

(You can see tar file in Downloads folder. File name is arm-2010q1-188-arm-none-eabi-i686-pc-linux-gnu-tar.bz2.)


위와 같은 tar -xvf 명령어를 통해 압축을 푼다.(Extract tar file by tar -xvf command)


압축을 풀면 arm-2010q1 이라는 폴더가 생성됨을 볼 수 있다.(You can see arm-2010q1 folder after extract.)


위와 같은 cp 명령어를 통해 사용자가 원하는 폴더로 ARM EABI 폴더를 이동시킨다.(move arm-2010q1 folder to every dir where you want by cp.)


폴더가 이동되었다면 자신의 HOME 폴더의 .bashrc 파일을 수정한다. .bashrc 파일은 bash shell이 시작될 때 초기화되는 sell script들을 모아놓은 파일이다.(If folder is moved successfully, you have to edit .bashrc in your HOME folder.)


위와 같이 .bashrc에 자신의 ARM EABI 위치에 대한 경로를 추가해 준다.(Specify your ARM EABI folder PATH end of the .bashrc file.)

export ARCH=arm 

export CROSS_COMPILE=arm-none-eabi-

PATH=$PATH:(Your ARM BAEI folder path)/bin;

:wq 명령어를 통해 저장하고 복귀한다.(Return to shell bu :wq command.)


ㄴ. 위와 같은 툴체인 설치가 완료되었다면 32bit 라이브러리를 설치한다.(Install 32bit libs)

'sudo apt-get install ia32-libs' 명령어를 통해 설치하게 된다.


3.결론(conclusion)

ㄱ. 지금까지 ARM 크로스 컴파일을 위한 ARM EABI 설치를 진행해 보았다.(We installed ARM EABI for ARM cross complie)

ㄴ. 다음은 타이젠의 u-boot 소스를 받고 엑시노스 4412의 콘피규어 파일을 포팅하고 빌드해 보도록 하겠다.(We will download u-boot of Tizen and porting Exsynos4412 config file to Tizen u-boot next time)

Posted by 시크한공돌이
,

ㄱ. 목표

1. 타이젠(Tizen)을 오드로이드 x2 에 포팅할 예정입니다. 그에따라 Tizen 공식 사이트의 개발자 가이드를 기반으로 포스트를 작성합니다. 허나 현재 해보고 있는 결과 개발자 가이드를 기반으로 모두 동일하게 하였을때 실행이 안되는 부분들이 너무 많아 고쳐가면서 하도록 하겠습니다.

2. 오늘의 목표는 개발 환경 세팅하기(Setting up Development Environment) 입니다.


ㄴ. 본론

1. 다음에 대하여 Gerrit 접근을 설정한다.

- 어떻게 등록하는지

- SSH 설정을 어떻게 하는지

- Git 설정을 어떻게 하는지

1.1 연락 정보 등록하기

a. Tizen Gerrit에 로그인

- 이 부분을 실행하기 위해서는 타이젠 사이트(https://source.tizen.org/ko/user/register)를 가입하고 로그인을 하시면 됩니다.

※ 타이젠 사이트 가입 시 이름을 영문으로 하시는게 유리합니다. 이유는 Git 설정을 하실 때 Username을 설정하셔야 하는데 이 때 사이트의 이름이 들어가게 됩니다.


b. Settings 페이지 열기


- 세팅 페이지를 열고


- Contact Information 메뉴를 클릭하여 정보를 입력한다. Username과 Full Name, Email을 확인하는데 모두 기본적으로 입력되어있다. 만약, 입력이 안되어있다면 Username, Full Name은 Reload 버튼을 눌러 타이젠 기본 정보를 불러온다.

- 만약 Email 정보를 갱신할경우 해당 메일에 Verify email을 수신 확인 하여야 한다.


1.2 Gerrit 접근을 위한 SSH 설정

Gerrit에 접근하기 위한 SSH를 설정하기 위해서는 다음과 같은 절차들이 필요하다.

1. 다음과 같은 명령들에 의한 RSA 키 생성, 엔터만 눌러주면 됨.

$ ssh-keygen [-t ras] [-C ""]

Enter file in which to save the key (/home//.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:

노트 : 여기서 "[-t ras] [-C ""]"는 옵션사항이다.

2. SSH 설정 파일 만들기 설정 파일 Path -> "~/.ssh/config"

- 여기서 ~/.ssh/config 이 위치에 텍스트 에디터나 GUI 에디터를 통해 SSH 설정 파일을 생성해야 한다.

$ vi ~/.ssh/config

Host tizen review.tizen.org Hostname review.tizen.org IdentityFile ~/.ssh/id_rsa User kimyjin1989 Port 29418 #The line below is optional configuration applicable to Ubuntu and openSUSE. #Add when using proxy, otherwise, skip it. #ProxyCommand nc -X5 -x : %h %p #The line below is optional configuration applicable to Fedora. #Add when using proxy, otherwise, skip it. #ProxyCommand nc --proxy-type socks4 --proxy : %h %p

- 하얀 박스의 내용을 붙여넣고 생성하게 된다.

※ 여기서 빨간 글씨와 파란 글씨를 중요하게 보아야 한다.

빨간 글씨 : Tizen 개발자 가이드에서는 tizen만 쓰여있지만 위와 같이 review.tizen.org 라고 써야지만 repo sync가 가능하다. !! repo sync는 뒷 부분의 tizen 소스 다운로드 부분에서 실행하게 된다.

파란 글씨 : 사용자의 ID, 이전의 Gerrit 사이트에서 설정한 username을 넣어준다.


3. 자신의 SSH 공개키 Gerrit에 업로드

- 먼저 자신의 SSH 공개키를 확인합니다.

$ vim ~/.ssh/id_rsa.pub

- 위와 같은 명령어를 입력하면 다음과 같은 SSH Key 값이 나오게 되고 해당 문서의 모든 내용을 복사합니다.



- 다음으로 그 복사한 Key 값을 Gerrit 사이트에 입력하여야 합니다.

- 위에서 한 번 본 적있는 부분인 gerrit 사이트의 setting 버튼을 누르게 되면 위의 그림과 같은 SSH public Key 링크를 볼 수 있습니다.

SSH Key 등록이 처음이라면 메모장 같은 화면에 밑에 Add key 등의 버튼이, 이미 등록한 경험이 있다면 위의 사진과 같은 버튼이 있을것입니다. 

- 위 처럼 나온다면 Add Key 버튼을 눌러 입력창을 띄워 값을 붙여넣기 하고 Add 버튼을 통해 저장

- 처음이라면 텍스트 박스에 키를 붙여넣기 하고 Add 버튼을 눌러 저장합니다.


3. SSH 접속 확인

$ ssh tizen

- 위의 명령어를 실행하여 아래와 같은 모습이 나오면 성공입니다.

 ****    Welcome to Gerrit Code Review    ****
   ...


1.3 Gerrit 접근을 위한 Git 정보 설정

- 앞에 Tizen 공식 사이트 회원 가입 부분에서 말씀드렸듯이 git에 사용자 정보를 설정해야합니다.

다음의 두 동작을 통해 정보를 입력하게 됩니다.

1.  자신의 이름 설정

  1. $ git config --global user.name 

아래는 예제 입니다. 자신의 Full name이 youngjin Kim 일때 | 이부분은 추후에 username인지 Full name인지 확인이 필요한 부분입니다. 다른 블로거의 사이트에서는 Full Name으로 시행하고 있어서 Full name으로 일단 보겠습니다.

  1. $ git config --global user.name "youngjin Kim"


2. 자신의 email 설정

  1. $ git config --global user.email ""

아래는 예제입니다. 자신의 Gerrit에 설정해놓은 email을 입력합니다.

  1. $ git config --global user.email "kimyjin1989@gmail.com"



ㄷ. 결론

- 여기까지 Tizen 소스를 받기 위한 기본적인 Tizen 사이트 가입, Gerrit 설정, 소스 코드 수신을 위한 SSH 설정, Git 정보 설정까지 모두 마치었습니다. 의문점은 댓글 달아주시면 제가 할 수 있는 부분까지 도와드리도록 하겠습니다.

Posted by 시크한공돌이
,