안드로이드 소스 컴파일을 하기 위한 예비 작업 중에 하기 내용 중 #3/4번을 실행할 차례이다.

  1. Python 2.5 or 2.7
  2. Java JDK 설치
  3. 빌드도구들과 git, repo 설치
  4. 안드로이드 소스 다운로드

3. 빌드도구들과 git, repo 설치

4. 안드로이드 소스 다운로드

Beglebone Black용 안드로이드 소스 다운로드를 하는 방법은 대부분 다음과 같이 www.gitorious.org/rowboat repository를 통해 소스코드를 받으라고 되어 있다.

하지만, 불행히도 해당 서버에서 더 이상 지원을 하지 않기 때문에 이 방법은 사용할 수 없다.

그래서 2가지 방법을 찾아냈다.

그 첫번째는 아래 웹에서 말하는 방법을 따르는 것이고, 다른 하나는 우리가 사용하는 Beaglebone Black에 사용하는 Main SoC인 AM3559의 chip maker인 TI 홈페이지에서 DevKit용 안드로이드 Source 코드를 받는 방법이다.

첫번째 방법을 이용하기 위해서 아래 웹페이지를 따른다.

https://adinpro.tistory.com/34

 

Beaglebone Black 보드의 안드로이드 포팅

1.개발 목표 beagleboneblack의 android를 포팅하고 이름을 자신의 영문이름으로 올바르게 포팅 되었는지 beagleboneblack을 통해 확인해 봅니다. 2. 개발 환경 window 7 home premium K, VMware Workstation11, U..

adinpro.tistory.com

http://linux.hoseo.edu/ 에서 android_source.tar.xz를 다운 받은 후 그 웹페이지에 설명되어 있는 대로 차근차근 따라가다가 한 군데에서 막혀 버렸다.

make TARGET_PRODUCT=beagleboneblock OMAPES=4.x droid -j8

위의 명령어를 시작하자 make version 문제가 발생한 것이다.

그래서 make Downgrade 하는 방법을 찾아 보았더니 다음과 같은 방법이 있다.

https://m.blog.naver.com/PostView.nhn?blogId=chandong83&logNo=220766613564&proxyReferer=https%3A%2F%2Fwww.google.com%2F

 

make 다른 버전 설치

현재 Ubuntu 16.04LTS를 사용 중이다. 그러다 보니 오래된 소스를 빌드 하려고 하면 문제가 많이 발생...

blog.naver.com

그 내용은 다음과 같다.

아래의 사이트에서 원하는 버전을 다운로드한다.

http://ftp.gnu.org/gnu/make/

다운로드한 파일을 압축을 푼 후

>tar zxvf make-3.81.tar.gz

>cd make-3.81

make-3.81>./configure 

make-3.81>make

make-3.81>sudo make install

하지만 make 명령어를 실행하게 되면 다음과 같은 Error가 발생한다.

이 Error에 대해서 검색을 해보니 다음과 같은 웹페이지를 찾을 수 있었다.

https://stackoverflow.com/questions/51675200/install-older-version-of-gnu-make-in-ubuntu-18-04

 

Install older version of gnu-make in Ubuntu 18.04

I want to install make 3.81 on Ubuntu 18.04. So I download this version of make and run ./configure and then make. But when compiling it gives me this error: ./glob/glob.c: In function ‘glob’: ....

stackoverflow.com

언급된 해법과 같이 다음 구문을 변경해 주었다.

  • Before
# include  <gnu-versions.h>

# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION
  • After
# if _GNU_GLOB_INTERFACE_VERSION == GLOB_INTERFACE_VERSION

수정 후 make와 make install을 실행하면 정상적으로 실행이 되고 /usr/loc/bin/ 에서 install된 make 파일을 확인 할 수 있다.

새로 설치된 make file의 이름을 다음과 같이 변경한다.

sudo mv /usr/local/bin/make /usr/local/bin/make-3.81

그리고 기존 설치된 make file의 이름도 다음과 같이 변경한다.

sudo mv /usr/bin/make /usr/bin/make-4.1

쉽게 변경할 수 있도록 update-alternatives에 추가한다.

mskim@ubuntu:~$ sudo update-alternatives --install /usr/bin/make make /usr/bin/make-4.1 1

update-alternatives: using /usr/bin/make-4.1 to provide /usr/bin/make (make) in auto mode

 

mskim@ubuntu:~$ sudo update-alternatives --install /usr/bin/make make /usr/local/bin/make-3.81 2

update-alternatives: using /usr/local/bin/make-3.81 to provide /usr/bin/make (make) in auto mode

이제 사용하고 싶은 버전을 update-alternatives --config로 변경한 다음 사용하면 된다.

 

드디어 컴파일을 다시 시작 했다.

헌데...

또 무엇인 문제인지... 어렵군 어려워...

 

 

 

그래서 안드로이드 홈페이지를 방문하여 Android 2.3.x(Gingerbread)에서 필요로 하는 Ubuntu version은 12.04(Precise)로 확인 할 수 있다.

https://source.android.com/setup/build/older-versions

 

Supporting Older Versions  |  Android Open Source Project

이 다음은 나중에 시간될때 다시 정리를 해보겠다...

To be continue...

+ Recent posts