安装使用高通的 Telematics SDK
在Telematics SDK User Guide中其实介绍了安装步骤,但是写得很简洁,这里在其手册基础上补充了需要注意的东西
前期准备
参考手册
Qualcomm Telematics SDK User Guide v1.26.15,不同版本手册链接
不同硬件需要更换不同版本的SDK,详见发行说明
虚拟机配置
ubuntu 14.04 64位(按照Telematics SDK User Guide指导选择),推荐内存分配4G以上,硬盘80G以上
安装依赖
安装依赖
sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat libsdl1.2-dev xterm
安装 repo
创建repo存放目录bin,并配置环境变量
mkdir ~/bin
PATH=~/bin:$PATH
下载repo启动程序
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
可改用清华源,没试过,详见清华镜像站repo使用帮助
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo -o repo
chmod +x repo
repo
会保存在/home/user/bin
下,root
用户执行会保存在/root/bin
下更改repo url
更改bin里面的repo文件,将里面的REPO_URL
改为清华镜像的地址
https://mirrors.tuna.tsinghua.edu.cn/git/git-repo
配置代理和 Git
代理配置
代理配置写在了另外一篇博客
Git配置
使用以下命令配置邮箱和名字
git config --global user.email "your email"
git config --global user.name "your github name"
使用git config --global --list
查看配置结果
获取 repo 配置和脚本集
因为 repo 只支持 python 3.5
及以上的,我这里在ubuntu 14里安装了python 3.8
。如果安装完显示找不到python3.8,则执行
PATH=/usr/local/python/python3.8/bin:$PATH
然后下载或更新好repo配置和脚本集
python3 ~/bin/repo init -q -u git://codeaurora.org/quic/le/le/manifest.git -b release -m caf_AU_LINUX_EMBEDDED_LE.UM.1.3.2.R1_TARGET_ALL.01.159.076.xml
这里xml可以更改,可参考codeaurora上的目录
更改后注意在AU
前面添加caf_
,末位添加.xml
下载更改并更新本地工作文件
执行命令
python3 ~/bin/repo sync -j 32
'
-j threadcount:将同步操作拆分成多个线程,以更快地完成。如需查看可用 CPU 的数量,请先运行:nproc --all
repo sync卡住的问题
repo sync
会消耗大量空间,容易跑着跑着无反应,判断是否卡死的办法一是看网络速率,二是看磁盘读写。如果接收为0,但磁盘在读写,存储空间在变小也不需要取消,如果是虚拟机建议打开运行状态时常查看。
repo sync产生大量压缩文件的问题
repo sync
是可以断点续传的,直接ctrl c
重新输入命令。但是重跑命令也会带来产生大量垃圾压缩文件的问题。在下载目录里占用很大空间的文件夹里一般可以找到名称是tmp_pack_XXXXXX
的压缩包,后面六位是由 repo调用的git根据当前时间随机生成的。当网络超时就会中断repo同步过程,重新开始repo同步过程到断点处会生成一个压缩文件名进行下载,这就导致原有的压缩文件成为垃圾文件。
更改本地 conf 配置文件
更新Telux和Telephony库
sync完成后在poky/build/conf/local.conf
的末尾添加以下几行
For LE.UM.1.3.2 target
CORE_IMAGE_EXTRA_INSTALL += "telux"
CORE_IMAGE_EXTRA_INSTALL += "telux-lib"
For LE.UM.1.3.r5 target
1 CORE_IMAGE_EXTRA_INSTALL += "telux"
2 CORE_IMAGE_EXTRA_INSTALL += "telephony-lib"
更改MACHINE名称
在poky/meta-qti-bsp/conf/machine
目录下查看项目支持的MACHINE名称,文件名去掉后缀就是。继续改之前的poky/build/conf/local.conf
,将里面MACHINE
的值改为machine目录下conf的名称。如希望是xxx.conf
,则MACHINE ??= “xxx”
更改同时执行的任务数线程数
改小配置里的线程数,或者增大内存。否则出现ERROR: Worker process (12928) exited unexpectedly (-9), shutting down...
或failed with exit code '1'
的错误。这种错误一般会在内存被占满时出现。
conf文件中
BB_NUMBER_THREADS
同时执行任务数改为 4
PARALLEL_MAKE
同时执行线程数改为-j 2
Source bitbake 环境
执行命令,需要python2
cd poky/
source build/conf/set_bb_env.sh
执行完该命令后会自动切换到poky/build
目录下,对于bitbake
以及buildclean
命令在该目录下执行
构建和安装Yocto平台SDK
执行命令
bitbake core-image-minimal -c do_populate_sdk
对于上来就出错,如下面的错
ERROR: ParseError at /home/user/telSDK/poky/meta-qti-location/recipes/location/location-hal-daemon_git.bb:1: Could not inherit file classes/qlicense.bbclass
我的办法是换init
的xml,并确认系统版本是否符合。
大功告成
在成功编译后,在位置poky/build/tmp-glibc/deploy/sdk/
上可以找到sdk安装程序
poky/build/tmp-glibc/deploy/sdk/oecore-x86_64-cortexa8hf-vfp-neon-toolchain-nodistro.0.sh
然后就可以运行这个sh构建Telematics SDK环境了。