通过以下命令可以查询Ubuntu18.04已经安装的内核
grep menuentry /boot/grub/grub.cfg
上图说明该Ubuntu一共装有6个linux内核。
通过以下命令可以查询当前正在使用的Linux内核
uname -a
输出结果,说明正在使用“GNU/Linux 4.15.0-041500-generic x86_64”这个内核
Linux amax-PowerEdge-T640 4.15.0-041500-generic #201802011154 SMP Thu Feb 1 11:55:45 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
背景:Ubuntu 18.04.6 LTS + GNU/Linux 5.4.0-131-generic x86_64
我根据Ubuntu18.04安装Nvidia驱动【全网不坑,超全步骤】这个博客进行安装。然后遇到了一系列的问题。一开始是通过
sudo apt-get install build-essential
安装build-essential出现了很大的问题,比如,build-essential需要提前安装xx dependency,如果没有这个dependency就不给你安装build-essential成功。结果我就老老实实地听终端的提示来安装gcc和cmake,结果发现还是缺乏xx dependency的问题。恼怒得不行。
然后装不了,我就不装了,打算直接用
sudo sh ./NVIDIA-Linux-x86_64-510.73.05.run
安装NVIDIA显卡驱动,结果我还是太天真了。gcc和cmake是安装NVIDIA显卡驱动的必备手续。如果你没有安装这两个的话,它就会报类似于下面的错:
ERROR: Unable to find the development tool `cc` in your path; please make sure that you have the package 'gcc' installed. If gcc is installed on your system, then please check that `cc` is in your PATH.
但是安装gcc需要大量的dependency呀,而且这些dependency也无法通过apt-get install来安装。太气人了,我只好另寻办法。不过终于我还是找到了一个稍微好点的解决方案,也就是使用
sudo aptitude install xxxx
这样的命令来安装gcc和cmake。如果你无法使用aptitude这个命令,我建议你通过apt-get install来安装一下aptitude这个工具。aptitude这个工具能够更加人性化的方案来为你安装一些包、或者软件,它始终能够为你提供一种安装的方案,而不会像apt-get install一样那么直接(装不成功就是不成功,给你报很多的Error)。
然后,我就是用aptitude这个工具来稀里糊涂地安装了gcc和cmake这两个东西。
然后我就欢天喜地地去安装NVIDIA显卡驱动了。但是,你以为这样就完了吗?没有,我又遇到了下面这个错误
ERROR: You appear to be running an X server; please exit X before installing. For further details, please see the section INSTALLING THE NVIDIA DRIVER in the README available on the Linux driver download page at www.nvidia.com.
不过还好,这个错误相对来说容易解决,在安装NVIDIA显卡驱动附加上“-no-x-check”就可以了,例如
sudo sh ./NVIDIA-Linux-x86_64-510.73.05.run -no-x-check
这样,就差不多可以进入NVIDIA显卡驱动的安装过程了。结果,在安装到47%的时候,它又给报了一个错误,类似如下
An error occurred while performing the step : ” Building kernel modules “. See /var/log/nvidia-installer.log for details.
然后,我研究了很多安装NVIDIA显卡驱动的方法,例如,通过界面自带的“Software/Driver”更新,或者通过apt-get install命令行在线下载安装,或者换安装包。然而,上面这些工作都是徒劳的。主要的原因是目前“GNU/Linux 5.4.0-131-generic x86_64”这个Linux内核不支持最新的NVIDIA显卡驱动。这样的话,你换一千种安装方法都没法装上NVIDIA显卡驱动。
后面我就想把内核换了(这个思路是对的),从5.4换到4.15(因为根据网上的搜索结果发现,4.15这个Linux内核所支持的NVIDIA显卡驱动是最多的,也就是说,非常多的人的Linux内核都是4.15)。另外,我还发现有的人升级了Linux内核,然后导致了NVIDIA显卡驱动用不了的情况,例如,命令“nvidia-smi”直接失效。
于是,我通过Linux内核过高以至于NVIDIA显卡驱动不匹配这篇博客在我的Ubuntu18.04上面安装了Linux 4.15内核。
安装完以后需要更新一下内核的启动顺序。其步骤如下:
第一步,查看本机已安装的Linux内核,使用命令
grep menuentry /boot/grub/grub.cfg
得到的内核列表是有索引的,如下
然后,索引为“4”的内核就是我们想要使用的。
第二步,通过下面命令来修改默认的内核启动顺序。
sudo vim /etc/default/grub
修改“grub”这个文件中的GRUB_DEFAULT=0为
GRUB_DEFAULT=“1>4"
上面的这个“4”就是内核索引“4”,也就是说,将“Linux 4.15.0-041500-generic”设置为计算机启动后默认选择的内核。
第三步,更新内核启动顺序,执行一下命令
update-grub
第四步,重启机器
sudo reboot
然后通过以下命令来查询重新启动后的内核
uname -a
终端会输出
Linux amax-PowerEdge-T640 4.15.0-041500-generic #201802011154 SMP Thu Feb 1 11:55:45 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
参考博客Ubuntu安装cuda与cuDNN。
这个没有什么难度,下载安装包安装就可以了,但是值得注意的是,安装过程不要再重新安装NVIDIA显卡驱动。也就是[ ]Driver需要通过空格键控制取消掉。
还有就是在更新“~/.bashrc”这个文件的时候,
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64
上面的路径“/usr/local/cuda/”均需要改为你的cuda实际安装的路径,例如,我的为
/usr/local/cuda-7.5/
下面查询cuda是否安装成功
nvcc --version
如果成功,会输出
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Tue_May__3_18:49:52_PDT_2022
Cuda compilation tools, release 11.7, V11.7.64
Build cuda_11.7.r11.7/compiler.31294372_0
安装cuDNN的话也是参考Ubuntu安装CUDA与cuDNN这篇博客。安装难度不大。
值得注意的是,我当时下载的时候是需要先登录NVIDIA官网的,然后下载的安装包只有“cudnn-local-repo-ubuntu1804-8.4.1.50_1.0-1_amd64.deb”这么一个。因此,我只需要执行一行
sudo dpkg -i cudnn-local-repo-ubuntu1804-8.4.1.50_1.0-1_amd64.deb
就能够安装cuDNN。
安装完以后可以通过以下命令来检验是否安装成功
dpkg -l | grep cudnn
如果成功,会显示
ii cudnn-local-repo-ubuntu1804-8.4.1.50 1.0-1 amd64 cudnn-local repository configuration files
安装NVIDIA显卡驱动实在是太难啦,下面上传一个nvidia-smi命令的截图来记录NVIDIA显卡驱动的核心要素(不过其实也没有什么重要信息,单纯说明NVIDIA显卡驱动是安装成功了)。
Linux服务器管理实在是太多坑了,希望各位朋友们认真学习,有问题欢迎留言,大家可以一起交流问题的解决方案,博主也很热心帮助大家~
上述博客只是记录了个人遇到的问题,如果解决不了你遇到的问题,请不要责怪我哦哈哈,感谢理解,爱与尊重!欢迎评论区收到你的问题~