从安装Ubuntu 16.04到降低内核版本安装Cuda-9.0的方法
- 作者:zsz
- 时间:2018-12-01-20:18
公元2018年12月1日,上午10时左右,开完分享组会的我开始调戏一台叫做kawaii的电脑,想给她安装个cuda 9.0,不想历经种种曲折,甚至将kawaii的内核损坏,几欲放弃,最终在王者峡谷沉思两个多小时后,我还是选择直面遍体鳞伤的kawaii,在牺牲了另外72000秒后,终于顺利地达到了目标,此事件影响重大,特在此记录,并开设本人第一篇博客,用于记录类似奇闻轶事。
1. 安装Ubuntu 16.04
这个不是重点,略写略写
- 安装UltraISO
- 下载Ubuntu 16.04的磁盘映像
- 用UltraISO写磁盘映像到一个U盘里
- 把U盘插在kawaii上,然后傻瓜式操作就好了
- 分区就用默认的,毕竟就这么一个机器一个系统,没啥要特别注意的
2. 降级操作系统内核版本
Cuda-9.0只支持Linux 4.4版本的内核,我安装的Ubuntu内核是4.15的,需要降级
这一部分参考的这篇文章
- 备份源配置文件
sudo cp /etc/apt/sources.list /etc/apt/sources.list_bak
- 用编辑器打开源配置文件
sudo vim /etc/apt/sources.list
- 在文件最后面增加一行并保存
deb http://security.ubuntu.com/ubuntu trusty-security main
- 执行以下命令更新配置
sudo apt-get update
- 安装新内核
sudo apt-get install linux-image-extra-4.4.0-98-generic
- 执行以下命令查看是否安装成功
dpkg -l | grep linux-image
- 用编辑器打开 grub 配置文件
sudo vim /etc/default/grub
GRUB_DEFAULT=0
改为GRUB_DEFAULT=“1>6”
这里用的的“1>6”指的是启动顺序,数的方法是打开 /boot/grub/grub.cfg,然后找到 menuentry 后的一系列启动选项,从0开始数,要注意在高级选项里是有子选项的,我这里的高级选项是1号,子选项里第6号是4.4.0-98,所以写了“1>6”
- 保存退出,然后执行以下命令更新 Grub 引导
sudo update-grub
- 然后重启就可以进入新内核了
用uname -r
查看当前内核版本
3. 安装 Cuda-9.0
- 下载 Cuda-9.0 runfile
官网下载 - 给 kawaii 安装 ssh-server
sudo apt-get install openssh-server
- 启动 ssh 服务
sudo service sshd start
- 使用公钥登陆方式,将信任的公钥放在
/home/alice/.ssh/authorized_keys
中
sudo vim /etc/ssh/sshd_config
- 修改这个文件,禁止 root 远程登陆和普通用户密码登陆
- 之后选择用另一台电脑 ssh 连接 kawaii
- 关闭 nouveau
echo "blacklist nouveau" >>/etc/modprobe.d/blacklist.conf
echo "options nouveau modeset=0" >>/etc/modprobe.d/blacklist.conf
rmmod nouveau
- 检查一下是否关闭成功了,没有输出就成功了,必要时重启试试,有的方法说是用
update-initramfs -u
,这个方法在内核降级后是不好使的
lsmod | grep nouveau
- 准备 gcc, 看看
lspci | grep -i nvidia
到底能不能装 Cuda - 安装 kernel header
sudo apt-get install linux-headers-$(uname -r)
- 关闭图形界面
sudo /etc/init.d/lightdm stop
sudo init 3
- 开始正式安装
sudo sh cuda_9.0.176_384.81_linux.run
- 然后按照提示来就行
写到这里就完事了,作为第一篇博文,添加一个搭建博客的指导链接在这里
Ubuntu自动更新会导致内核版本变更,上述方法就会指向错误的内核,因此可以禁止内核自动更新:
打开文件
sudo vim /etc/apt/apt.conf.d/10periodic
第一行改成0
APT::Periodic::Update-Package-Lists "0"
此外,用
sudo apt-mark hold linux-image-4.4.0-98-generic
sudo apt-mark hold linux-image-extra-4.4.0-98-generic
可以保留对应4.4.0-98内核,取消就用unhold
就好