技术文档丨如何为Apollo安装低时延/实时内核

本文档描述了在Ubuntu 18.04上安装低时延(Low-Latency) 或实时 (Realtime)内核及Nvidia驱动的步骤。

  ENJOY THE FOLLOWING  

仅在实车上运行Apollo软件栈才需要低时延或实时内核。如果您的目的只是基于Apollo平台开发/测试您的算法,或者运行仿真软件(如Lgsvl模拟器),则可能您根本不需要安 装这里描述的低时延或实时内核。

Ubuntu软件仓库中的低时延内核足以为实车上运行Apollo提供低(或者零)时延。在其 内核配置中,任务抢占式(PREEMPT)优化是开启了的,时延可低至0.1毫秒。

下面是安装Ubuntu低时延内核的步骤:

1. 安装最新的低时延内核及其头文件。

1sudo apt-get update
2sudo apt-get install linux-image-$(uname -r)-lowlatency linux-headers-$(uname -r)-lowlatency

<左右滑动以查看完整代码>

注意:

如果在执行了sudo apt-get update后通过apt list --upgradable查看有新版本内核 ,请将上述命令中的$(uname -r)改为Ubuntu软件仓库中最新的内核版本号。截至本 文写作时(2020 年 12 月 2 日),Ubuntu软件仓库中的最新内核是5.4.0-56。

2. 重启系统以启动低时延内核。

sudo reboot

<左右滑动以查看完整代码>

请按照ROS2:构建实时Linux中描述的步骤来构建和安装最新的稳定版实时内核。虽然该文档是按照Ubuntu 20.04来讲的,但其中的步骤完全适用于Ubuntu 18.04。

对Ubuntu低时延内核而言,安装Nvidia驱动的步骤比较简单:

1. 从CUDA Toolkit下载页下载并安装Nvidia最新驱动。

在选择安装类型(Installer Type)时,建议选择本地安装(deb[local]) 或者网络安装(deb[network]) 模式。

注意:

可能需要注册并签署CUDA最终用户使用协议(EULA)才可以下载Nvidia驱动及CUDA安装包。

比如,如下是在x86_64架构的Ubuntu 18.04.5上通过本地安装Deb软件包的方式 安装Nvidia驱动:

1wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1804/x86_64/cuda-ubuntu1804.pin
2sudo mv cuda-ubuntu1804.pin /etc/apt/preferences.d/cuda-repository-pin-600
3wget https://developer.download.nvidia.com/compute/cuda/11.1.1/local_installers/cuda-repo-ubuntu1804-11-1-local_11.1.1-455.32.00-1_amd64.deb
4sudo dpkg -i cuda-repo-ubuntu1804-11-1-local_11.1.1-455.32.00-1_amd64.deb
5sudo apt-key add /var/cuda-repo-ubuntu1804-11-1-local/7fa2af80.pub
6sudo apt-get update
7sudo apt-get install nvidia-driver-455

<左右滑动以查看完整代码>

注意:

nvidia-driver-XXX的数字应该与CUDA本地安装包中的数字一致。本例中是455。

2. 重启系统。

3. 运行nvidia-smi检查是否生效。

请先按照低时延内核Nvidia驱动的安装方法完成 Nvidia 驱动的初步安装。请注意,由于 Nvidia 驱动不支持实时内核,所以在上面执行sudo apt-get install nvidia-driver-455的步骤时会报如下错误消息:

 1The kernel you are installing for is a PREEMPT_RT kernel! 2 3The NVIDIA driver does not support real-time kernels. If you 4are using a stock distribution kernel, please install 5a variant of this kernel that does not have the PREEMPT_RT 6patch set applied; if this is a custom kernel, please 7install a standard Linux kernel.  Then try installing the 8NVIDIA kernel module again. 910*** Failed PREEMPT_RT sanity check. Bailing out! ***

<左右滑动以查看完整代码>

我们可以通过在编译Nvidia驱动的时候设置 IGNORE_PREEMPT_RT_PRESENCE=1 来绕过这 一点。

步骤如下:

1. 运行如下命令来编译Nvidia驱动:

1# 切换到Nvidia 驱动的源码目录
2cd '$(dpkg -L nvidia-kernel-source-455 | grep -m 1 'nvidia-drm' | xargs dirname)'
3
4# 设置 IGNORE_PREEMPT_RT_PRESENCE=1 来编译Nvidia 驱动
5sudo env NV_VERBOSE=1 \
6make -j8 NV_EXCLUDE_BUILD_MODULES='' \
7KERNEL_UNAME=$(uname -r) \
8IGNORE_XEN_PRESENCE=1 \
9IGNORE_CC_MISMATCH=1 \
10IGNORE_PREEMPT_RT_PRESENCE=1 \
11SYSSRC=/lib/modules/$(uname -r)/build \
12LD=/usr/bin/ld.bfd \
13modules
14
15sudo mv *.ko /lib/modules/$(uname -r)/updates/dkms/
16sudo depmod -a

<左右滑动以查看完整代码>

2. 重启系统。

3. 运行nvidia-smi来检查Nvidia驱动是否正常工作。

如有需要,可按照《ESD-CAN 安装说明》(链接见文末)来编译安装ESD-CAN驱动。

*《ESD-CAN 安装说明》

https://github.com/ApolloAuto/apollo-kernel/blob/master/linux/ESDCAN-README.md

