目录

安装使用高通的 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

注意
Qualcomm Innovation Center Inc. 维护的存储库已迁移到codelinaro。 codeaurora站点上的 QUIC 存储库在2022 年 3 月 31 日之后停止更新,并将于 2023 年 3 月 31 日删除。codelinaro上的目录应该在这里

下载更改并更新本地工作文件

执行命令

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环境了。