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

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

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

问题是我无法将桌面分辨率设置为本机1920×1200。 允许的最大分辨率为1600×1200。

我做了一些关于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 

如何将屏幕分辨率设置为1920×1200? 为什么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 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 

我认为当你增加这个时,你会得到某个地方:

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

然后,我想,你将能够让xrandr使用你已经学会了如何定义的自定义模式(如果你在修复基本问题后仍然需要它)。

增加虚拟屏幕尺寸

[This] [1]文章建议在xorg.conf配置文件的Screen部分添加一条虚线以设置最大屏幕大小。 这是几年前的事。 在测试时,我无法将虚拟线路设置为超过xrandr -q给出的最大屏幕尺寸。 但是,我的驱动程序和硬件的价值已经相当大了8192×8192。

您可以通过将其添加为/etc/X11/xorg.conf进行试验,例如:

 “屏幕”部分
    标识符“我的屏幕”
     “显示”小节
        虚拟2048 2048
     EndSubSection
 EndSection 

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

如果您已经有/etc/X11/xorg.conf文件,可以尝试将上面的虚拟行添加到其“屏幕”部分的“显示”子部分

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

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


使用不同的图形驱动程序

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

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


升级Ubuntu

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

由于他不能让fglrx运行,不幸的是ysap的情况。 由于相对于发布ysap的设备的新function,在Lucid(或Maverick)Linux内核中不支持[1002.9802]。 Natty 2.6.38内核中首次支持该设备。 要检查内核模块中特定设备的支持,可以转至/ lib / modules / kernel-version /module.alias文件并搜索适配器的值。 对于该设备:

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

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

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

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

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

对于个人计算机,如果您的Ubuntu版本具有兼容的内核,您也可以使用升级的内核。 对于生产计算机,为了可靠性和稳健性,可能需要在可用时将Ubuntu升级到更新版本。

我也遇到过这个问题(以前有戴尔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 

G’day全部。 当连接到没有屏幕的Ubuntu系统时(我曾经在其他地方需要它),我遇到了这个问题。我不够明白为什么会这样,但这里有一系列命令这对我有用 – 无需编辑文件。

注意:重新启动时,需要再次运行它们。 我建议使用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 

我将上面的行(从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,因此输出的名称。

尝试安装arandr以使用GUI设置xrandr配置。

 sudo apt install arandr 

然后设置显示器的分辨率,方向和位置,最后保存配置。

你可以看到它的输出是一个shell脚本(.sh),通常在〜/ .screenlayout上