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分辨率的选项。

相关推荐
tianyuanwo2 小时前
Bash与Sh的诞生背景、底层原理及Linux多Shell解释器兼容性解析
linux·开发语言·bash
十月南城2 小时前
微服务化的收益与成本复盘——技术、组织与运维维度的综合账本
运维·微服务·云计算
都小事儿2 小时前
U-boot:自搬移
linux·spring boot
JiMoKuangXiangQu2 小时前
Linux 内存 domain 管理
linux·内存管理·domain
warton882 小时前
ubuntu24下操作配置mysql8相关目录到指定地址
linux·运维·mysql
小亮亮虫2 小时前
linux-交叉编译链安装
linux
学Linux的语莫2 小时前
本地部署ollama
linux·服务器·langchain
`林中水滴`2 小时前
Linux系列:Linux 安装 MySQL 5.7.27 教程
linux·mysql
peixiuhui2 小时前
EdgeGateway 快速开始手册-串口服务器
运维·人工智能·网关·边缘计算·工业控制·串口服务器·iotgateway