Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用

Table of Contents

文档内容简要说明

文档修订记录

正文

为什么选择Deepin

使用的系统版本

机型配置

制作启动盘

对分区进行调整,并设置BIOS

开始正式安装

双显卡安装时更改grub启动命令行(Nvidia显卡用户)

更改默认启动命令行

命令行小知识

使用显卡驱动管理器安装intel显卡驱动并切换

安装Nvidia闭源驱动及Nvidia-prime

 

Vim的基本使用

禁用nouveau

下载run文件安装nvidia驱动

安装nvidia-prime

能控制屏幕亮度的快捷键

高分屏-输入法太小

Git安装

Oh-My-Zsh一个舒服的终端

ohmyzsh的安装

几个终端插件

wps-官网下载

qq轻聊版

Wechat可以正常使用

网课必备-zoom

Docker的安装

Docker中的基本概念

导入并安装nvidia-container-toolkit

添加libnvidia-ml.so到环境变量

Apollo

在docker中安装有gui的ros


文档内容简要说明

记录个人配置deepin的完整过程

关键词:双系统、双显卡(Nvidia)配置、高分屏配置

本着Linux的开源精神,本文内容只是把找到零碎文章拷贝额不借鉴过来,整合成一篇比较流畅的指南,原文地址在文段开始之前给出link

文档修订记录

2020.05.01

创建文档及目录——Flanker

2020.05.02

完成了包括显卡驱动安装,日常软件安装的撰写——Flanker

2020.05.05

终端美化,docker安装的撰写——Flanker

2020.05.30

搬运至CSDN,什么时候搞完嵌入式大作业什么时候更docker-ROS——Flanker

2020.05.13

冲一波Apollo,蓝鹅编译出现了问题——Flanker

2020.07.09

搁置apollo,在docker下配合VNC,运行可视化ROS平台——Flanker

正文

为什么选择Deepin

  • 傻瓜式的U盘制作工具
  • Linux平台最傻瓜的安装器: 不需要动分区工具、3步、5分钟装完系统
  • 基于Debian滚动更新, 每年发布3~4个版本, 独立维护内核和软件仓(Ubuntu也是基于Debian)
  • 独立开发了深度桌面环境:许多发行版都有人移植deepin桌面过去,因为好看
  • 第一款linux产品质量级别的深度商店: 一键安装大部分精品应用
  • 开发了DeepinWine以完美支持QQ、迅雷等50多款Windows应用(不过TIM最近除了点问题)
  • Linux平台最好用的深度截图工具, 功能堪比QQ截图
  • 可以监控进程网络、磁盘实时信息的深度系统监视器
  • 和国内厂商合作开发了:搜狗输入法、有道词典、网易云音乐

安装过几次manjaro,但是显卡装爆过几次,也卡过回滚式更新出不来

用wubi装过Ubuntu,也比较方便,显卡驱动装爆了(又是Nvidia)

最近一次deepin成功,其他功能还在继续探索

不过对于我们而言,重要的是能不能满足工程需求,这一点我还在摸索,并在适当时候继续更新本文

 

使用的系统版本

最新的deepin-V20-beta:V20beta-release

为啥用了新的版本?或许是因为基于更新版本的Debian吧(其实是因为好看)

机型配置

作者的机型是XPS-9560,i7-7700HQ,16+2T,GTX1050,4k,在win10基础上进行安装。

可以在网站上查找自己的机型,看开发人员对其兼容性的测试结果,再考虑是否使用:兼容性良好的笔记本型号

制作启动盘

启动盘制作教程

运行deepin-boot-maker.exe文件后弹出深度启动盘制作工具分别点击光盘和U盘,选择对应的镜像和U盘。此处光盘就选刚刚在官网下载的深度系统(Deepin Linux)镜像,而U盘则选择已插入电脑的准备用于做启动盘的U盘。

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第1张图片

深度启动盘制作工具界面

选择后点开始便可开始制作启动盘,非常简单。建议在开始前勾选格式化U盘。

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第2张图片

