i.Mx8 Android compile 네 번째.
Source download 후 마지막으로 아래의 설정을 한다.
export MY_ANDROID=`pwd`/android_build
안드로이드 이미지를 빌드 하기 위해 문서의 3.2 Building Android images 부분을 참고하여 따라한다.
아래의 링크 사이트에서 툴체인을 다운로드 받는다.
gcc-arm-8.3-2019.03-x86_64-aarch64-elf.tar.xz (71.7MB)
>> bear-metal prgram을 컴파일하기 위한 툴
gcc-arm-8.3-2019.03-x86_64-arm-eabi.tar.xz (384.3MB)
를 다운로드 한다.
두 파일을 루트의 /opt/ 에 압축을 푼다.
gcc-arm-8.3-2019.03-x86_64-aarch64-elf.tar.xz
gcc-arm-8.3-2019.03-x86_64-arm-eabi.tar.xz
위의 두 파일을 사용하기 때문에 아래의 내용을 export 한다.
export AARCH64_GCC_CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-aarch64-elf/bin/aarch64-elf-
export AARCH32_GCC_CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-arm-eabi/bin/arm-eabi-
참고) 다음의 컴파일 작업을 하기 전에 컴파일 에러가 났었던 항목 정리.
error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory
위와 같은 에러가 발생하면
sudo apt install libncurses5
위 패키지를 설치한다.
필수 패키지 설치 중 설치되는 패키지 인데 일시적인 문제로 설치되지 않아서 위 에러가 발생했던 것 같다.
한 시간 이상 컴파일 했는데 에러가 나서 당황스러웠다.
linux-headers-generic 문제
컴파일 도중 이와 관련된 문제가 있었던 것 같다. 해당 내용을 캡춰한 기록이 있으니...
이 때는 WiFi dongle 문제로 네트워크에 연결이 안 되어 다른 PC에서 복사하여 설치하였다.
위 이미지의 3개 파일을
"/var/cache/apt/archives" 에 복사하고 아래 명령으로 설치하였다.
apt-get install linux-headers-generic
bpttool 부분에서 발생한 SyntaxError: invalid syntax 에러.
bpttool 소스의 주석을 보면 python 2.6 이상 버전은 지원한다고 되어 있다.
python --version
명령으로 확인해 보니. 현재 3.8.5 버전이였다.
혹시 버전 호환성 문제인가 싶어 구버전 python을 설치했다.
sudo apt install python2.7
캡춰한 이미지에서는 python이 인식되지 않고 있지만 우분투 18.04 를 처음 설치한 후 python --version으로 3.8.5 버전이 확인된 상태에서도 bpttool 에서 syntax error가 발생했었다.
그래서 아래와 같이 python의 위치를 확인하고 python을 2.7 버전으로 설정하였다.
whereis python
sudo ln -s /usr/bin/python2.7 /usr/bin/python
python --version
여기까지 하면 더 이상의 컴파일 에러가 발생하지 않고 정상적으로 빌드 되었다.