Linux装完显卡驱动后分辨率显示不正常的解决方法

乐清SEO_开发应用_linux_ 乐清SEO2021-04-09 转载自:

不少人在更新完后,出现显示不正常的现象,遇到这类问题不用担心,下面小编就教你如何解决Linux显卡驱动安装后分辨率无法正常显示的问题,一起来学习下吧。

  驱动安装:

  这里得说明一下,安装新的显卡驱动也有不完美的地方,就是开机进入系统的时候没有了进度圈的可视化图案,而且很有可能要强制修改分辨率才能正常显示,但安装显卡驱动后可以使用系统自带的桌面特效(很炫),而使用默认的noveau则有可视化的进度圈,分辨率也是不正常的,也可以强制修改,但不能使用系统自带的桌面特效。后面都有介绍方法,可自行选择。

  1.到NIVIDIA官方网下载对应显卡型号的驱动(格式为xxxxx.run)

  在Linux下查找自己显卡信息的指令为:lspci | grep VGA

  2.关闭系统默认安装好的显卡驱动nouveau:

  1) vim/etc/modprobe.d/blacklist.conf,在文件最后加上blacklist nouveau

  2) 重建image :

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

  dracut -v /boot/initramfs-$(uname -r).img $(uname -r)

  3.安装 gcc kernel-devel(驱动编译工具):

  yum -y install gcckernel-devel

  (这要求自己配好yum源,本blog也有简单介绍配yum源的文章)

  4.进入图形化界面:

  init 3

  5.登录root,进入xxx.run驱动程序所在的路径,然后执行:sh xxx.run

  (驱动安装完后,会出现非常坑爹的情况,就是3D加速可渲染能够使用了,即桌面特效可以用了,但是分辨率出超级小,异常的很,所以还要修改分辨率)

  分辨率设置:

  首先得说明,这里的分辨率修改是不完美的,因为毕竟是强制性的修改,但是本人是强迫症患者,所以在强制修改后做了一些后期的补救,所以总的来说这个不完美的修改,比起扁得像一砣翔的分辨率来说,还是可以接受的。

  这里有两种强制修改分辨率的方法:

  一、使用默认的显卡驱动nouveau

  若使用默认的显卡驱动,则不需要关闭nouveau,只需执行一下的命令即可强制修改分辨率:

  1)cvt 1920 1080 60 //19201080是你想要的分辨率 60是刷新率

  执行结果:

  # 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16kHz; pclk: 173.00 MHz

  Modeline “1920x1080_60.00” 173.00 1920 2048 2248 2576 10801083 1088 1120 -hsync +vsync

  注意:173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync+vsync 这个数据很重要,后面需要用到

  2)xrandr --newmode “1920x1080_60.00”173.00 1920 2048 2248 2576 10801083 1088 1120 -hsync +vsync

  注意,这里使用的数据“173.00 1920 20482248 2576 1080 1083 1088 1120 -hsync+vsync”就是上面第一步中得到的数据,而“1920x1080_60.00”是自己定义的新的模式的名称,如果你想要的分辨率是800x600,当然你可以改为“800x600”或者“800x600_60.00”(60.00只是标明刷新率是60,不是必要的)

  3)xrandr --addmode VGA-0 “1920x1080_60.00”

  注意,这里的VGA-0不是固定的,而是根据具体的设备定的,有可能是VGA-0,VGA-1又或者是DIV1,DIV0都有可能,可通过xrandr指令查看当前连接的是哪个设备,一般在xrandr指令输出信息的前几行可以看到有个***connected xxxx,这个***就是你要使用的设备,上述指令的“1920x1080_60.00”参数就是在第二步里面添加的分辨率模式。

  4)xrandr --output VGA-0 --mode“1920x1080_60.00”

  VGA-0 和“1920x1080_60.00“参数意思同上,guess what.

  这步做完,就会发现分辨率已经修改好了,但是一重启之后,就会发现,又恢复到原来的低分辨率了,所以这里可以做一个脚本,使每次登录的时候都自动执行这个脚本,那么只要一登录就会自动地把分辨率改过来了,系统会报“xxx不正常”的错误,但这个并不会影响使用。

  脚本编写:

  1.vim xrandr-config.sh

  2.在xrandr-config.sh文件中输入:

  #!/bin/bash

  xrandr --newmode “1920x1080_60.00” 173.00 1920 2048 2248 2576 10801083 1088 1120 -hsync +vsync;

  xrandr --addmode VGA-0 “1920x1080_60.00”;

  xrandr --output VGA-0 --mode“1920x1080_60.00”

  (注意,这里只是把上面的操作全部移到一个脚本中,但是里面省略了第一步,即cvt xxxx 这一部,因为cvt xxx得出的结果是固定不变的,所以我们可以记录下第一步的数据直接放到第二部中去使用)

  3.保存推出后vim /etc/profile,在文件最后加上xrandr-config.sh所在的路径及名称,如我放在/root/Documents里面,则在/etc/profile最后加上/root/Documents/xrand-config.sh

  4.重启,用户登录后就会自动执行脚本强制修改分辨率了。

  二、安装显卡驱动后强制修改分辨率

  步骤同上,重启之后也有同样的问题,这里写好的脚本重启之后却没有任何效果,

  但是却有一个很好的解决方法,在安装了Nvidia驱动后,系统会多了一个Nvidia x serversettings的程序,执行修改分辨率的脚本之后,点击打开 Nvidia x server settings这个程序,然后在左侧目录选择 x server display configuration ,这时在右下退出和帮助按钮上面有个saveto x configuration file的按钮,点击一下保存,下次打开就可自动修改分辨率了!

  最后还有一个问题就是在修改完分辨率后可能会遇到字体显示很奇怪的情况,这只是因为字体小而以,只需要点击右键选择更改桌面背景,然后选择字体,把所有字体都选大一两号,就可以完美地显示了。

  上面就是Linux安装显卡驱动后分辨率显示不正常的解决方法介绍了,通常遇到这个问题后可以使用两种方法进行解决,改回原来使用的显卡驱动或者强制修改分辨率。