Ubuntu16.04下安装驱动,cuda8.0,cudnn,ffmpeg等

安装驱动

验证自己的电脑是否有一个可以支持CUDA的GPU

ubuntu的终端中输入命令: lspci | grep -i nvidia ,会显示出你的NVIDIA GPU版本信息,不过不是很详细。
安装相关依赖:

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev  
sudo apt-get install libopenblas-dev liblapack-dev libatlas-base-dev  
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

验证系统是否安装了kernel header和 package development

在终端中输入: uname -r
然后查看显示结果是否和自己的要安装要求的一样,下载cuda安装文件的时候,在那个界面的最下方有一个安装指导书( Installation Guide for Linux),按照官网的指导应该是可以正确安装的。

绝大部分人装不上驱动,后面安装不上cuda可能就是系统内核的版本过高,cuda要求系统内核是4.4,而现在的系统是4.15,降低系统内核后,问题一般就解决了

降低系统内核的方法就是直接用新内核替换旧内核,参考链接:
https://favoorr.github.io/2017/02/11/update-kernel-for-ubuntu/
https://oldpan.me/archives/install-cuda9-1-unable-to-locate-the-kernel-source
https://zhuanlan.zhihu.com/p/36979657

安装内核
sudo apt-get install linux-headers-4.4.0-98-generic linux-image-4.4.0-98-generic
卸载旧内核
查询目前安装的内核
sudo dpkg --get-selections |grep linux

卸载旧内核
sudo apt remove linux-image-4.15.0-29-generic linux-image-4.15.0-45-generic等
卸载与4.15.0-29和4.15.0-45相关的linux-image*-generic,linux-headers*-generic
更新启动引导
sudo update-grub
确认最新内核安装情况
ls /boot/vmlinuz*
重启
reboot
重启后验证
uname -a

如果上述方法不OK,进入/boot/, 执行sudo rm -rf *4.15.0-45*sudo rm -rf *4.15.0-29*
修改/etc/default/grub中GRUB_DEFAULT="Ubuntu,Linux 4.4.0-98-generic"
最后执行sudo update-grub来对你之前的设置进行更新

我的sudo dpkg --get-selections |grep linux结果如下:
在这里插入图片描述

换内核后,建议执行以下更新:

sudo apt-get install build-essential
apt-get install linux-source
apt-get source linux-image-$(uname -r)
apt-get install linux-headers-$(uname -r)

禁用 nouveau驱动

终端中运行:$ lsmod | grep nouveau,如果有输出则代表nouveau正在加载。需要我们手动禁掉nouveau。

Ubuntu的nouveau禁用方法:
a、在/etc/modprobe.d中创建文件blacklist-nouveau.conf

输入命令:$ sudo vi /etc/modprobe.d/blacklist-nouveau.conf (利用vi编辑器编辑和保存文件),个人觉得应gedit更方便

在文件中输入一下内容:

blacklist nouveau
options nouveau modeset=0

b、执行:sudo update-initramfs -u

c、再执行:lsmod | grep nouveau

若无内容输出,则禁用成功,若仍有内容输出,请检查操作,并重复上述操作。如果重复多次还是不行,建议重启电脑查看结果

安装驱动

首先去官网 http://www.nvidia.com/Download/index.aspx?lang=en-us,
查看适合自己显卡的驱动并下载:我的显卡型号是GTX1080 Ti,系统是linux 64位,按照要求选择后点击search.,点击下载就好了。查找的过程中可能需要翻墙,不翻墙可能点击search没反应
这里我下载的是NVIDIA-Linux-x86_64-418.43.run

安装显卡驱动要先切换到文字界面,(按Ctrl+Alt+F1~F6).所以,启动电脑后,先进入文字界面。然后,输入命令 sudo service lightdm stop

现在可以安装驱动了,进驱动目录 ,然后: sudo sh ./NVIDIA-Linux-x86_64-418.43.run,按照提示一步步来~
在这里插入图片描述
此处选择NO

