当前位置: 首页 > news >正文

Apollo 10.0 在Ubuntu22.04下的完整环境配置指南

1. 环境准备与系统检查

在开始配置Apollo 10.0之前,我们需要确保Ubuntu 22.04系统处于最佳状态。我遇到过不少因为基础环境没准备好导致后续安装失败的情况,所以这部分特别重要。首先打开终端,运行以下命令更新系统:

sudo apt update && sudo apt upgrade -y

这个步骤会更新所有已安装的软件包到最新版本,避免因为旧版软件导致的兼容性问题。记得检查系统内核版本,Apollo 10.0推荐使用5.15或更高版本的内核,可以通过uname -r查看。

硬件方面,你需要一块NVIDIA显卡(建议RTX 2060以上),至少16GB内存和100GB可用磁盘空间。我实测发现,在虚拟机中运行Apollo会遇到性能问题,所以强烈建议使用物理机安装。如果你用的是笔记本,记得接上电源并设置为高性能模式,编译过程很吃资源。

2. Docker安装与配置

Docker是Apollo运行的基础环境,但官方脚本有时候不太稳定。我推荐使用阿里云镜像源来安装,速度更快更可靠。以下是详细步骤:

# 安装必要工具 sudo apt install -y ca-certificates curl gnupg lsb-release # 添加阿里云Docker仓库密钥 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/aliyun-docker.gpg # 添加仓库 echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/aliyun-docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装Docker sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io

安装完成后,我们需要解决常见的权限问题。很多新手会卡在这里,导致后续命令都需要加sudo:

# 创建docker用户组(如果不存在) sudo groupadd docker # 将当前用户加入docker组 sudo usermod -aG docker $USER # 立即生效 newgrp docker

验证安装是否成功可以运行docker run hello-world,如果看到欢迎信息就说明安装正确。我还建议配置国内镜像加速器,修改/etc/docker/daemon.json文件(没有就新建):

{ "registry-mirrors": [ "https://docker.1panel.live", "https://hub.rat.dev" ] }

最后别忘了重启Docker服务使配置生效:sudo systemctl restart docker

3. NVIDIA驱动与CUDA安装

这部分是最容易出问题的环节,我踩过不少坑。首先检查你的显卡型号和推荐的驱动版本:

ubuntu-drivers devices

建议选择带有"recommended"标记的驱动版本安装。Ubuntu 22.04提供了两种安装方式:

方法一:通过系统附加驱动安装(推荐新手)

  1. 打开"软件和更新"应用
  2. 切换到"附加驱动"标签页
  3. 选择带有"专有"和"推荐"标记的驱动版本
  4. 点击应用更改并等待安装完成

方法二:命令行安装

sudo apt install -y nvidia-driver-535

安装完成后重启电脑,运行nvidia-smi应该能看到显卡信息。如果报错,可能是驱动没装好,需要卸载重装。

接下来安装CUDA Toolkit,版本选择很关键。Apollo 10.0推荐CUDA 11.8,但Ubuntu 22.04默认仓库可能没有。我建议从NVIDIA官网下载runfile安装:

wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run sudo sh cuda_11.8.0_520.61.05_linux.run

安装时记得取消勾选驱动安装(如果已经装好驱动),其他保持默认。安装完成后配置环境变量:

echo 'export PATH=/usr/local/cuda-11.8/bin:$PATH' >> ~/.bashrc echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc source ~/.bashrc

验证安装:nvcc -V应该显示CUDA 11.8版本。

4. NVIDIA Container Toolkit配置

这个组件让Docker容器能够使用GPU,是Apollo运行的关键。安装步骤如下:

# 添加仓库密钥 curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg # 添加仓库 curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list # 安装工具包 sudo apt update sudo apt install -y nvidia-container-toolkit

配置Docker使用nvidia运行时:

sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker

测试GPU是否能在容器中使用:

docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi

如果看到和宿主机相同的GPU信息,说明配置成功。

5. Apollo源码获取与编译

终于到了核心环节!我建议从Gitee镜像克隆,速度比GitHub快很多:

git clone https://gitee.com/ApolloAuto/apollo.git cd apollo

Apollo使用自己的环境管理工具aem,先安装它:

./aem init

启动容器并进入开发环境:

./aem start ./aem enter

在容器内开始编译(这步很耗时,建议去喝杯咖啡):

buildtool build

编译时间取决于你的硬件配置,我的i7-12700K+RTX 3080大约需要18分钟。如果遇到网络问题导致某些包下载失败,可以尝试修改容器内的apt源:

sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list apt update

编译完成后,可以启动Dreamview来验证安装:

aem bootstrap start

在浏览器打开http://localhost:8888应该能看到Apollo的控制界面。如果启动的是Dreamview+,端口会是8889。

6. 常见问题排查

我在多次安装过程中总结了一些常见错误和解决方法:

Q1: 编译时内存不足A: 尝试增加swap空间:

sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile

Q2: Docker容器启动失败A: 检查日志:docker logs apollo_dev,常见原因是NVIDIA驱动版本不匹配。

Q3: Dreamview无法打开A: 检查端口是否被占用:netstat -tulnp | grep 8888,也可以尝试更换端口:aem bootstrap start --port 8889

Q4: GPU在容器中不可用A: 重新安装nvidia-container-toolkit并检查docker配置:

docker run --rm --gpus all nvidia/cuda:11.8.0-base-ubuntu22.04 nvidia-smi

7. 性能优化建议

为了让Apollo运行更流畅,我有几个实测有效的优化技巧:

  1. 关闭图形界面:编译时切换到命令行界面(Ctrl+Alt+F3)可以节省大量资源
  2. 使用ccache加速编译:在容器内设置export USE_CCACHE=1
  3. 调整编译线程数:根据CPU核心数设置,比如8核CPU:buildtool build -j8
  4. 定期清理Dockerdocker system prune -f可以释放磁盘空间
  5. 使用SSD硬盘:机械硬盘的编译时间可能是SSD的3-5倍

最后提醒一点,Apollo的容器会占用大量磁盘空间,建议定期清理旧的镜像和容器。如果后续需要更新代码,记得先git pull然后重新编译。

http://www.jsqmd.com/news/651392/

相关文章:

  • 前端PDF预览避坑指南:从Blob转换到vue-pdf分页控制的那些事儿
  • 从X-AnyLabeling到YOLO:一站式JSON标签转换实战指南(附Python脚本)
  • 从模型检测实战看三大逻辑:CTL、PLTL与mu-演算的选型指南
  • 批处理脚本进阶:环境隔离、参数轮转与流式处理
  • 某手App反爬核心sig3算法解析:从Unidbg服务部署到接口调用的完整链路
  • Unity3d Cinemachine篇(一)— 初探Virtual Camera:从零搭建你的首个智能镜头
  • 手把手教你用Glean搭建企业知识图谱:从Slack到Confluence的完整配置流程
  • 避坑指南:部署完kube-prometheus后,为什么Grafana/Prometheus页面还是打不开?
  • 合宙ESP32C3实战:MPU6500六轴传感器数据读取与校准全解析
  • 用CY7C68013A模拟MDIO时序?这些GPIO配置细节你可能不知道
  • 央视曝光 AI 涉灰产业链:技术红利正被滥用,监管必须跟上
  • 从源码到一键安装包:教你用PyInstaller打包定制版LabelImg(解决闪退和预置标签问题)
  • 《TRAE从入门到精通全攻略》,零基础也能快速上手,助力你快速成长为程序员
  • 雷达信号分析入门:脉内脉间调制到底在玩什么花样?
  • 基于 MATLAB 实现的可视密码图示法设计
  • PCB设计老鸟的AD21 DRC设置清单:如何为你的高速板与低速板定制专属检查规则
  • 终极Windows ISO补丁集成指南:一键制作最新补丁安装镜像的完整教程
  • 科学化学工管理:让教育更高效,让学生更满意
  • DRV8701E双电机驱动电路实战:从原理图困惑到PCB布局的避坑指南
  • Nginx正向代理实战:从源码编译到HTTPS支持的全流程指南
  • 如何用Python自动化脚本破解大麦网抢票难题:技术原理与实战指南
  • 提前72小时预警,巡检提效60%!华电集团联合吉泰智能斩获《火电燃料技术创新大奖》
  • PiliPlus:跨平台B站客户端终极指南,简单快速享受高清视频体验
  • 新手小白实战教程:用 TRAE 从零创建一个“个人日记本”网页应用
  • 【25考研】人大计算机复试:从参考书目到实战面试的避坑指南
  • TVS选型实战指南:从参数到应用的精准匹配
  • 【Pytorch】利用torchvision.utils.save_image高效实现tensor到图片的批量转换与保存
  • 边走边聊 Python 3.8:Chapter 10:Tkinter 桌面小工具
  • 别再手动点Model Explorer了!用Matlab脚本批量修改Stateflow参数,效率翻倍
  • SpringBoot与knife4j无缝集成实战(零基础到精通)