深度启动盘制作工具写入镜像

大约两三分钟的时间,深度系统(Deepin Linux)的系统安装U盘就已经制作妥当了。

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第3张图片

深度启动盘制作工具写入镜像成功

这里是制作工具的下载地址:启动盘制作工具下载地址

 

对分区进行调整,并设置BIOS

在开始安装前,打开disk manager,分隔出两个新分区:一个8G的linux exchange格式(作为交换分区),一个64G~inf.G的ext4格式的分区(作为根目录系统安装),虽然没有交换分区也可以正常安装使用,但是一旦占满内存系统就会卡死。

 

对BIOS的设置进行调整:开机按f12(每个品牌不一样,需自己查询),选择进入bios设置:

  • 关闭secure boot
  • 检查磁盘模式:若为raid,需把raid切换为achi,这会有一个较长的转换时间。
  • 使用UEFI进行启动

 

开始正式安装

设置之后,再次进入BIOS设置界面,选择启动盘U盘进行启动(当然要插着优盘启动咯),进入:deepin正式安装

进入安装界面,选择需要安装的语言(其实我建议英文,网上大部分参考代码都是英文)。

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第4张图片

选择文件格式、挂载点、分配空间等。选择手动安装,选择对应分区(自动没用过,似乎会把整个硬盘格式化?(雾))

这里就要

挂载点 挂载点中文名 文件系统 大小
/ 根分区 EXT4(推荐) 最少64G
swap 交换分区 不设置 4G内存以下分配2G,4G以上可不分配

点击 安装

在弹出的确认安装窗口中,点击 确定

将开始自动安装深度操作系统。

完成后选择立即体验,这时候会重启,注意立即拔出优盘!

双显卡安装时更改grub启动命令行(Nvidia显卡用户)

重启后会进入deepin的grub界面(如下图),注意,此时应按e进入启动命令行。

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第5张图片

 

有关双显卡启动黑屏卡logo的解决办法

进入引导文本编辑页面

找到类似如下内容的一行

linux    /boot/vmlinuz-4.9.0-deepin13-amd64 root=UUID=57d9aa6c-2452-4374-b4b8-bbd81a2975c2 ro splash quiet

在 quiet 的后面空一格 加入 acpi_osi=! acpi="windows 2009"

加好以后,按F10保存开机

这样应该就可以进入系统了(设置时区,帐号)

进入系统之后,开始设置系统

更改默认启动命令行

命令行小知识

很多操作需要管理员模式。为了让某些指令以管理员权限执行,需要在行首加“sudo”

sudo xxxxxx

并输入密码

在命令行中粘贴代码的快捷键为Ctrl+Shift+V

停止正在执行的操作Ctrl+Z

 

先说这么多,暂时够用了

然后打开终端(快捷键Ctrl+Alt+T),依次输入:

sudo gedit /boot/grub/grub.cfg

接着,在弹出的文本页面里,再次找到

linux        /boot/vmlinuz-4.9.0-deepin13-amd64 root=UUID=57d9aa6c-2452-4374-b4b8-bbd81a2975c2 ro splash quiet

同样的在 quiet 后面空一格,加入 acpi_osi=! acpi="windows 2009"

保存,关闭

接着,在终端里输入

sudo gedit /etc/default/grub

在弹出的文本页面的末尾加入

GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT "'acpi_osi=! acpi_osi="Windows 2009"'

这样以后就可以不用每次开机都重复设置了

 

使用显卡驱动管理器安装intel显卡驱动并切换

当然解决的根本办法还是装好对应的驱动,这里我们先安装集显的驱动:

可以在软件应用市场下载

深度显卡驱动管理器

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第6张图片

选择使用英特尔驱动,会自动识别进行安装。

不过,这个时候系统仍然不能识别本人键盘的屏幕亮度调节宏命令。但是在系统设置中可以调节屏幕亮度,先调暗一点,装完闭源驱动后再来折腾零碎小事。

安装Nvidia闭源驱动及Nvidia-prime