完成后,再次重启电脑。

安装完成之后输入以下指令进行验证: sudo nvidia-smi,若列出了GPU的信息列表则表示驱动安装成功

如果遇到了下图所示的情况,说明驱动装的有问题,先卸载后重新安装
在这里插入图片描述

NVIDIA驱动卸载:

sudo /usr/bin/nvidia-uninstall

runfile安装cuda

CUDA提供两种安装方式:package manager安装和runfile安装,个人觉得runfile安装更方便一点
下载完后,用MD5 检验,如果序号不和,得重新下载
输入命令:md5sum cuda_9.0.176_linux.run

安装cuda

重启电脑,进入登录界面的时候,不要登录进入桌面(否则可能会失败,若不小心进入,请重启电脑),直接按Ctrl+Alt+F1进入文本模式(命令行界面),登录账户。

安装cuda也需要禁用 nouveau驱动和 sudo service lightdm stop 关闭图形化界面

切换到cuda安装文件的路径,执行sudo sh cuda_*_linux.run,根据提示一步步操作:

注意

选择是否安装nvidia驱动时,一定要选择否: Install NVIDIA,因为前面我们已经安装了更加新的驱动了,所以这里不要选择安装。其余的都直接默认选择是即可。

添加cuda路径

输入sudo vi /etc/profile在最后添加

export PATH="/usr/local/cuda-8.0/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH"

并执行sourvc /etc/profile
如果后面使用pythonimport tensorflow时报错ImportError: libcudart.so.8.0: cannot open shared object file: No such file or directory,大概率是没有添加cuda路径

输入sudo service lightdm start 重新启动图形化界面。

同时按住Alt + ctrl +F7,返回到图形化登录界面,输入密码登录。

验证cuda是否安装成功

编译samples例子:

#编译并测试设备 deviceQuery:
cd /usr/local/cuda-8.0/samples/1_Utilities/deviceQuery
sudo make
./deviceQuery

#编译并测试带宽 bandwidthTest:
cd ../bandwidthTest
sudo make
./bandwidthTest

如果这两个测试的最后结果都是Result = PASS,说明CUDA安装成功啦。

参考链接:
https://blog.csdn.net/qlulibin/article/details/78714596
https://blog.csdn.net/wanzhen4330/article/details/81699769#%E5%A4%8D%E6%9D%82%E7%9A%84%E6%96%B9%E6%B3%95%E2%80%94%E2%80%94%E5%B8%A6%E9%A9%B1%E5%8A%A8%E7%9A%84%E5%AE%89%E8%A3%85%E6%96%B9%E6%B3%95

CUDA卸载

CUDA默认安装在 /usr/local/cuda-8.0下,用下面的命令卸载::

sudo /usr/local/cuda-8.0/bin/uninstall_cuda-8.0.pl
sudo rm -rf /usr/local/cuda-8.0/

安装cudnn

cuda地址:https://developer.nvidia.com/rdp/cudnn-download
下载需要的cudnn,需先登录

下载完cudnn-8.0-linux-x64-v6.0.tar将其解压tar -xf cudnn-8.0-linux-x64-v6.0.tar,可得到一个名为cuda的文件夹
复制该文件夹下内容至cuda安装路径

