基本环境:
处理器: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+ 界面
本文地址: 百度apollo9.0自动驾驶ubuntu22.04开发环境安装使用英伟达RTX3090TI显卡