接下来安装Nvidia驱动。因为Nvidia驱动闭源,所以系统不能直接安装,开源驱动nouveau又鶸,所以需要这些冗杂的步骤。

 

Vim的基本使用

这里插播一条vim编辑器的使用教程。一般编辑文本文件有两种编辑器,一种是gedit,一种是vim,vim的使用没有gedit那么直观,是嵌入在命令行中的。

具体学习请跳转网址,这边只说这个情形下咋用:

用户刚刚启动 vi/vim,便进入了命令模式。按下i,切换到输入模式。然后将需要输入的内容输入进去,就像正常编辑文本一样操作即可。当编辑完文本之后,按下esc,退出输入模式,切换到命令模式输入:wq即可保存推出vim(在命令模式下按下:(英文冒号)为进入底线命令模式,其后w 保存文件q 退出程序)

禁用nouveau

笔记本双显卡安装NVIDIA闭源驱动

新建一个黑名单让系统启动的时候不去加载开源驱动

sudo vim /etc/modprobe.d/blacklist-nouveau.conf

写入以下内容:

blacklist nouveau
  options nouveau modeset=0

按ESC键,输入 :wq 保存(注意有个冒号)

重新生成 kernel initramfs:

sudo update-initramfs -u

然后重启

重新进入系统之后输入以下代码检查是否禁用成功

lsmod | grep nouveau

如果没有输出内容,证明禁用成功了。

下载run文件安装nvidia驱动

//其实网上也有使用命令行直接sudo自动安装的,但是我给装爆了,所以建议还是用tty3进行安装

确认显卡型号 使用命令

lspci | egrep "VGA|3D"

红框部分就是你的显卡型号,然后去NVIDIA官方下载对应的驱动

GeForce xx series 是台式机显卡驱动

GeForce xx series (Notebooks) 是笔记本驱动

别下错咯。

比如我这台机器是GTX1050,就按照下图这样设置

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第7张图片

下载下来的文件是NVIDIA-Linux-x86_64-xxx.xx.run格式的

按CTRL+ALT+F3进入TTY命令行模式,帐号密码是你登陆系统的帐号和密码。

进入之后先检查之前时候安装过闭源驱动和大黄蜂方案,如果有最好卸载掉。

nvidia-smi

没输出内容证明没有安装过闭源驱动

sudo apt remove --purge nvidia* bumblebee*

安装过闭源驱动用上述方法无法卸载的,尝试

nvidia-uninstall

确认卸载完成之后,下面开始安装

先给安装包赋予运行权限

sudo chmod +x ~/Download/NVIDIA-Linux-x86_64-440.82.run