cp ./cuda/include/cudnn.h /usr/local/cuda-8.0/include/
cp ./cuda/lib64/* /usr/local/cuda-8.0/lib64/

在后面python倒入tensorflow时,遇到个bug,ImportError: /usr/local/cuda-8.0/lib64/libcudnn.so.6: invalid ELF header,可能是是由于我在Mac系统下解压的cudnn文件,然后上传到Linux系统,这样导致的bug。直接在Linux系统执行tar -xf cudnn-8.0-linux-x64-v6.0.tar,解决了问题

bug Ctrl+Alt+F1到F6黑屏

想通过Ctrl+Alt+F1到控制台,得到的是黑屏。按Ctrl+Alt+F7可以返回到正常的图形界面。
解决:
1.修改grub文件

sudo gedit /etc/default/grub
在打开的文件里找到找到变量GRUB_CMDLINE_LINUX_DEFAULT,并修改
#GRUP_CMDLINE_LINUX_DEFAULT="quiet splash"
GRUP_CMDLINE_LINUX_DEFAULT="quiet splash usbcore.autosuspend=-1 nomodeset vga=791"

2.更新grub并重启电脑

sudo update-grub
sudo reboot

ubuntu16.04配置网卡

查看网卡信息

输入ifconfig命令查看网卡信息

配置网卡文件

输入下面命令进行编辑网卡文件sudo vi /etc/network/interfaces
默认的文件内容如下:

auto lo
iface lo inet loopback

现在修改配置文件。修改方式有两种

方式一:静态ip

修改内容如下:下面的enp0s3需要改成自己的网卡名称,就是上面第一步得到的信息。ip地址,掩码网关,dns自己合理配置就行了。记得wq!保存退出。

auto enp0s3
iface enp0s3 inet static
address 192.168.0.1
netmask  255.255.255.0
gateway  192.168.0.1
dns-nameservers 159.226.39.1 8.8.8.8
方式二:动态获取ip配置
auto enp0s3
iface enp0s3 inet dhcp

注意上面的网卡写成自己的网卡名称。记得wq!保存退出。

重启网卡,重启电脑

/etc/init.d/networking restart
service networking restart
reboot

重启电脑后,ifconfig查看配置是否生效。测试ping www.baidu.com

参考链接:
https://blog.csdn.net/stay_zezo/article/details/80718369
https://www.cnblogs.com/yudar/p/4446975.html

Ubuntu实现远程登陆之ssh

ssh: connect to host ****** port 22: Connection refused有以下两种原因

  1. 检查是否安装了openssh-server
ps -e|grep ssh

如果只出现了一个ssh,说明没有安装,通过sudo apt install openssh-server安装

  1. sshd未启动
service sshd restart
  1. 重新连接时,可能遇到的问题
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:GeXlCMdx5LINJhGZ+vEq+G97JqJtEGJ1PnYiZn3l/NE.
Please contact your system administrator.
Add correct host key in /Users/*/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /Users/*/.ssh/known_hosts:9
ECDSA host key for 192.168.227.5 has changed and you have requested strict checking.
Host key verification failed.

解决办法:
在正在操作的机器上执行

vi ~/.ssh/known_hosts

进入此目录,删除的192.168.227.5.**相关rsa的信息即可.

ffmpeg

https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

挂载大于2T的硬盘

通过sudo fdisk -lu可以看到将要挂载的硬盘
因fdisk分区最大只能2T,所以这里使用parted来分区.
执行命令parted /dev/sdX,X替换成自己的盘符,这里以sdb为例

mcg@mcg:~$ sudo parted /dev/sdb
GNU Parted 3.2
Using /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Error: /dev/sdb: unrecognised disk label
Model: LSI MRSASRoMB-8i (scsi)
Disk /dev/sdb: 4000GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
(parted) mklabel gpt
(parted) print
Model: LSI MRSASRoMB-8i (scsi)
Disk /dev/sdb: 4000GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start  End  Size  File system  Name  Flags

(parted) mkpart primary 0 -1
Warning: The resulting partition is not properly aligned for best performance.
Ignore/Cancel? i
(parted) quit
Information: You may need to update /etc/fstab.

格式化新硬盘: sudo mkfs.ext4 /dev/sdb1
创建硬盘将挂载位置:sudo mkdir /media/sdb1
挂载分区:sudo mount /dev/sdb1 /media/sdb1
查看磁盘分区的UUID:sudo blkid

/dev/sda1: UUID="a3d6a764-6c22-4c5a-b46c-08af57eecb6c" TYPE="ext4" PARTUUID="608683da-01"
/dev/sda5: UUID="2dbbd27f-cf0d-4af4-906d-5a1ab91e4000" TYPE="swap" PARTUUID="608683da-05"
/dev/sdb1: UUID="e4a6735c-bede-4baf-acd5-b5f2efb92678" TYPE="ext4" PARTLABEL="primary" PARTUUID="60873b4f-a21e-485b-9987-d8a59473a0b0"
/dev/sdc1: UUID="4d6e16bf-e399-42f0-a063-1960abc4bf7c" TYPE="ext4" PARTLABEL="primary" PARTUUID="5b94dc17-7646-4ce3-b8c2-7ec2c677b78f"

配置开机自动挂载:sudo vim /etc/fstab
因为mount命令会在重启服务器后失效,所以要将分区信息写到/etc/fstab文件中让它永久挂载:
加入:

UUID=e4a6735c-bede-4baf-acd5-b5f2efb92678 /media/sdb1     ext4    defaults        0       1

指令的具体说明:

<fs spec> <fs file> <fs vfstype> <fs mntops> <fs freq> <fs passno>
具体说明,以挂载/dev/sdb1为例:
<fs spec>:分区定位,可以给UUID或LABEL,例如:UUID=6E9ADAC29ADA85CD或LABEL=software
<fs file>:具体挂载点的位置,例如:/data
<fs vfstype>:挂载磁盘类型,linux分区一般为ext4,windows分区一般为ntfs
<fs mntops>:挂载参数,一般为defaults
<fs freq>:磁盘检查,默认为0
<fs passno>:磁盘检查,默认为0,不需要检查

重启系统:
修改完/etc/fstab文件后,运行sudo mount -a,命令验证一下配置是否正确。如果配置不正确可能会导致系统无法正常启动。然后重启系统

重启系统后,通过df -lh可以看出新挂载的硬盘:

Filesystem      Size  Used Avail Use% Mounted on
udev             63G     0   63G   0% /dev
tmpfs            13G   11M   13G   1% /run
/dev/sda1       228G   15G  202G   7% /
tmpfs            63G  200K   63G   1% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs            63G     0   63G   0% /sys/fs/cgroup
/dev/sdc1       2.7T   73M  2.6T   1% /media/sdc1
/dev/sdb1       3.6T   68M  3.4T   1% /media/sdb1
tmpfs            13G   28K   13G   1% /run/user/108
tmpfs            13G     0   13G   0% /run/user/1000

参考链接:
https://www.cnblogs.com/EasonJim/p/7447000.html

vi命令的编辑模式下不能正常使用方向键和退格键的问题

步骤一,输入下述命令以卸载vim-tiny:

sudo apt-get remove vim-common

步骤二,输入下述命令以安装vim-full:

sudo apt-get install vim

参考链接:https://blog.csdn.net/xiangwanpeng/article/details/54341229

添加用户

adduser

首先用adduser命令添加一个普通用户,命令如下:
#adduser tommy  //添加一个名为tommy的用户
#passwd tommy   //修改密码
Changing password for user tommy.
New UNIX password:     //在这里输入新密码
Retype new UNIX password:  //再次输入新密码
passwd: all authentication tokens updated successfully.

赋予root权限

修改sudo vi /etc/sudoers 文件,找到下面一行,在root下面添加一行,如下所示:

root    ALL=(ALL)     ALL
tommy   ALL=(ALL)     ALL

无桌面联网

打开chrome浏览器,进去https://gw.ict.ac.cn/srun_portal_pc.php?ac_id=1&,右键,进入检查,将脚本粘贴到 “console”里面,回车

var qData = {"action": "login", "username": "xxx", "password": "xxxxxx", "ac_id": "1", "ip":"x.x.x.x"}
$.getJSON("https://gw.ict.ac.cn/cgi-bin/srun_portal", qData, function(data) {
    if (data.error == "ok") {
        $.cookie('access_token', data.access_token)
        location.href = location.protocol + "//" + location.hostname + "/srun_portal_pc_succeed.php?ac_id=1&username=xxx&ip=x.x.x.x&access_token="+data.access_token
    }
})

将username password ip换成自己的

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值