4. 开发环境搭建:安装Ubuntu、配置交叉编译环境、搭建Android Studio与QNX SDK
好,咱们进入正题。这一章要搭建开发环境,说白了就是给你的电脑装上「武器库」。我见过太多新手卡在这一步,装到一半就放弃了。别急,跟着我的节奏来,保证你一次搞定。
4.1 为什么需要这套环境?
智能座舱开发,不是写个App那么简单。你想想看,车机系统要同时跑Android和QNX,还要让它们互相通信。所以我们需要:
- Ubuntu:作为主开发系统,编译工具链都跑在上面
- 交叉编译环境:在PC上编译,在车机芯片上运行
- Android Studio:写HMI界面、Android应用的IDE
- QNX SDK:开发QNX侧底层服务的工具包
嗯,这里要注意:千万别想着在Windows上硬搞,我当年试过,折腾了三天最后还是乖乖装了Ubuntu。
4.2 安装Ubuntu 20.04 LTS
我个人习惯用20.04 LTS版本,稳定,社区支持好。22.04也行,但有些老工具链可能不兼容。
4.2.1 准备工作
- 一台性能还行的电脑(建议16GB内存以上,256GB硬盘)
- 一个8GB以上的U盘
- 下载Ubuntu 20.04 LTS镜像文件
- 下载Rufus(Windows下制作启动盘的工具)
4.2.2 安装步骤
- 用Rufus把镜像写入U盘
- 重启电脑,按F2/F12进入BIOS,设置U盘启动
- 选择「Install Ubuntu」,按提示操作
- 分区建议:
/分50GB,/home分剩余空间,swap给8GB - 安装完成后重启,拔掉U盘
4.3 配置交叉编译环境
交叉编译,说白了就是在你的x86电脑上编译出能在ARM芯片上跑的程序。车机芯片大多是ARM架构的,比如高通SA8155、瑞萨R-Car H3。
4.3.1 安装交叉编译工具链
以ARM64为例,在Ubuntu终端执行:
sudo apt update
sudo apt install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
验证安装:
aarch64-linux-gnu-gcc --version
如果看到版本号,说明装好了。
4.3.2 写个测试程序
// hello.c
#include <stdio.h>
int main() {
printf("Hello, 智能座舱!\n");
return 0;
}
编译:
aarch64-linux-gnu-gcc -o hello hello.c
用 file hello 查看,会显示是ARM架构的可执行文件。
-static 参数,结果程序在车机上跑不起来,因为车机里没有动态库。后来我养成了习惯,交叉编译时一律用静态链接。
4.4 搭建Android Studio
Android Studio是开发HMI界面的主力工具。车机上的Android和手机上的不太一样,但开发流程是相通的。
4.4.1 安装步骤
- 从官网下载Android Studio for Linux
- 解压到
/opt目录:sudo tar -xzf android-studio-*.tar.gz -C /opt - 进入
/opt/android-studio/bin,运行./studio.sh - 按向导安装SDK,建议选API 29(Android 10)以上
4.4.2 配置车机模拟器
车机屏幕通常是1920x720或1280x720的横屏。创建模拟器时:
- 选择「Automotive」分类下的设备
- 分辨率设为1920x720
- API级别选29或30
4.5 搭建QNX SDK
QNX是车机上的实时操作系统,负责安全相关的功能,比如仪表盘、ADAS。Android负责娱乐,QNX负责安全,两者通过Hypervisor隔离。
4.5.1 获取QNX SDK
QNX SDK需要向BlackBerry申请,或者从车厂拿到。一般包含:
- QNX Momentics IDE(基于Eclipse)
- QNX Neutrino RTOS
- BSP(板级支持包)
4.5.2 安装步骤
- 解压SDK包到
/opt/qnx - 设置环境变量,编辑
~/.bashrc:
export QNX_HOST=/opt/qnx/qnx700/host/linux/x86_64
export QNX_TARGET=/opt/qnx/qnx700/target/qnx7
export PATH=$QNX_HOST/usr/bin:$PATH
然后 source ~/.bashrc 生效。
4.5.3 验证安装
qcc --version
如果看到QCC编译器版本,说明环境配好了。
4.6 环境验证与常见问题
4.6.1 验证清单
| 组件 | 验证命令 | 预期结果 |
|---|---|---|
| Ubuntu | lsb_release -a |
显示20.04 LTS |
| 交叉编译工具 | aarch64-linux-gnu-gcc --version |
显示版本号 |
| Android Studio | 启动IDE | 正常打开 |
| QNX SDK | qcc --version |
显示版本号 |
4.6.2 常见问题
- 问题: 交叉编译时提示找不到头文件
解决: 检查-I参数是否指向了ARM架构的头文件路径 - 问题: Android Studio启动卡死
解决: 检查JDK版本,建议用OpenJDK 11 - 问题: QNX SDK激活失败
解决: 确认License文件放在/opt/qnx/license目录下
4.7 小结
环境搭建这块,说白了就是「一次配置,长期受益」。我刚开始做座舱开发时,光配环境就花了一周。但配好之后,后面开发就顺畅多了。
最后提醒一句:备份你的虚拟机。万一搞崩了,直接恢复快照,不用从头再来。这个习惯救过我无数次。
下一章,咱们开始写第一个座舱应用。到时候你就知道,今天搭的环境有多重要了。