fslandroid 환경 구축

6327 단어
클릭하여 링크 열기
ubuntu10.04LTS나 11.04처럼 구글이나 freescale에 맞는 컴파일링 환경이 좋은 설정은 아니며, ubuntu12.04.1LTS 64비트 버전에서는 시간과 노력이 많이 필요합니다.따라서 설치 과정을 적어 두면 나중에 참고하기 편리하다.
우리의 목표는 freescale 개발판sabresd_를 설정하는 것이다6dq의android4.2.2r1의 컴파일 환경.
하드웨어: DELL R720 서버, Intel(R) Xeon(R) CPU E5-2690㎛ 2개, 메모리 32GB, 2T 하드 드라이브
ubuntu와 R720 서버의 호환성에 문제가 있을 수 있습니다. 전원 관리에서 BIOS의 파워 관리를 maximum performance로 설정하고 C-State를 비활성화해야 합니다.
1. ubuntu12.04 LTS 버전 설치
CD ISO 다운로드, 설치
2. JAVA 환경 설치
oracle 공식 다운로드 jdk-6u39-linux-x64.bin, 주의는 반드시java6 예컨대 6u39, 64비트 버전
#cp jdk-6u39-linux-x64.bin/opt/
#cd/opt/
#chmod +x jdk-6u39-linux-x64.bin
#tar zxvf jdk-6u39-linux-x64.bin
설치 후 생성/opt/jdk1.6.0_39 디렉토리
환경 변수 구성
cat setjavaenv.sh 
#set java environment 설정 JAVA의 환경 변수
export JAVA_HOME=/opt/jdk1.6.0_39
export JRE_HOME=/opt/jdk1.6.0_39/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
3. GCC4.4.7 설치 (구 버전)

컴파일할 때 make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1, gcc 버전이 너무 높을 수 있습니다.


ubuntu12.04에서android를 컴파일할 때 이러한 오류가 발생하면 gcc 버전이 너무 높기 때문입니다.오래된 4.4 버전을 설치해야 합니다. gcc-v 명령을 통해 현재 gcc 버전을 볼 수 있습니다. 4.6이면 4.4를 다시 설치해야 합니다.
gcc4.4를 설치하는 가장 좋은 방법은 다음 두 개의 명령만 사용하고 다른 명령이 필요하지 않습니다. 그렇지 않으면 컴파일할 때 오류가 발생할 수 있습니다.
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4 설치 후/usr/bin 디렉터리에서
$ ls -l gcc*
lrwxrwxrwx 1 root root      7 2011-10-29 09:11 gcc -> gcc-4.6
-rwxr-xr-x 1 root root 224544 2011-10-06 05:47 gcc-4.4
- rwxr-xr-x 1 root root 302104 2011-09-17 05:43 gcc-4.6 gcc-4.6에 연결된 gcc를 발견하면 gcc-4.4로 바꿔야 합니다.
sudo mv gcc gcc.bak
sudo ln-s gcc-4.4 gcc 동리
ls -l g++*
lrwxrwxrwx 1 root root      7 2011-08-14 15:17 g++ -> g++-4.6
-rwxr-xr-x 1 root root 228640 2011-10-06 05:45 g++-4.4
-rwxr-xr-x 1 root root 306200 2011-09-17 05:39 g++-4.6
g++ 링크를 g++-4.4로 변경해야 합니다.
/usr/bin$ sudo mv g++ g++.bak
/usr/bin$sudo ln -s g++-4.4 g++
다시 보기 gcc와 g++ 버전 번호: gcc-v와 g++-v는 모두 gccversion 4.4.7을 표시하여 gcc4.4의 설치가 성공했음을 나타낸다.
4. 각종 패키지 설치
git-core gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g+-multilib mingw32 tofrodos python-markdown libxml2-utils xslproc zlib1g-dev:i3 86 (공식 명령에 비해 Openjdk 설치 패키지를 삭제했습니다)
sudo ln -s/usr/lib/i386-linux-gnu/mesa/libGL.so.1/usr/lib/i386-linux-gnu/libGL.so (안 담아도 돼)
5. 번역 과정
이 부분은 freescale 정부에서 제공한 매뉴얼 android_ 참조jb4.2.2_1.0.0-ga_doc 디렉토리의 Androi_User_Guilde.pdf
다음은 몇 가지 주의할 점이 있다
1) 공식 소스 구글 4.4.2r1
먼저 구글 공식 소스 코드를 다운로드하고 4.2.2r1 지점을 선택해야 합니다.프로세스가 비교적 길어서 대략 몇 시간에서 며칠까지 기다리지 않고 네트워크 상황을 보아야 한다.
2) 커널
freescale의kernel_imxgitclone을 사용해서 내려와요. 마지막으로gitcheckout jb4.2.2_1.0.0-ga, 그리고android 원본 상대 루트 디렉터리로 복사합니다.폴더 이름을 바꾸지 마세요.
3) 부트 uboot
freescale의 uboot_를imxgitclone을 사용해서 내려와요. 마지막으로gitcheckout jb4.2.2_1.0.0-ga, 그리고bootable/bootloader/아래로 복사합니다.
4) 패치
freescale 패치 소스/opt/android_ 설치jb4.2.2_1.0.0-ga_source/code/jb4.2.2_1.0.0-ga/and_patch.sh
시간이 비교적 길어요. 약 20분 걸려요.
5) 환경 변수 설정
a. 컴파일 캐시를 설정하면 컴파일 속도를 높일 수 있습니다.
export USE_CCACHE=1
export CCACHE_DIR=~/ccache/.ccache
prebuilts/misc/linux-x86/ccache/ccache -M 50G
b. 자바 환경 변수 설정
#set java environment 설정 JAVA의 환경 변수
export JAVA_HOME=/opt/jdk1.6.0_39
export JRE_HOME=/opt/jdk1.6.0_39/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
c. android 컴파일 시 환경 변수 소스 빌드/envsetup을 설정합니다.sh
편의를 위해 상기를 각본으로 쓰다
setmyenv.sh 한 번 실행
6) 컴파일 프로세스
a. lunch 컴파일 목표를 선택하세요. 여기는 12입니다.sabresd_6dq-user
b. make 컴파일.make-j32,32는 32 라인을 표시할 수 있습니다. 만약에 데스크톱 intel의 쌍핵을 사용한다면make-j4를 사용하는 것이 가장 좋습니다.
make 이론적으로 uboot,kenel,andorid를 모두 자동화하여 번역할 수 있지만 실천을 통해 번역된 uboot.bin은 문제가 있어서 정상적으로 시작할 수 없습니다.freescale 설정의 문제일 수 있습니다.해결 방안: 먼저 make 전편, 그리고 uboot_imx는 uboot을 단독으로 컴파일합니다. 생성된 bin이 정확합니다.uboot을 컴파일하는 과정은 의 3.4장을 참조하십시오.
5. android 원본을 컴파일할 때 발생할 수 있는 문제
1. mkimage 부족 알림
두 가지 방법이 있습니다.
1) uboot을 단독으로 컴파일하여 mkimage를 생성한 다음 mkimage가 있는 경로를 지정하여 컴파일할 때 찾을 수 있도록 합니다
2) apt-get 설치 uboot-mkimage 직접 네트워크 설치
2. lzo1x.h문제

