如何使用 xrandr 检测和配置输出?

如何使用 xrandr 检测和配置输出?

我有一台 DELL U2410 显示器,连接到配备集成 AMD/ATI 显卡 (AMD E-350) 的 Compaq 100B 台式机。安装的操作系统是 Ubuntu 10.04 LTS。

计算机通过 DVI 连接连接到显示器。

问题是我无法将桌面分辨率设置为原始的 1920x1200。允许的最大分辨率是 1600x1200。

经过一番研究,我发现了该xrandr实用程序。不幸的是,当我尝试使用它时,我无法将其配置为所需的分辨率。首先,它没有报告输出名称(应该是DVI-0),default而是说。没有它,我无法使用该--fb选项。

EDID 实用程序似乎可以很好地识别显示器。以下是 的输出get-edid

    # EDID version 1 revision 3
Section "Monitor"
    # Block type: 2:0 3:ff
    # Block type: 2:0 3:fc
    Identifier "DELL U2410"
    VendorName "DEL"
    ModelName "DELL U2410"
    # Block type: 2:0 3:ff
    # Block type: 2:0 3:fc
    # Block type: 2:0 3:fd
    HorizSync 30-81
    VertRefresh 56-76
    # Max dot clock (video bandwidth) 170 MHz
    # DPMS capabilities: Active off:yes  Suspend:yes  Standby:yes

    Mode    "1920x1200" # vfreq 59.950Hz, hfreq 74.038kHz
        DotClock    154.000000
        HTimings    1920 1968 2000 2080
        VTimings    1200 1203 1209 1235
        Flags   "-HSync" "+VSync"
    EndMode
    # Block type: 2:0 3:ff
    # Block type: 2:0 3:fc
    # Block type: 2:0 3:fd
EndSection

xrandr -q命令返回:

Screen 0: minimum 640 x 400, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
   1600x1200       0.0* 
   1280x1024       0.0  
   1152x864        0.0  
   1024x768        0.0  
   800x600         0.0  
   640x480         0.0  
   720x400         0.0  

当我尝试设置分辨率时,我得到:

$ xrandr --fb 1920x1200
xrandr: screen cannot be larger than 1600x1200 (desired size 1920x1200)

$ xrandr --output DVI-0 --auto
warning: output DVI-0 not found; ignoring

如何将屏幕分辨率设置为 1920x1200?为什么无法xrandr识别DVI-0输出?

请注意,运行 Ubuntu 10.04 以上版本的同一台计算机可以毫无问题地检测到正确的分辨率。在这台机器上,由于一些遗留的硬件兼容性问题,我无法升级。

另外,我没有在“硬件驱动程序”对话框中看到任何可用的可选屏幕驱动程序。

----

更新

回答以下问题这个问题,我得到了一些进展。现在所需的模式已列在xrandr -q列表中,但我无法切换到该模式。使用监视器小程序(现在显示新模式),我得到的响应是:

The selected configuration for displays could not be applied. Could not set the configuration to CRTC 262

从命令行它看起来像这样:

$ cvt 1920 1200 60
# 1920x1200 59.88 Hz (CVT 2.30MA) hsync: 74.56 kHz; pclk: 193.25 MHz
Modeline "1920x1200_60.00"  193.25  1920 2056 2256 2592  1200 1203 1209 1245 -hsync +vsync

$ xrandr --newmode "1920x1200_60.00"  193.25  1920 2056 2256 2592  1200 1203 1209 1245 -hsync +vsync

$ xrandr -q
Screen 0: minimum 640 x 400, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
   1600x1200       0.0* 
   1280x1024       0.0  
   1152x864        0.0  
   1024x768        0.0  
   800x600         0.0  
   640x480         0.0  
   720x400         0.0  
  1920x1200_60.00 (0x120)  193.0MHz
        h: width  1920 start 2056 end 2256 total 2592 skew    0 clock   74.5KHz
        v: height 1200 start 1203 end 1209 total 1245           clock   59.8Hz

