费了不少功夫总算配置好DeepStream 4.0.2并成功运行自带Demo,记录配置过程如下。隔了几天有些细节记得不太清楚了可能与实际有出入,如果遇到问题请先尝试自行查找解决方法。
DeepStream 4.0.2配置全过程
安装Ubuntu 18.04
首先确认所用的电脑满足DeepStream的配置要求。按Win+R键,输入msinfo32回车,确认BIOS模式是UEFI。如电脑已预装UEFI启动模式的Windows 10,则按以下步骤安装Ubuntu18.04。如电脑未安装系统,直接百度Ubuntu 18.04安装。
准备工作
制作Ubuntu 18.04启动盘
下载映像后,拿一个不用的U盘制作启动盘,制作启动盘可参考https://tutorials.ubuntu.com/tutorial/tutorial-create-a-usb-stick-on-windows。
写此文时这里有Desktop版Ubuntu 18.04.3 LTS的ISO映像可供下载。
分区
在Windows 10的磁盘管理中分出一个至少50G的空闲分区以供安装Ubuntu。
安装
首先,进入BIOS关闭Secure Boot。
把启动盘插入电脑。
从启动盘启动:
- 在开机时进入BIOS选择启动盘作为启动设备。
- 在Windows 10下点击开始按钮,点击电源键,按住Shift键点击重启,点击选择设备,点击启动盘。
进入启动盘系统:
- 如果电脑是用的是核显+独显,从启动盘启动后,选中Try Ubuntu without installing,按E键,把
quiet splash
修改为quiet splash nomodeset
,按F10进入系统。- 如果电脑只用独显,从启动盘启动后,选中Try Ubuntu without installing按回车进入系统。如果进系统卡住则按上面核显+独显的情况操作。
为避免安装过程中因下载过慢而卡住,进入系统后,先确认已断开网络。然后打开Install Ubuntu。
进入安装程序后,首先选择语言。可以按需选择中文或英文。我选了中文(简体)所以接下来的说明都基于中文。
选择好键盘布局后会提示连接到wi-fi网络,这里选择我现在不想链接。
更新和其他软件页,按需选择正常安装或最小安装,不要选中为图形或无线硬件以及其它媒体格式安装第三方软件。
到了安装类型这里,这一步十分重要,为了减少不必要的麻烦,一定要选择其他选项,再进入下一步。
在设备列表这里,找到和你之前在Windows 10下分出的分区大小相同的那个空闲设备,选中它。 在进行以下操作前先确认已经准确无误地选中了之前分出的空闲分区。 然后点击+按钮出现创建分区,大小建议设为512MB,类型选逻辑分区,位置选空间起始位置,用于选Ext4日志文件系统,挂载点选/boot。完成后该空闲设备大小变为原大小-512MB。然后按相同的操作在这个空闲设备依次创建交换空间(可选,如果觉得电脑的内存足够可以不创建)、/和/home的分区。创建的分区如下表所示:
建议大小 | 类型 | 位置 | 用于 | 挂载点 |
---|---|---|---|---|
512MB | 逻辑分区 | 空间起始位置 | Ext4日志文件系统 | /boot |
内存大小的一半 | 逻辑分区 | 空间起始位置 | 交换空间 | |
25GB及以上 | 逻辑分区 | 空间起始位置 | Ext4日志文件系统 | / |
所选空闲设备剩余的空间 | 逻辑分区 | 空间起始位置 | Ext4日志文件系统 | /home |
创建好Ubuntu的分区后,这一步很关键:安装启动引导器的设备要选择 /boot 分区对应的那个设备。确认无误 后再点击继续安装。将改动写入磁盘,点继续。
地方就点自己所在的位置,中国大陆选定Shanghai就可以,点继续。
设置好账号和密码,点继续。
等待安装完成,点重启。重启后拔掉启动盘。
安装独显驱动
重启后电脑应该会自动进入GNU GRUB页面,如果还是直接进入Windows 10,可以通过以下方式进入这个页面:
- 在开机时进入BIOS选择Ubuntu作为启动设备。
- 在Windows 10下点击开始按钮,点击电源键,按住Shift键点击重启,点击选择设备,点击Ubuntu。
进入Ubuntu
- 如果电脑是用的是核显+独显,从启动盘启动后,选中Ubuntu 高级选项,回车,选中第一个带(recovery mode)的选项,回车。选中resume按回车进入系统。
- 如果电脑只用独显,从启动盘启动后,选中Ubuntu按回车进入系统。如果进系统卡住则按上面核显+独显的情况操作。
改为使用NVIDIA驱动
登录进入桌面,先确认已连上网络。点击左下角“显示应用程序”图表,点击软件和更新。在软件和更新里,点开附加驱动选项卡,选中使用NVIDIA driver,点击应用更改,系统会自动下载并安装所选驱动。操作完成后重启,选中Ubuntu按回车进入系统,登录后应该就能正常进入桌面了。再次打开软件和更新里的附加驱动选项卡,并在终端执行nvidia-settings
和nvidia-smi
,以确认所选NVIDIA驱动正常工作。
安装CUDA 10.1
在这里查看如何下载并运行CUDA 10.1的runfile文件。
运行下载的run文件,首先在EULA页面输入accept回车,进入如下页面:
因为之前已经安装过驱动,所以我们在高亮Driver条目时按回车,取消选中驱动,如下图所示:
然后选择Install,按回车,等待安装完成。
安装完成后,需要配置环境变量。终端执行sudo gedit ~/.bashrc
,在文件末尾添加如下内容:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export CUDA_HOME=/usr/local/cuda
保存并退出后,在终端执行source ~/.bashrc
以使配置生效。
在终端执行cat /usr/local/cuda/version.txt
和nvcc -V
以确认CUDA 10.1安装成功。
安装cuDNN
点开这里按照官方文档的指引下载安装即可。
安装GStreamer
在终端执行
sudo apt update
sudo apt install libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav gstreamer1.0-doc gstreamer1.0-tools gstreamer1.0-x gstreamer1.0-alsa gstreamer1.0-gl gstreamer1.0-gtk3 gstreamer1.0-qt5 gstreamer1.0-pulseaudio
在终端执行dpkg -l | grep gstreamer
验证安装:
安装TensorRT 6
打开这里下载对应Ubuntu 18.04和CUDA 10.1的TensorRT 6.0.1.5的Tar包(需登录)。我下载的是TensorRT-6.0.1.5.Ubuntu-18.04.x86_64-gnu.cuda-10.1.cudnn7.6.tar.gz。
把下载到的文件放到一个路径不含空格和汉字的目录里,定位到该目录(我用的目录是/home/csj430/NVIDIA/TensorRT),终端执行tar xzvf TensorRT-6.0.1.5.Ubuntu-18.04.x86_64-gnu.cuda-10.1.cudnn7.6.tar.gz
。完成后执行sudo gedit ~/.bashrc
,把export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
改为export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/home/csj430/NVIDIA/TensorRT/TensorRT-6.0.1.5/lib:$LD_LIBRARY_PATH
,保存并退出。执行source ~/.bashrc
。再执行:
sudo apt install python3-pip
cd TensorRT-6.0.1.5/python/
sudo -H pip3 install tensorrt-6.0.1.5-cp36-none-linux_x86_64.whl
cd ../uff
sudo -H pip3 install uff-0.6.5-py2.py3-none-any.whl
which convert-to-uff
cd ../graphsurgeon
sudo -H pip3 install graphsurgeon-0.4.1-py2.py3-none-any.whl
若pip3下载慢或下载失败,可在pip3 install
后加参数-i https://pypi.tuna.tsinghua.edu.cn/simple
。
安装其他依赖
执行:
sudo apt install \
libssl1.0.0 \
libgstrtspserver-1.0-0 \
libjansson4
安装librdkafka
执行:
sudo ln -s /usr/bin/python3 /usr/bin/python
sudo apt install git
git clone https://github.com/edenhill/librdkafka.git
cd librdkafka/
git reset --hard 7101c2310341ab3f4675fc565f64f0967e135a6a
./configure
make
sudo make install
sudo mkdir -p /opt/nvidia/deepstream/deepstream-4.0/lib
sudo cp /usr/local/lib/librdkafka* /opt/nvidia/deepstream/deepstream-4.0/lib
安装DeepStream SDK 4.0.2
在https://developer.nvidia.com/deepstream-sdk找到Tesla版DeepStream SDK 4.0.2的tbz2包下载(需登录)。定位到文件所在目录,执行:
tar -xpvf deepstream_sdk_v4.0.2_x86_64.tbz2
cd deepstream_sdk_v4.0.2_x86_64
sudo tar -xvpf binaries.tbz2 -C /
sudo ./install.sh
现在你可以尝试运行DeepStream的demo了,在我的电脑上是执行/opt/nvidia/deepstream/deepstream-4.0/bin/deepstream-app -c /home/csj430/NVIDIA/DeepStream/deepstream_sdk_v4.0.2_x86_64/samples/configs/deepstream-app/source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt
。
参考资料
https://blog.csdn.net/mwz1tn/article/details/86588633
https://blog.csdn.net/qq_43241311/article/details/93594195
https://blog.csdn.net/hancoder/article/details/86634415
https://www.cnblogs.com/walker-lin/p/11528243.html