Ubuntu宽屏显示器只有4:3分辨率问题的解决:用cvt和xrandr命令查看并配置显卡分辨率到1440x900

问题:

不知道怎么回事(可能是自己在显示中间加入了一个二拖一的显示盒子的原因),某台Ubuntu Linux设备(192.168.0.13)的显示分辨率变成了1024*768,结果宽屏显示器上会有很大的一块黑,铺不满。

调节显示器,结果它一会儿往中间调,一会儿往最右边调,分辨率限制了肯定有一大块黑留着。

到系统的"Display"显示配置里面去,发现只有1024*768这样的4:3的分辨率,唯一的16:9的分辨率是848*480,这根本没法用啊。

我记得以前它是16:9的桌面啊(记不太清了,主要很少用它的桌面),但是现在这样用起来很难受,于是寻求解决方法。

解决问题

首先到系统的显示设置里,看有没有合适的分辨率,发现没有。

考虑是不是显卡驱动没有装?如果缺驱动,就用下面命令来安装。

查看和安装驱动

使用下面命令:

复制代码
sudo ubuntu-drivers devices
sudo ubuntu-drivers autoinstall

结果sudo ubuntu-drivers devices没有任何显示,看来是没有驱动需要安装了?反而另一台vmware虚拟机会有显示:

复制代码
# 这是另一台设备的显示
sudo ubuntu-drivers devices
ERROR:root:aplay command not found
== /sys/devices/pci0000:00/0000:00:02.0 ==
modalias : pci:v000015ADd00000405sv000015ADsd00000405bc03sc00i00
vendor   : VMware
model    : SVGA II Adapter
manual_install: True
driver   : open-vm-tools-desktop - distro free

对于这台机器,没有什么驱动可以安装的。

使用cvt和xrandr命令行工具设置

xrandr查看显卡显示输出信息

先用xrandr查询当前显卡输出端口和可用模式,执行命令

复制代码
xrandr

显示

复制代码
xrandr
Screen 0: minimum 320 x 200, current 1280 x 768, maximum 16384 x 16384
VGA-1 connected primary 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00*
   800x600       60.32    56.25
   848x480       60.00
   640x480       59.94
DP-1 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected 1280x720+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1280x720_60.00  59.86*
DP-2 disconnected (normal left inverted right x axis y axis)
HDMI-2 disconnected (normal left inverted right x axis y axis)

可以看到有如下5个显示输出口,现在接的是VGA-1这个接口。VGA-1这个接口分辨率除了800*480,其它三个都是4:3的,不匹配宽屏。这时候就要用cvt来生成自己需要的分辨率

使用cvt命令生成分辨率

比如生成1280 720

复制代码
cvt 1280 720

输出

复制代码
cvt 1280 720
# 1280x720 59.86 Hz (CVT 0.92M9) hsync: 44.77 kHz; pclk: 74.50 MHz
Modeline "1280x720_60.00"   74.50  1280 1344 1472 1664  720 723 728 748 -hsync +vsync

比如生成1440 900

复制代码
cvt 1440 900

输出

复制代码
cvt 1440 900
# 1440x900 59.89 Hz (CVT 1.30MA) hsync: 55.93 kHz; pclk: 106.50 MHz
Modeline "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync

这些输出的Modeline后面的部分,就是在xrandr添加配置需要的内容。

使用xrandr添加显示分辨率新模式并应用

添加1280x720_60.00 ,参数用前面cvt获得的Modeline后面的部分:

复制代码
xrandr --newmode "1280x720_60.00"   74.50  1280 1344 1472 1664  720 723 728 748 -hsync +vsync
xrandr --addmode HDMI-1 1280x720_60.00
xrandr --output HDMI-1 --mode 1280x720_60.00

添加1440x900_60.00

后来发现显示器提示最佳分辨率是1440*900,所以最终执行的配置如下:

复制代码
xrandr --newmode "1440x900_60.00"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
xrandr --addmode VGA-1 1440x900_60.00
xrandr --output VGA-1 --mode 1440x900_60.00

执行完这三条命令,就会发现显示器的分辨率已经调整完毕。在1440*900下显示舒服很多。

确认分辨率调节完毕

这时候再用xrandr看看显示配置,就能看到现在确实在1440x900_60.00 59.89* 分辨率:

复制代码
xrandr
Screen 0: minimum 320 x 200, current 1440 x 900, maximum 16384 x 16384
VGA-1 connected primary 1440x900+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      60.00
   800x600       60.32    56.25
   848x480       60.00
   640x480       59.94
   1440x900_60.00  59.89*

保存配置到文件/etc/X11/xorg.conf.d/99-custom-resolution.conf

将配置保存到文件/etc/X11/xorg.conf.d/99-custom-resolution.conf,直接执行下面命令,就会自动创建文件并写入配置。

复制代码
echo "Section \"Monitor\"
    Identifier \"VGA-1\"
    Modeline \"1440x900_60.00\"  106.50  1440 1528 1672 1904  900 903 909 934 -hsync +vsync
    Option \"PreferredMode\" \"1440x900_60.00\"
EndSection" | sudo tee -a /etc/X11/xorg.conf.d/99-custom-resolution.conf

这时再去系统的"Display"显示配置里面去,发现已经有了1440x900分辨率的选项。

相关推荐
WHD30626 分钟前
苏州勒索病毒加密 服务器数据解密恢复
运维·服务器
蜡笔小炘38 分钟前
LVS -- 持久链接(Persistent Connection)实现会话粘滞
运维·服务器
生活很暖很治愈1 小时前
Linux——孤儿进程&进程调度&大O(1)调度
linux·服务器·ubuntu
HalvmånEver1 小时前
Linux:线程同步
linux·运维·服务器·线程·同步
Zach_yuan1 小时前
自定义协议:实现网络计算器
linux·服务器·开发语言·网络
岁杪杪1 小时前
关于运维:LINUX 零基础
运维·服务器·php
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [drivers][I2C]I2C
linux·笔记·学习
VekiSon2 小时前
Linux内核驱动——杂项设备驱动与内核模块编译
linux·c语言·arm开发·嵌入式硬件
tianyuanwo2 小时前
企业级NTP客户端配置指南:基于内部NTP服务器的实践
运维·服务器·ntp客户端
芷栀夏2 小时前
CANN开源实战:基于DrissionPage构建企业级网页自动化与数据采集系统
运维·人工智能·开源·自动化·cann