lzo/lzo1x.h: No such file or directory

try:
sudo apt-get install liblzo2-dev
3. UUID 문제

fatal error: uuid/uuid.h: No such file or directory  


이것은 uid 소프트웨어 개발 패키지를 설치하지 않았기 때문에 ubuntu 시스템에서 명령 sudo apt-get install uid-dev를 사용하여 온라인으로 설치할 수 있습니다. 설치가 성공하면 다시 컴파일하면 됩니다.
UUID 문제를 모르면 32비트의 uid apt-get install uuid:i386를 설치하고 소프트 연결을 할 수 있습니다.
sudo ln -sf /lib/i386-linux-gnu/libuuid.so.1/usr/lib/libuuid.그냥 넘어갈 수 있어요.
4. multilib 질문

g++: g++: selected multilib '32' not installed  


try:
sudo apt-get install g++-multilib
sudo apt-get install 
libc6-dev 
ia32-libs 
lib32ncurses5-dev x11proto-core-dev libx11-dev 
lib32readline-gplv2-dev
lib32z-dev libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils
sudo apt-get install g++-4.4-multilib
5. 여전히 multilib 및 mkfs.ubifs 실패. 이 알림이 계속 나타나면.
make: *** [out/host/linux-x86/obj/EXECUTABLES/mkfs.ubifs_intermediates/mkfs.ubifs] Error 1
다음 단계를 참조하여 시도할 수 있습니다.
1) apt-get install liblzo2-2 - 무효
2) apt-get install liblzo2-dev:i386 -- 유효하지 않음
3) apt-get install liblzo-dev:i386 -- 유효하지 않음
4)apt-get install liblzo2-2:i386
5) 참조(http://www.tuicool.com/articles/V3IV73)
sudo ln -s /usr/lib/i386-linux-gnu/liblzo2.so.2 /usr/lib/liblzo2.so

set LD_LIBRAY_PATH=/usr/lib/ 
무효
6)sudo apt-get remove liblzo2-dev liblzo2-2 --무효 7)sudo apt-get install g++-4.4-multilib
성공!
번역이 완료되면 out/target/product/sabresd_6dq에서 우리가 필요로 하는boot을 생성합니다.img, system.img userdata.img 등.하지만 uboot.binfreescale가 설정한 버그로 인해 우리가 원하는 것이 아닙니다. 단독으로 uboot_imx 디렉터리를 수동으로 컴파일합니다.
6. 기타 구성 및 고려 사항
1. 루트 암호는 공망 IP에서 공격당하지 않도록 어느 정도 복잡해야 한다
2. sshd 설치를 확인하여 모든 사람에게 user를 만들고, 호스트 편집에 로그인하고, 컴파일합니다.

좋은 웹페이지 즐겨찾기