服务器屏幕看着特别模糊,字也特别大,很多软件的画面一打开就被填充了,很不爽,为了爽,努力解决它!
服务器安装的系统是Centos8,i7-9700K,内存16G,显卡也是nvidia RTX 2080,显示屏可支撑的最大分辨率为1920*1080
但是打开设置一看,实际分辨率为1024*768,也没有可更改选项,遂biying之~
xrandr
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 [email protected],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驱动
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有着直接关系。微软为了避免被反垄断起诉,从而将这些关键性的东西给予外包公司进行操作。这就是其高明的手法。
接下来就是安装编译环境:gcc、kernel-devel、kernel-headers (当然,如果你的电脑已经安装了,自然就不用再装了)
# yum -y install gcc kernel-devel kernel-headers
# dnf groupinstall "Development Tools"
# dnf install libglvnd-devel elfutils-libelf-devel
lsmod|grep 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
# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
# dracut /boot/initramfs-$(uname -r).img $(uname -r)
# init 3
bash NVIDIA-Linux-x86_64-375.39.run --no-opengl-files
--no-opengl-files
,不加准备好重装系统,没有secure boot设置成disabled的,之前说过会出什么提示nvidia-smi
# init 5
进入图形界面我这边安装是安装成功了,但是每次开机登陆输完密码就会闪一下,然后卡住,也不能alt+shift+f跳到命令行,只能通过其他电脑ssh连接上后输入init 3
(转到命令行),登陆后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
进系统解决方案