CentOS8安装nvidia显卡驱动(分辨率问题)

前言

服务器屏幕看着特别模糊,字也特别大,很多软件的画面一打开就被填充了,很不爽,为了爽,努力解决它!

开始

服务器安装的系统是Centos8,i7-9700K,内存16G,显卡也是nvidia RTX 2080,显示屏可支撑的最大分辨率为1920*1080
但是打开设置一看,实际分辨率为1024*768,也没有可更改选项,遂biying之~

  • 终端输入
    xrandr
    发现只有一个default connected primary 1024*768
    按照网上方法,先获得要新添加分辨率的参数
    cvt 1920 1080
# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync

  • 增加新的分辨率

xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync

--newmode后面的参数就是使用cvt的返回值Modeline后面的部分

  • 为当前显示增加这个分辨率

xrandr --addmode default 1920x1080_60.00

网上大佬说此时在Applications/System Tools/Settings/Displays 里面就能看到你刚刚新增加的分辨率。这时候设置就好用了。但是我这里设置里面还是没有可调整的分辨率

  • 指令设置分辨率

xrandr --output default --mode 1920x1080_60.00

还是不行,此处参考:https://blog.csdn.net/lingdian1614114082/article/details/86741886

安装驱动

这边对小白建议,如果上述方法不奏效,就可以结束了,模糊点就模糊点吧,没必要看下面内容,看了你会掉头发的,秃了别怪我~
上述方法不成功,网上搜索了一下,大概率是显卡驱动的问题
首先由于Centos8比较新,相应的yum安装驱动等方法是不能奏效的,只能通过去官网下载驱动包来手动安装,在这个过程中,有很多要注意的地方,稍有不慎,就只能重装系统,所以不是刚需不建议装
首先,Linux系统一般默认安装的是开源的nouvea显卡驱动,它与nvidia显卡驱动产生冲突,所以装nvidia必禁nouvea!其次nvidia驱动默认安装OpenGL桌面,然而这又与GNOME桌面冲突,为了不让系统崩,也需禁用nvidia的OpenGL,过程中需要搭建gcc、kernel-devel、kernel-headers 等环境。
这一步非常重要,是让你避免重装系统的关键!!!
在安装之前,请保证服务器可以开机开启ssh,达到一开机输入
systemctl status sshd可以看到sshd正在运行

[root@localhost data-integration]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset>
   Active: active (running) since Sat 2020-01-11 13:42:49 CST; 1h 28min ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 1104 (sshd)
    Tasks: 1 (limit: 26213)
   Memory: 4.9M
   CGroup: /system.slice/sshd.service
           └─1104 /usr/sbin/sshd -D -oCiphers=aes256-gcm@openssh.com,chacha20-p>

即可以被其他电脑通过ssh远程连接,一定要拿别的电脑远程连接测试一下!

0.打开终端,通过执行以下命令识别您的Nvidia图形卡型号:
lspci -vnn | grep VGA

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU104 [GeForce RTX 2080 Rev. A] [10de:1e87] (rev a1) (prog-if 00 [VGA controller])

想看显卡详细的信息
lspci -v -s 01:00.0

01:00.0 VGA compatible controller: NVIDIA Corporation TU104 [GeForce RTX 2080 Rev. A] (rev a1) (prog-if 00 [VGA controller])
    Subsystem: NVIDIA Corporation Device 12a6
    Flags: fast devsel, IRQ 16
    Memory at de000000 (32-bit, non-prefetchable) [size=16M]
    Memory at c0000000 (64-bit, prefetchable) [size=256M]
    Memory at d0000000 (64-bit, prefetchable) [size=32M]
    I/O ports at e000 [size=128]
    Expansion ROM at 000c0000 [disabled] [size=128K]
    Capabilities: [60] Power Management version 3
    Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+
    Capabilities: [78] Express Legacy Endpoint, MSI 00
    Capabilities: [100] Virtual Channel
    Capabilities: [250] Latency Tolerance Reporting
    Capabilities: [258] L1 PM Substates
    Capabilities: [128] Power Budgeting <?>
    Capabilities: [420] Advanced Error Reporting
    Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
    Capabilities: [900] #19
    Capabilities: [bb0] #15
    Kernel modules: nouveau

可以看到,没有安装nvidia驱动

  1. 下载驱动(nvidia官网),这里的驱动按上一步得到的结果选择
    在这里插入图片描述下载后
    ls -al NVIDIA-Linux-x86_64-*
NVIDIA-Linux-x86_64-440.44.run

看看有没有执行权限,没有就给它加:
chmod +x NVIDIA-Linux-x86_64-440.44.run
2. 关闭secure boot(我这里重启直接在系统选择时有system setup这一项)

重启电脑,进入BIOS
找到seure boot,一般在boot选项中
将 “Enable” 改为 “Disable”

如果没有设置成disable
会在后面开始安装的时候提示

