【Apollo 自动驾驶】Win11 中 WSL2 安装配置 Apollo 环境

【Apollo 自动驾驶】Win11 中 WSL2 安装配置 Apollo 环境

【1】Win11 WSL2 安装配置 Nvidia Cuda

【1.1】检查计算机硬件的显卡信息

计算机图标右击 -> 管理 -> 设备管理器 -> 显示适配器;

【1.2】检查对应显卡并安装 Nvidia 显卡驱动

下载对应的 Nvidia 显卡驱动,Nvidia 显卡驱动下载链接

注意此处应该选择 Windows 主机显卡型号对应的驱动;

【1.3】安装 WSL2 中对应 Ubuntu 的 CUDA Toolkit

选择对应的 CUDA Toolkit,CUDA Toolkit 下载链接

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.2.0/local_installers/cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-12-2-local_12.2.0-535.54.03-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-12-2-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

配置 CUDA Toolkit

编辑 vim ~/.bashrc

添加如下信息
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:$CUDA_HOME/bin
export LD_LIBRARY_PATH=/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

使能
source ~/.bashrc

检查是否安装成功

执行如下命令
nvcc -V

-----------------------------------------------------------------

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2023 NVIDIA Corporation
Built on Tue_Jun_13_19:16:58_PDT_2023
Cuda compilation tools, release 12.2, V12.2.91
Build cuda_12.2.r12.2/compiler.32965470_0

【2】WSL2 安装配置 Docker 环境

【2.1】下载配置 Docker-Desktop

Docker-Desktop 下载地址 : https://www.docker.com/products/docker-desktop/

安装完毕后,选择 settings -> Resources -> WSL integration 从而 WSL2 可以使用 docker 命令

【3】Apollo 代码编译与环境配置

【3.1】编译 Apollo 代码

下载 Apollo 源码并进入源码目录后 

拉取相关镜像
bash docker/scripts/dev_start.sh

进入 docker 编译环境容器
bash docker/scripts/dev_into.sh

编译 Apollo 代码
bash apollo.sh build

【3.2】配置并启动验证 DreamView

【3.2.1】启动 DreamView

启动 DreamView
bash scripts/bootstrap.sh

【3.2.2】针对 WSL2 环境修改显示 IP

修改 docker/scripts/dev_start.sh 如下

修改 scripts/bootstrap.sh 如下

DreamView 启动完成显示如下

【3.3】Apollo 启用 GPU

【3.3.1】Apollo 编译时观察是否启用了 GPU

执行命令 bash apollo.sh build

出现如下内容

说明启用了 GPU 编译;

编译选项说明

#使用 Release 模式和 GPU 编译
bash apollo.sh build_opt_gpu

其他可选编译方式如下所示:
# bash apollo.sh build 表示带调试信息的 Release 模式编译
# [module] 可选,表示待编译的模块;如果不加任何模块,表示编译所有模块
# 例如: bash apollo.sh build perception ,表示只编译感知模块
# bash apollo.sh build ,编译所有模块
#
bash apollo.sh build [module]

模式编译
# Debug
bash apollo.sh build_dbg [module]
模式编译
# Release
bash apollo.sh build_opt [module]

#使用 CPU ,带调试信息的 Release 模式编译
bash apollo.sh build_cpu [module]

#使用 GPU ,带调试信息的 Release 模式编译
bash apollo.sh build_gpu [module]

#使用 GPU , Release 模式编译
bash apollo.sh build_opt_gpu [module]

【3.3.2】观察判定 Apollo 是否启用了 GPU

执行命令 bash docker/scripts/dev_start.sh

出现如下内容

执行命令 bash docker/scripts/dev_into.sh

出现如下内容

以上可以判定 Apollo 镜像中没有启用 GPU;

【3.3.3】Apollo 镜像中启用 GPU

安装 nvidia-container-runtime

添加相关仓库
curl -s -L https://nvidia.github.io/nvidia-container-runtime/gpgkey | \
  sudo apt-key add -
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -s -L https://nvidia.github.io/nvidia-container-runtime/$distribution/nvidia-container-runtime.list | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-runtime.list
sudo apt-get update

安装
sudo apt-get install nvidia-container-runtime

问题与解决方案

【1】Failed to pull docker image : apolloauto/apollo:dev-x86_64-18.04-20210914_1336 docker 镜像拉取失败

需要添加权限

sudo bash docker/scripts/dev_start.sh

参考与致谢

本博客为博主学习笔记,同时参考了网上众博主的博文以及相关专业书籍,在此表示感谢,本文若存在不足之处,请批评指正。

【1】CUDA on WSL User Guide

【2】Win11怎么查看显卡配置 Win11查看显卡配置的方法

【3】在wsl2中安装CUDA

【4】基于wsl的Apollo环境配置

【5】Win10 WSL2 ubuntu20.04编译apollo

【6】https://github.com/NVIDIA/nvidia-container-runtime

【7】https://nvidia.github.io/nvidia-container-runtime/