接着 切换到 运行级别3 来运行驱动安装程序(不切换好像安装不了,进安装界面就直接error

sudo init 3

运行驱动安装程序

sudo sh ~/Download/NVIDIA-Linux-x86_64-440.82.run

安装里的选项里,只有yes和no的 选yes ,有3个选项的选择中间那个over 的,最后进度条走完那个弹窗的2个选项 选 No,到这一步就算安装完成了,不过不要重启还需要配置,这时候重启可能会黑屏

配置启动脚本

新建一个display_setup.sh

sudo vim /etc/lightdm/display_setup.sh

内容如下

#!/bin/sh
xrandr --setprovideroutputsource modesetting NVIDIA-0
xrandr --auto

然后赋予权限

sudo chmod +x /etc/lightdm/display_setup.sh

然后在lightdm里配置启用这个脚本

sudo vim /etc/lightdm/lightdm.conf

找到 display-setup-script这一行,去掉前面的注释,将display_setup.sh这个目录填进去

display-setup-script=/etc/lightdm/display_setup.sh

做完这些操作就可以重启了。

如果发现重启之后无法进入桌面,按CTRL+ALT+F3进入TTY命令行模式,可以试试排错,一般来说不能进入桌面,应该是lightdm.service出了问题,可以用

systemctl status lightdm.service

来查看lightdm的状态。

还可以尝试看看日志来确认错误,一般出错的可能在ligthdm和xorg连接上,可以查看x-0.log这个文件来看看问题处在哪里。

安装nvidia-prime

 一个可以尝试的Nvidia Prime方案

dalao说用这个办法不保证成功,但是bumble-bee又出名地不好用,那就试试叭

要求:

turing架构的GPU(真自动切换,即不用时会自动关闭N卡),非turing架构(假自动切换,你会发现独显一直跑着xorg,以此来实现“自动切换”,目前本人已知pascal,maxwell架构可以使用该方案,欢迎大家测试)

NVIDIA版本:>=435.17(beta源已符合要求)

Xorg-server版本:>=1.20.6-1(beta源低于这个版本:1.20.4)

由于Xorg-server版本不符合要求,接下来需要添加源,终端执行:

sudo nano /etc/apt/sources.list.d/debian.list

然后添加进如下内容:

deb http://mirrors.ustc.edu.cn/debian/ unstable main contrib non-free

保存并退出,为了防止依赖关系混乱,还需要再执行:

sudo nano /etc/apt/apt.conf

 往里面加入如下内容:

APT::Default-Release "apricot";         #这么一来,除非你自己指定使用unstable源安装软件,否则apt是不会用的

保存并退出。

接下来刷新你的源列表:

sudo apt update

升级Xorg-server:

sudo apt -t unstable install xserver-xorg xserver-xorg-core

升级完成后,还没完。安装这个包,使用dpkg -i:

sudo dpkg -i nvidia-prime.deb

下载并解压这个包,解压得到.deb包再安装(不是改后缀名!我把.deb包用tar命令给压缩了):

下载nvidia-prime.tar.gz

 

然后注销,重新登录,打开nvidia-settings,如果你是像下图那样显示,证明Prime已经在运作,大功告成。你可能会遇到一个提示,说要用nvidia-xconfig创建文件,不用管它。

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第8张图片

如果因为某种原因,没有像上图那样显示,那么你需要在/etc/X11/xorg.conf中显式指定(参见Arch wiki):

sudo nano /etc/X11/xorg.conf

添加如下内容:

Section "Device"
  Identifier "iGPU"
  Driver "modesetting"
EndSection

Section "Screen"
  Identifier "iGPU"
  Device "iGPU"
EndSection

Section "Device"
  Identifier "dGPU"
  Driver "nvidia"
EndSection

注销重登,Prime应该会运作了。如果还不行,请在配置文件中添加BUSID参数,具体方法参考Arch wiki。

有些应用会自动调用你的独显运行,比如虚幻4,如果没有,这么做:

prime-run command        #使用prime-run运行软件

以Blender为例:

prime-run blender

如此就很快乐地完成了Nvidia驱动以及prime的安装!

能控制屏幕亮度的快捷键

之前就有一个问题,我的键盘宏命令不能控制屏幕亮度了,我想要解决它

#!/bin/sh

if [ $# -eq 0 ]
then
echo
exit
else
step=$*
display=`xrandr --verbose | grep connected | grep -v disconnected | awk '{print $1}' `
bright=`xrandr --verbose | grep Brightness | tr -d '   Brightness: ' `
s=`echo "scale=2;$bright+$step"|bc`
xrandr --output $display --brightness $s
fi

把上面的脚本内容复制到一个文本文件里,改名成bright.sh放到一个好记的目录(比如我直接放在home目录下:/home/bright.sh),然后在下图界面添加自定义快捷键:

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第9张图片

#增加亮度:

sh bright.sh 0.1 #必须给定step值!!
#降低亮度:

sh bright.sh -0.1

然后分别设置组合快捷键就ok了

可以自行调整变化值,有效位数是小数点后两位

这里设置的command也可以在命令行中执行,可以在命令行里先试一下

不过这是更改屏幕输出的明度,并不是DC调光,系统display中的亮度条并没有变化

 

xdotool方法

这里有DC调光的方法,不过本人在快捷键方式中,command不能识别,只能在终端中使用。

#调低亮度

xdotool key XF86MonBrightnessDown
#调高亮度

xdotool key XF86MonBrightnessUp

高分屏-输入法太小

默认安装的输入法其实就挺好用了,缺点……么得象形文字算马(

使用默认输入法(ctrl+space切换),设置中调整字号即可:

在侧边栏中右键输入法-configure-Appearence

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第10张图片

Font size更改至30(改一下用一下输入法,调到合适大小即可)

 

Git安装

sudo apt-get install git

若缺乏依赖项:

sudo apt -f install

Oh-My-Zsh一个舒服的终端

ohmyzsh的安装

sudo apt install zsh curl
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

或许会遇到这个问题:(域名被污染)

图片.png

修改hosts

sudo vim /etc/hosts
#添加如下内容:

199.232.68.133 raw.githubusercontent.com

重新执行命令即可,但是下载会比较慢。

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第11张图片

安装成功

不过有的图标会出现乱码,在更改主题之前,先下载兼容的字体包

sudo apt-get install fonts-powerline 

然后更改主题

# 打开配置文件
sudo gedit ~/.zshrc 
# 找到并修改配置文件中的ZSH_THEME="XXX",XXX为默认主题,寻找一个你喜欢的主题名字替换引号中间部分即可[我是用的是agnoster]
ZSH_THEME="agnoster"
#保存退出后执行使生效
source ~/.zshrc
#重启即可生效

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第12张图片

右上角选项可以在“switch theme”中更改主题(配色),在settings中更改透明度以及字体。

几个终端插件

接下来装一些比较好用的插件,例如高亮以及自动补全

下载

# 首先跳转当前目录为插件目录
cd ~/.og-my-zsh/plugins
 
# 下载自动补全插件zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions
 
# 下载语法高亮插件zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git

配置使用插件

# 1.自动补全插件配置
    # 打开zsh配置文件  
    sudo gedit ~/.zshrc
    # 找到plugins=(git)在git后面加个空格填写上zsh-autosuggestions即可,大部分插件都是这么配置
    plugins=(git zsh-autosuggestions)
# 2.语法高亮插件配置
    # 跳转到~/.oh-my-zsh/plugins
    cd ~/.oh-my-zsh/plugins
    # 查看当前目录所在位置并记录地址
    pwd
    # 打开zsh配置文件  
    sudo gedit ~/.zshrc
    # 在.zshrc文件最后一行加上
    source "$这里填写的就是你之前pwd之后的地址$/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"

安装自动跳转autojump

# 1.安装
sudo apt-get install autojump
 
# 2.配置
#在.zshrc最后一行添加如下
source "/usr/share/autojump/autojump.sh"

 

wps-官网下载

在app-store中没有提供,前往官网下载:wps-linux下载链接

选择Deb for x64格式,然后找到安装包安装即可

qq轻聊版

从19年9月开始,linux端的tim就无法正常接收用户头像以及聊天图片了……属实烦嗷,不过qq轻聊版还能正常工作

Wechat可以正常使用

 

网课必备-zoom

zoom下载链接,选择deb最新版即可

在安装之前,需要安装依赖项:

sudo apt-get install libxcb-xtest0

然后安装zoom的包即可

 

Docker的安装

docker是个啥呢,简单的说就是个效率贼高的虚拟机,然后可以在上面运行一些对外部没啥影响的镜像。这样不容易把系统搞崩掉,分享移植也更简单,更详细的说明见——docker是个啥.破乎

Docker中的基本概念

  • 镜像(Image):类似于虚拟机中的镜像,是一个包含有文件系统的面向Docker引擎的只读模板。任何应用程序运行都需要环境,而镜像就是用来提供这种运行环境的。例如一个Ubuntu镜像就是一个包含Ubuntu操作系统环境的模板,同理在该镜像上装上Apache软件,就可以称为Apache镜像。
  • 容器(Container):类似于一个轻量级的沙盒,可以将其看作一个极简的Linux系统环境(包括root权限、进程空间、用户空间和网络空间等),以及运行在其中的应用程序。Docker引擎利用容器来运行、隔离各个应用。容器是镜像创建的应用实例,可以创建、启动、停止、删除容器,各个容器之间是是相互隔离的,互不影响。注意:镜像本身是只读的,容器从镜像启动,是Docker在镜像的上层创建的一个可写层,镜像本身不变。
  • 仓库(Repository):类似于代码仓库,这里是镜像仓库,是Docker用来集中存放镜像文件的地方。注意与注册服务器(Registry)的区别:注册服务器是存放仓库的地方,一般会有多个仓库;而仓库是存放镜像的地方,一般每个仓库存放一类镜像,每个镜像利用tag进行区分,比如Ubuntu仓库存放有多个版本(12.04、14.04等)的Ubuntu镜像。

deepin论坛上都是用debian装的:docker for Debian官方文档

我觉得应该是因为deepin基于debian内核所以用debian的安装方法吧

#首先卸载就版本(等等你为什么会有旧版
sudo apt-get remove docker docker-engine docker.io containerd runc
#于是乎shell表示没有新增更改

接下来开始安装

#刷新源,并安装一些依赖项
sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
  • Add Docker’s official GPG key //新增GPG密钥:
$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
  • Verify that you now have the key with the fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, by searching for the last 8 characters of the fingerprint //验证密钥正确安装,看fingerprint是否一致就可以了.
$ sudo apt-key fingerprint 0EBFCD88
#以下是返回的内容
pub   4096R/0EBFCD88 2017-02-22
      Key fingerprint = 9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid                  Docker Release (CE deb) 
sub   4096R/F273FCD8 2017-02-22

添加源

sudo gedit /etc/apt/sources.list.d/docker.list
#内容如下:
deb [arch=amd64] https://download.docker.com/linux/debian buster stable

检查更新并下载

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

检查安装是否成功

  • Verify that Docker Engine is installed correctly by running the hello-world image.
sudo docker run hello-world
  • This command downloads a test image and runs it in a container. When the container runs, it prints an informational message and exits.

成功后会显示这个:

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第13张图片

导入并安装nvidia-container-toolkit

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第14张图片

#添加密钥
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

由于deepin这个分支并不是主流分支,所以Nvidia的源是没有for-deepin的。

所以跟之前一样的操作,下载debian10的nvidia-container-toolkit

#选择将debian10的源添加进来,注意正确添加会有几行“deb”打头的返回值
curl -s -L https://nvidia.github.io/nvidia-docker/debian10/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
#更新源,如果正常,将会在HIT几行之后开始GET
sudo apt-get update
#安装,因为国内访问github较慢,下载速度亦不快
sudo apt-get install -y nvidia-container-toolkit
#重启docker
sudo systemctl restart docker
#进行验证,docker检查本地没有对应image后将会从docker-hub拉取可用源,这里下载速度亦不算快
sudo docker run --gpus all nvidia/cuda:10.0-base nvidia-smi

然后出现了报错

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第15张图片

添加libnvidia-ml.so到环境变量

根据分析,应当是镜像中无法检索到libnvidia-ml.so文件,所以要找到这个文件的路径(如果存在的话),在这个镜像中添加其为环境变量

先启动一个容器,把镜像加载进去,然后在与容器的交互界面(bash)中,搜一下这玩意儿是不是存在

#-it是进入可以交互的bash的意思
#如果没有-it,则执行命令后半句后会退回到host的命令行,如上图失败截图
sudo docker run -it --gpus all nvidia/cuda:10.0-base
#进入之后发现命令的头部变成了root+blablabla:这个时候是su模式的,命令前就不需要加sudo了
#查询系统中文件名开头为“libnvidia-ml”的文件路径
find  -name libnvidia-ml*

图片.png

那我们把它的路径添加到环境变量中应该就可以了

查询nivdia-docker的系统及版本

. /etc/os-release;echo $ID$VERSION_ID

图片.png

可以使用apt进行更新安装

#先更新源
apt-get update
#然后安装vim
apt-get install vim

然后更改系统环境变量(PATH)我们希望设置为永久有效的,所以修改profile文件

#打开文件
vim /etc/profile
#在末尾添加如下内容
export PATH=$PATH:/usr/lib/x86_64-linux-gnu
#esc,然后输入:wq回车退出,然后让文件生效
source /etc/profile
#然后再测试nvidia驱动
nvidia-smi

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第16张图片

配置成功

exit
#退出容器

注意此时Docker引擎中就有了两个(我多启动了一次所以三个)容器,可使用docker ps -a查看:

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第17张图片

当退出容器时,容器的进度将被保留,下次再进入这个容器还可以继续操作:

#使用容器ID启动镜像(此时在后台启动)
sudo docker start 93554a21507d   
#进入这个容器
sudo docker attach 93554a21507d

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第18张图片

我希望把我的进度保存成镜像(可以分享)

#-m后是说明信息;-a指定用户信息;
#c73f415f4b1b代表容器的id;flanker/nvidia:smi指定目标镜像的用户名、仓库名和 tag 信息
sudo docker commit -m "nvidia-docker smi" -a "flanker" c73f415f4b1b flanker/nvidia:smi
#查看镜像信息
sudo docker images

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第19张图片

补一个,古有删库跑路,今有删容器跑路(bushi)的方法

#container_id可以通过ps -a查询
sudo docker rm container_id

然后会返回容器的id,再输入docker ps -a就发现他们不见了(好了可以跑路了

Apollo

  • 查看你的CPU是否支持FMA和AVX,否则仿真环境Dreamview无法启动(当在浏览器中输入http://localhos:8888,会出现"Unable to connect"的错误)。原因在于百度默认你计算机的CPU有这两个功能,代码中未提供非此类CPU时真正的解决办法。除非你能力强,马上能修改不完善的代码。
#查询CPU是否支持FMA和AVX
grep fma < /proc/cpuinfo
grep avx < /proc/cpuinfo
#分别在指令集标识中查找,若有则会返回值
  • 浏览器必须支持WebGL,否则仿真界面无法显示动画,这实际上隐含了对GPU的要求,可以不是Nvidia的,但要有。百度提供的仅有CPU的编译选项,只是水中花、镜中月。firefox开启webGL的方法
  • 必须要能搞到CAN卡的驱动程序,因为这个不是开源的,需要你购买硬件时才能提供,虽然只用到了其中的两个文件。
  • 硬盘至少50G,内存至少4G。

 

之前都是安装apollo的prerequest

#从gitee上克隆apollo,速度非常感人(对了前提要安装git
git clone https://gitee.com/baidu/apolloauto

apollo停更,搞8来

先装ros

在docker中安装有gui的ros

当然,我自己是不会搭这么nb的镜像的

所以我找了个轮子:泡泡机器人ros-vnc

为了快速下载这个超大的docker镜像,笔者选择使用阿里云的镜像:

点击阿里云链接,没用过的可以注册一下。注册之后,按照ubuntu的操作文档进行操作即可。

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
#一下四行一起复制进去
{
  "registry-mirrors": ["https://<你的ID>.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

之后再安装对应docker即可

sudo docker pull paopaorobot/ros-vnc

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第20张图片

才下了几分钟,快到飞起。

接下来开始使用。

使用前,先去应用商店装个VNC-viewer,长这样:

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第21张图片

在命令行输入:

sudo docker run -i -t -p 5900:5900 paopaorobot/ros-vnc

会返回一段密码,然后进入容器

打开VNC viewer(对高分屏十分不友好)

输入端口号“:5900”

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第22张图片

回车,进入桌面(弹出来的窗口选择default)

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第23张图片

打开xfce terminal

roscore

接着刷出一长串我看不懂的东西

再打开一个terminal

rosrun rviz rviz

快乐的界面出现了

Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用_第24张图片

至于关闭:关掉ros可视化,然后命令行中ctrl+C终止

笔者现在还不会用,期待后浪们能把它玩起来

你可能感兴趣的:(Linux/Deepin全流程安装指南:双显卡-Prime-docker-Nvidia_docker-ROS-日常应用)