前因
由于疫情原因,用于实战的小车迟迟没有办法送进学校,我们只好曲线救国,使用一个名为CARLA的开源自动驾驶仿真项目进行仿真。幸运的是,我们从学校实验室申请了一台配置不错的台式机,足以支持我们进行仿真的操作,不过安装的过程复杂而且曲折,值得将安装的过程进行记录。
软硬件环境
- 操作系统:Ubuntu 18.04.6 LTS
- 内存:62.5 GiB
- 处理器:Intel® Core™ i9-10900K CPU @ 3.70GHz × 20
- 显卡:NVIDIA GeForce RTX 3090/PCIe/SSE2
总体步骤
- 安装显卡驱动
- 编译运行Unreal Engine
- 编译运行CARLA
CARLA是一个虚幻引擎项目,因此要求我们必须先将虚幻引擎安装好。而正确安装并运行虚幻引擎的前提条件是电脑的显卡驱动必须先安装完成。
安装显卡驱动
卸载原有显卡驱动
不管以前有没有安装过显卡驱动,最好还是执行一下这个操作,以免出现一些奇怪的问题。
$ sudo apt-get remove -–purge nvidia*
$ sudo apt-get autoremove
禁用nouveau
可以先用lsmod | grep nouveau
查看一下是否已经加载了 nouveau 驱动模块,如果没有输出,则说明没有加载。我在安装过程中检查发现这个模块并没有加载,因此这一步骤就跳过了。
禁用Security Boot
进入电脑的BIOS,把 Security Boot 设置为 Disabled。如果没有禁用secure boot,可能会导致Nvidia驱动安装不正常。BIOS在开机之前的界面(一般长按F12)进入。
找出本机显卡的型号
如果打开系统设置的设备详情页面,大概率会看到图形一栏显示的是llvmpipexxxxxx,因此我们需要通过其它方式获取显卡的具体型号。打开终端,输入lspci | grep -i nvidia
显示总线上包含名为NVIDIA的设备。
不出意外会得到这样的结果,这说明显卡已经正确地安装在主板上了,但事实上它仍然不是显卡真正的型号,我们需要在PCI devices这个网站上输入编号2204,查询这个设备的具体型号。
我们成功拿到了显卡型号后,接下来就是前往英伟达官方网站按照显卡的型号去下载对应的驱动了。
点击搜索,跳转到下载页面,可以再次检查驱动文件支持的设备中是否包含了自己的显卡(下图没截完)。
安装驱动
- 为下载好的安装脚本增加执行权限
sudo chmod a+x NVIDIA-Linux-x86_64-470.94.run
- 安装编译环境
sudo apt-get install build-essential
- 运行安装脚本
sudo sh ./NVIDIA-Linux-x86_64-470.94.run
运行安装脚本后有几个安装的选项,根据实际情况选择yes/no即可,我在安装过程中全部都选择了yes
检查是否安装成功
终端输入nvidia-smi
查看是否输出监控界面
终端输入nvidia-smi -L
查看是否输出显卡型号
重启后系统设置中设备信息的图形一栏可以正确显示显卡型号
遇到的问题
安装驱动重启后电脑变得异常卡顿,登录界面选择用户输入密码后又回到选择用户的界面,无法进入桌面
解决方法
- 观察登录按钮旁是否有一个小齿轮,有的话选择其他桌面尝试进入,如果不行,就键盘按下ctrl+alt+f1进入命令行界面
- 卸载驱动并重装
$ sudo sh ./NVIDIA-Linux-x86_64-470.94.run --uninstall
$ sudo apt-get remove -–purge nvidia*
$ sudo apt-get autoremove
这个问题出现的原因可能是因为在安装驱动的过程中修改了一些关于桌面的配置文件,在选择安装选项过程中最好仔细阅读每个选项的内容,不要一路无脑yes。
参考文章
https://blog.csdn.net/distant1219/article/details/118370133
https://blog.csdn.net/wangyjfrecky/article/details/84029668
https://zhuanlan.zhihu.com/p/446904871
https://blog.csdn.net/bingxingshengge/article/details/122440536