以上是“如何为Apollo安装低时延/实时内核”的全部内容,更多话题讨论、技术交流可以扫描下方二维码添加『Apollo小哥哥』为好友,进开发者交流群。

(0)

相关推荐

  • Linux-Windows10双系统安装

    在Windows10系统上搭建完深度学习环境用于无人驾驶中的目标检测后,想在Linux系统上再尝试一下.由于VMware虚拟机安装的Linux系统不支持物理硬件,所以需要一步到位安装一个双系统.本文介 ...

  • Ubuntu 18.04上安装cuda

    一.准备工作 参照官网上资料,进行准备工作 1. 验证自己的电脑是否有一个可以支持CUDA的GPU $ lspci | grep -i nvidia 我的显示为Tesla P800 if it is ...

  • (9条消息) WSL2 安装教程 CUDA 配置 自测已成功

    JichaoZhao2020-07-28 17:59:18 分类专栏:Linux文章标签:cudatensorflowaptgpu深度学习 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA ...

  • Ubuntu:Ubuntu下安装Anaconda和Tensorflow的简介、入门、安装流程之详细攻略

    Ubuntu:Ubuntu下安装Anaconda和Tensorflow的简介.入门.安装流程之详细攻略 相关文章 Ubuntu:Ubuntu下安装Anaconda和Tensorflow的简介.入门.安 ...

  • 5分钟搭建强大又好用的深度学习环境

    为深度学习项目建立一个良好的环境不是一件容易的任务.因为需要处理的事情太多了:库必须匹配特定的版本,整个环境需要可以复制到其他机器上,所有东西都需要能够机器中的所有驱动程序通信.这意味着你需要为你的N ...

  • Ubuntu16.04下nvidia驱动+cuda+cudnn+nccl安装

    前言 如果出现装了驱动进不了桌面的情况(下面有解决方法),然后重装了两遍nvidia驱动还进不去,重装Ubuntu是最省时间的做法! 以下的安装流程从网上各个博客进行收集来的,试了一遍可以完全安装成功 ...

  • 2021年 Windows10 环境下使用WSL和Docker 配置深度学习环境

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 Windows10 环境下使用WSL2和Docker 配置深度学习环境以及踩坑记录 (使用 Ubuntu 18.04+ Cuda) 前 ...

  • Ubuntu18.04安装Nvidia Isaac

    对于这个机器人开发平台,大家知道不多,资料很少,所以这里我只能自己安装. 人家说,这个东西不支持 但是我不信 这个Isaac是在ROS2的基础上,加入了Nvidia大量的计算技术,是一种集大成的环境. ...

  • Ubuntu18.04安装CUDA开发工具

    我最近购入了一个TX1,然后安装系统的话是要用一个Ubuntu下 的工具安装,然后体验了一下这个工具,感觉真的很不错. 虽然是里面可以直接把主机端的开发环境安装好,但是也有毛病,后面的那个编辑器一打开 ...

  • 10份在MATLAB-EXPO-2021用户大会上自动驾驶开发的技术文档分享

    跨学科团队可以使用MATLAB和Simulink作为通用集成环境,贯穿整个自动驾驶系统开发工作流程.从系统工程到平台建模.环境仿真和自主算法设计与系统验证,基于模型的设计可以帮助我们在自动驾驶车辆上路 ...

  • FANUC PMC轴刀库调试 技术文档

    PMC轴控制简介: PMC 轴控制是指从 CNC 的管理中分离出来,由 PMC 信号直接进行控制,轴的运动方式.位移大小.速度大小不由 NC 程序编程得到,而在 PMC 中通过给 G 地址赋值进行定义 ...

  • 技术文档 | 二次规划(QP)样条路径

    Apollo的Planning分为参考线平滑.决策.路径规划.速度规划等部分. 从整体上来说,规划模块的架构分为两个部分:一部分负责对数据的监听.获取和预处理:另一部分负责管理各个优化模块.数据进入后 ...

  • Arm技术文档全集合

    在这里可以下载到所有Arm技术方面的文档,我们已经为大家归类好资料,方便大家学习!持续更新中,大家可点击右下角的收藏图标收藏本帖,如果大家有补充,欢迎评论~ Cortex-A系列处理器 处理器Cort ...

  • 关于Tesla内部技术文档Model3电量和配置的困惑

    最近TMC有网友发了两张Tesla内部技术文档,主要是关于Model3长续航版和标准版电量和配置,让人非常困惑,具体见下. 从图中可以看出,M3共有两种可选电池包,分别为长续航版M3的电量为74kWh ...

  • CCNP技术文档之EIGRP 默认网络传递

    CCNP技术文档之EIGRP 默认网络传递

  • CCNP技术文档之:EIGRP全解析

    思科认证是由网络领域著名的厂商-Cisco公司推出的,是互联网领域的国际权威认证.  CCNP(Cisco Certified Network Professional)是Cisco 职业认证体系中 ...

  • CCNP技术文档之OSPF全解析(上)

    思科认证是由网络领域著名的厂商-Cisco公司推出的,是互联网领域的国际权威认证.  CCNP(Cisco Certified Network Professional)是Cisco 职业认证体系中 ...

  • 这个神器可以提取你代码中的关键信息生成技术文档(附下载链接)

    一.前言 以前,我们学C语言的时候,多多少少都查过一些标准库函数吧.这里介绍查找C语言的标准库函数的两种方法:一种方法是直接到http://www.cplusplus.com这个网站上去查看: 这里覆 ...