$ xrandr --addmode default 1920x1200_60.00

$ xrandr -q
Screen 0: minimum 640 x 400, current 1600 x 1200, maximum 1600 x 1200
default connected 1600x1200+0+0 0mm x 0mm
   1600x1200       0.0* 
   1280x1024       0.0  
   1152x864        0.0  
   1024x768        0.0  
   800x600         0.0  
   640x480         0.0  
   720x400         0.0  
   1920x1200_60.00   59.8  

$ xrandr --output default --mode 1920x1200_60.00
xrandr: Configure crtc 0 failed

另一条信息(如果它对任何人有帮助):

$ sudo lshw -c video
  *-display UNCLAIMED     
       description: VGA compatible controller
       product: ATI Technologies Inc
       vendor: ATI Technologies Inc
       physical id: 1
       bus info: pci@0000:00:01.0
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: pm pciexpress msi bus_master cap_list
       configuration: latency=0
       resources: memory:c0000000-cfffffff(prefetchable) ioport:f000(size=256) memory:feb00000-feb3ffff

----

更新2:以下是更新后的lshw列表:

$ sudo lshw -numeric -c video
  *-display UNCLAIMED     
       description: VGA compatible controller
       product: ATI Technologies Inc [1002:9802]
       vendor: ATI Technologies Inc [1002]
       physical id: 1
       bus info: pci@0000:00:01.0
       version: 00
       width: 32 bits
       clock: 33MHz
       capabilities: pm pciexpress msi bus_master cap_list
       configuration: latency=0
       resources: memory:c0000000-cfffffff(prefetchable) ioport:f000(size=256) memory:feb00000-feb3ffff

答案1

我也遇到过这个问题(以前有一台戴尔 23 英寸屏幕)

首先,确定哪个接口连接到你的显示器:

$ xrandr -q

命令输出将是:

mukolla@pk:~$ xrandr -q

Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192

LVDS connected (normal left inverted right x axis y axis)
   1366x768       60.0 +
   1280x720       59.9  
   1152x768       59.8  
   1024x768       59.9  
   800x600        59.9  
   848x480        59.7  
   720x480        59.7  
   640x480        59.4  

HDMI-0 disconnected (normal left inverted right x axis y axis)

VGA-0 connected ......

   1024x768       75.1     60.0  
   800x600        75.0     60.3  
   640x480        75.0     60.0  
   720x400        70.1  

外接显示器已连接至端口VGA-0. 这一点值得注意。

现在添加一个新模式来显示:

$ xrandr --newmode "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync
$ xrandr --addmode VGA-0 1920x1080_60.00
$ xrandr --output VGA-0 --mode 1920x1080_60.00

答案2

我认为,当你让这个数字增加时,你就会取得一些进展:

屏幕 0:最小 640 x 400,当前 1600 x 1200,最大 1600 x 1200    
                                                  ⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑
 

然后,我认为,您将能够让 xrandr 使用您已经学会如何定义的自定义模式(如果在解决基本问题后仍然需要它)。

增加虚拟屏幕尺寸

[此][1] 文章建议在 xorg.conf 配置文件的 Screen 部分添加 Virtual 行来设置最大屏幕尺寸。这是几年前的。然而,在测试时,我无法将 Virtual 行设置为超过 给出的最大屏幕尺寸xrandr -q。但是,对于我的驱动程序和硬件,该值已经相当大了,为 8192x8192。

您可以尝试将其添加为 /etc/X11/xorg.conf,例如:

“屏幕”部分
    标识符“我的屏幕”
    “显示”子节
        虚拟 2048 2048
    结束子节
结束部分

您可能看不到 /etc/X11/xorg.conf,因为当今的视频驱动程序将尝试确定所有内容的合理默认值,而现代发行版将忽略该文件。但是,如果存在,它将被使用。

如果你已经有 /etc/X11/xorg.conf 文件,你可以尝试将上面的 Virtual 行添加到其 Screen 部分的 Display 子部分

