由于imx8新出的,市面上资料很少,所以自己把遇到问题写出来
imx8 源码下载路径,如果没有账号就申请一个,由于我们是做无人驾驶公交的方向,所有我们选择的是自动驾驶版本。
android_o8.1.0_2.0.0_auto-beta_image_8qmek2.tar.gz
下载网址
https://cache.nxp.com/secured/bsps/android_o8.1.0_2.0.0_auto-beta_image_8qmek2.tar.gz?__gda__=1555910806_437b407337762cad8f6ff086ec0ebcec&fileExt=.gz
下载解压之后发现,这里面最重要的是一个脚本,
imx_android_setup.sh 脚本内容
# This script is used to fetch the complete source for android build
# It will install android NXP release in WORKSPACE dir (current path by default)
echo "Start fetching the source for android build"
if [ "x$BASH_VERSION" = "x" ]; then
echo "ERROR: script is designed to be sourced in a bash shell." >&2
return 1
fi
# retrieve path of release package
REL_PACKAGE_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
echo "Setting REL_PACKAGE_DIR to $REL_PACKAGE_DIR"
if [ -z "$WORKSPACE" ];then
WORKSPACE=$PWD
echo "Setting WORKSPACE to $WORKSPACE"
fi
if [ -z "$android_builddir" ];then
android_builddir=$WORKSPACE/android_build
echo "Setting android_builddir to $android_builddir"
fi
if [ ! -d "$android_builddir" ]; then
# Create android build dir if it does not exist.
mkdir "$android_builddir"
cd "$android_builddir"
repo init -u https://source.codeaurora.org/external/imx/imx-manifest.git -b imx-android-oreo -m imx-o8.1.0_2.0.0-auto-beta.xml
rc=$?
if [ "$rc" != 0 ]; then
echo "---------------------------------------------------"
echo "-----Repo Init failure"
echo "---------------------------------------------------"
return 1
fi
else
cd "$android_builddir"
fi
repo sync
rc=$?
if [ "$rc" != 0 ]; then
echo "---------------------------------------------------"
echo "------Repo sync failure"
echo "---------------------------------------------------"
return 1
fi
# Copy all the proprietary packages to the android build folder
cp -r "$REL_PACKAGE_DIR"/vendor/nxp "$android_builddir"/vendor/
cp -r "$REL_PACKAGE_DIR"/EULA.txt "$android_builddir"
cp -r "$REL_PACKAGE_DIR"/SCR* "$android_builddir"
# unset variables
unset android_builddir
unset WORKSPACE
unset REL_PACKAGE_DIR
echo "Android source is ready for the build"
主要是通过repo 下载源码。然后 拷贝patch 到源码中
由于国内墙的原因,repo 脚本的库使用国内源
git clone https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
下载完成之后修改 repo内容
REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
在根目录下新建文件夹bin 并把 修改后repo拷贝进去 。
执行source ~/imx-o8.1.0_1.3.0_8m/imx_android_setup.sh 大概会报一下错误
error: Failed connect to android.googlesource.com:443;Connection refused while
这里需要替换Ubuntu的/etc/hosts
替换完成之后,就可以正常下载源码,大概下载一天,中间如果有中断,执行repo sync 既可以,不需要执行脚本