The target kernel has CONFIG_MODULE_SIG set,which means that it supports cryptographic signatures on kernel 
module. On some systems, the kernel may refuse to load modules without a valid signature from a trusted key.
This system also UEFI Secure Boot enabled; many distributions enforce module signature verification on UEFI systems when Secure Boot is enabled. 
Would you like to sign the NVIDIA kernel module?
目标内核已设置CONFIG_MODULE_SIG,这意味着它支持内核上的加密签名模块。
在某些系统上,如果没有来自可信密钥的有效签名,内核可能会拒绝加载模块。
此系统还启用了UEFI安全启动;
启用安全启动后,许多发行版都会在UEFI系统上强制执行模块签名验证。您想签署NVIDIA内核模块吗?
I,secure boot是什么意思
 
    其实secure boot是uefi设置中的一个子规格,简单的来说就是一个参数设置选项,它的作用体现在主板上只能加载经过认证过的操作系统或者硬件驱动程序,从而防止恶意软件侵入。
 
 而ecure root的利与弊
 
    uefi中规定主板出厂的时候可以内置一些可靠的公钥,其本意是让通过认证的操作系统和软件程序可以执行操作。
 
    而事实上,微软所内置的secure root则是一道很高明的手法,它主要体现在垄断性,微软要求,所有预装Windows 8的OEM厂商必须内置Windows公钥,前提是必须打开Secure Boot。但为了避免受到反垄断起诉,微软明确规定,所有PC主板必须带有关闭Secure Boot的选项,这是我们在主板上看到这个选项的根本原因。
 
    而secure root则直接与Linux或其它操作系统进行对峙的状态,有你没我,有我没你的现象,所以很多用户安装不了Linux系统都与这个secure root有着直接关系。微软为了避免被反垄断起诉,从而将这些关键性的东西给予外包公司进行操作。这就是其高明的手法。
  1. 安装环境

接下来就是安装编译环境:gcc、kernel-devel、kernel-headers (当然,如果你的电脑已经安装了,自然就不用再装了)
# yum -y install gcc kernel-devel kernel-headers
# dnf groupinstall "Development Tools"
# dnf install libglvnd-devel elfutils-libelf-devel

  1. 禁用nouveau
    查看nouveau是否运行
    lsmod|grep nouveau
    没有输出说明禁用了
    若有输出,如
    在这里插入图片描述
    则通过修改GRUB引导菜单,永久禁用nouveau驱动程序:
    # grub2-editenv - set "$(grub2-editenv - list | grep kernelopts) nouveau.modeset=0"
    查看放进去没有:
    # grub2-editenv - list|grep kernelopts
kernelopts=root=/dev/mapper/cl-root ro crashkernel=auto 
resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap rhgb quiet  nouveau.modeset=0

将nouveau拉入小黑屋,将nvidiafb放出小黑屋:
vim /lib/modprobe.d/dist-blacklist.conf
将nvidiafb注释掉

 #blacklist nvidiafb

添加两行

 blacklist nouveau
 options   nouveau modeset=0

为了彻底禁用
vim /etc/default/grub
在GRUB_CMDLINE_LINUX这一项中添加

 rd.driver.blacklist nouveau nouveau.modeset=0
  1. 重新建立initramfs image文件

# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
# dracut /boot/initramfs-$(uname -r).img $(uname -r)

  1. 进入命令行模式
    # init 3
    cd 到驱动存放位置
    bash NVIDIA-Linux-x86_64-375.39.run --no-opengl-files
    请注意,这里一定加--no-opengl-files,不加准备好重装系统,没有secure boot设置成disabled的,之前说过会出什么提示
    一直accept,ok直到结束
  2. 安装完后
    nvidia-smi
    在这里插入图片描述
    # init 5进入图形界面
    现在不用我调,它自己都设置成最佳分辨率1920*1080了
    在这里插入图片描述

注意

我这边安装是安装成功了,但是每次开机登陆输完密码就会闪一下,然后卡住,也不能alt+shift+f跳到命令行,只能通过其他电脑ssh连接上后输入init 5(转到命令行),刷新后重新输入密码才能进入桌面,之后也可以alt+shift+f跳到命令行,正常使用,不知道什么原因。
不过服务器一般是不会关机,所以也可以接受,希望有大神知道原因的可以指导一下。
-----------3.10号更新----
前几天yum install软件的时候,把内核升级了,导致重启后开机出现:“糟糕!有些地方出问题了”,远程ssh连接后进入命令行,lsmod|grep nouveau一看,没有禁用,初步考虑是内核更新,导致自带显卡驱动被放出小黑屋了,然后按上述步骤操作,发现还是不能进入,之后花了我一天时间终于找出原因,这里是解决方案:https://blog.csdn.net/qq_32656561/article/details/104777332

-----4.9号更新-----

搬办公室,不能通过ssh刷init 5进系统解决方案

----8.15号更新-----
最近开机之后通过远程ssh刷init 5进系统时发现,我经常使用的账号输入账号密码后屏幕闪一下又回到登录界面,也就是所谓的循环登录,解决方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值