我建议您使用命令行编辑器进行测试,因为它可能会影响您使用 Ubuntu GUI 登录的能力,您可能需要按 Alt-Ctrl-F1,登录,然后使用命令行工具编辑(或删除)文件。任何错误都应在 /var/log/Xorg.0.log 或 /var/log/Xorg.1.log 中。

事实上,您可以也应该通过登录系统上的其他用户 ID(不注销常用用户 ID)并从新会话中进行检查来测试这一点,这样,如果出现问题,您可以使用 Alt-Ctrl-F7 返回到您的工作 GUI。如果您使用其他用户 ID 登录而不注销第一个用户 ID,则相应的日志将是 /var/log/Xorg.1.log。在 xorg.conf 正常工作或再次将其删除之前,请不要注销工作会话或启动。


使用不同的图形驱动程序

我读过的另一篇文章通过切换驱动程序解决了这个问题,但我从你的问题中看到,附加驱动程序程序没有给你任何替代方案。(我假设这就是你上面提到的“硬件驱动程序对话框”的意思。除非你用附加驱动程序程序更改驱动程序,否则你将使用内核认为适合你的视频卡或主板上的视频逻辑的驱动程序。

对于 OP,从您在上面的评论中描述的内容来看,您的系统应该使用 radeon 驱动程序,但实际上并非如此。我使用 radeon 驱动程序,通常将水平分辨率设置为 1920(驱动程序/卡的最大分辨率似乎为 8192)。vesa 和 fb 驱动程序是旧硬件的非常基本的驱动程序——旧到那个时代的显示器没有非常大的显示屏。


升级 Ubuntu

如果您运行的计算机比您安装的 Ubuntu 版本更新,特别是其 Linux 内核,则内核完全有可能无法识别您的图形适配器。如果是这种情况,您需要升级包含对您的设备支持的 Ubuntu 软件。

由于他无法运行 fglrx,不幸的是 ysap 也遇到了这种情况。由于此设备相对于 ysap 正在运行的版本而言较新,因此 Lucid(或 Maverick)Linux 内核不支持 [1002.9802]。此设备的第一个支持出现在 Natty 2.6.38 内核中。要检查内核模块中对特定设备的支持,您可以转到 /lib/modules/内核版本/module.alias 文件并搜索适配器的值。对于该设备:

grep v00001002d00009802 /lib/modules/2.6.38-10-generic/modules.alias

检查 Natty 的内核支持情况。它回复:

alias pci:v00001002d00009802sv*sd*bc*sc*i* radeon

作为测试,您可以尝试在系统上启动实时 CD,并尝试在该环境中设置所需的分辨率(单击“尝试 Ubuntu”,而不是“安装”)。

获得适当的驱动程序支持还可以启用现代图形功能,如直接渲染和 OpenGL 支持,大大提高性能和美观度。

对于个人电脑,如果您的 Ubuntu 版本有兼容的内核,您也可以使用升级的内核。对于生产计算机,为了可靠性和稳定性,可能需要将 Ubuntu 升级到较新版本(如果有)。

答案3

大家好。我在连接到没有屏幕的 Ubuntu 系统时遇到了这个问题(以前有一个戴尔 24 英寸屏幕,但其他地方需要它)。我不太清楚为什么会这样,但这里有一系列对我有用的命令 - 无需编辑文件。

注意:重新启动时,需要再次运行它们。我建议使用 shell 脚本。

gtf 1920 1200 60 -x
xrandr --newmode "1920x1200_60.00"  193.16  1920 2048 2256 2592  1200 1201 1204 1242  -HSync +Vsync
xrandr --addmode VGA1 1920x1200_60.00
xrandr --output VGA1 --mode 1920x1200_60.00

答案4

我将上述几行(与 gtf 命令的输出略有不同)添加到我的主目录中的 .xprofile 文件中。效果非常好。见下文。

gtf 1920 1080 60 -x

xrandr --newmode "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync

xrandr --addmode Virtual1 1920x1080_60.00

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

我正在使用 Vmware Player,因此输出的名称如此。

相关内容