基本环境:

处理器:i7 13700K

内存:64GB

显卡:英伟达RTX3090TI

系统:ubuntu22.04.05

1,安装系统

ubuntu22.04.05

正常下载安装,可以勾选额外驱动安装

添加代理

#添加代理
export http_proxy=http://192.168.1.1:1080 
export https_proxy=http://192.168.1.1:1080 

#清除代理 
unset http_proxy 
unset https_proxy

显卡驱动安装

进入系统后,直接在GUI的【软件&更新】里面

选择【driver metapackage from nvidia-driver-470】

保存退出。

说明:理论上,可以执行sudo apt install nvidia-driver- 来选择版本的

锁住当前内核,不让更新

#查看所有内核
dpkg --list | grep linux-image

#查看当前安装的内核版本
uname -r
6.8.0-40-generic


#阻止特定内核版本的更新
sudo apt-mark hold linux-image-6.8.0-40-generic
sudo apt-mark hold linux-headers-6.8.0-40-generic

#验证是否成功
sudo apt-mark showhold

删除指定内核(备选)

如果不小心更新了,且没锁内核,且自己用.run安装nvidia驱动,把所有程序弄乱了,nvidia驱动会提示,内核里面已经有XXX,不能安装。

这个时候,一看,系统里面竟然有3个内核,那么很简单,只需要从老内核进入,然后执行下面的操作,删除新的内核,系统就又好了。

当时,竟然连wifi和有线网络的驱动都没有了。

#列出所有内核
dpkg --list | grep linux-image
ii  linux-image-6.8.0-40-generic               6.8.0-40.40~22.04.3                     amd64        Signed kernel image generic
ii  linux-image-6.8.0-47-generic               6.8.0-47.47~22.04.1                     amd64        Signed kernel image generic
ii  linux-image-6.8.0-48-generic               6.8.0-48.48~22.04.1                     amd64        Signed kernel image generic
ii  linux-image-generic-hwe-22.04              6.8.0-47.47~22.04.1                     amd64        Generic Linux kernel image

# 删除内核
sudo apt remove --purge linux-image-6.8.0-47-generic linux-image-6.8.0-48-generic

# 清理依赖包
sudo apt autoremove

# 更新GRUB引导菜单
sudo update-grub

# 重启系统
sudo reboot

2,安装apollo9.0(源码方式)

sudo apt-get update

sudo apt-get upgrade

安装docker

wget http://apollo-pkg-beta.bj.bcebos.com/docker_install.sh

bash docker_install.sh

获取 GPU 支持

3090ti实测下面配置可以支持

nvidia-smi
Tue Nov  5 11:42:07 2024
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.256.02   Driver Version: 470.256.02   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:01:00.0  On |                  Off |
|  0%   42C    P8    46W / 480W |    426MiB / 24222MiB |      6%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

我直接用系统gui选的默认的470,没有用apollo官方推荐的.run方式,因为会出各种问题,要先关闭Nouveau,还要命令行界面,还不一定安装成功。

安装 Nvidia container toolkit

在容器内获得 GPU 支持

#说明,要用代理,否则不成功,
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
sudo apt-get -y update
sudo apt-get install -y nvidia-docker2

#安装后,重启
sudo systemctl restart docker

下载apollo9.0源码

# HTTPS 方式
git clone https://github.com/ApolloAuto/apollo.git
cd apollo
git checkout master

启动和进入 Apollo 环境容器

#启动
bash docker/scripts/dev_start.sh

成功后,如下
[ OK ] Congratulations! You have successfully finished setting up Apollo Dev Environment.
[ OK ] To login into the newly created apollo_dev_michael container, please run the following command:
[ OK ]   bash docker/scripts/dev_into.sh
[ OK ] Enjoy!

#进入容器
bash docker/scripts/dev_into.sh

编译代码

说明,这里参数可以build,build_cpu,build_gpu

build会自动检测系统是否有gpu,如果有gpu,会自动使用gpu版本编译

./apollo.sh build

可选,编译优化

常用于发布正式代码量产,开发过程中不用opt,他会缩减代码,减少内存操作时间等等。

./apollo.sh build_opt

启动Apollo和Dreamview+进行播包验证

#容器内
wget https://apollo-system.cdn.bcebos.com/dataset/6.0_edu/demo_3.5.record -P $HOME/.apollo/resources/records/

#启动
bash scripts/bootstrap.sh start_plus

启动 Dreamview+ 之后,在浏览器输入 

localhost:8888 进入 Dreamview+ 界面