Как обнаружить и настроить вывод с помощью xrandr?

33

У меня есть монитор DELL U2410, подключенный к настольному компьютеру Compaq 100B, оснащенному встроенной видеокартой AMD / ATI (AMD E-350). Установленная O / S - 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списке, но я не могу переключиться в этот режим. Используя апплет Monitors (который теперь показывает новый режим), я получаю ответ:

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
ysap
источник
Если я проверил это правильно, у вас есть светодиодный монитор - но ваше программное обеспечение «xrandr» хочет настроить «crtc» - это катодный монитор. Я не знаю, что делать сейчас, но, возможно, вы найдете какую-то настройку, которую вы можете изменить, чтобы она пыталась связаться со своим светодиодным монитором. Надеюсь, что это помогает немного. Сожалею.
Питерлинг
@Peterling - я заметил, что это повторяющееся сообщение для других, сообщающих об этой ошибке, но это правда, что это странно. Я понятия не имею, что с этим делать.
ysap
1
Теперь "CRTC" это просто термин. Пиксели по-прежнему синхронизируются в строках и пикселях, и crtc - это тактовый механизм в логике видео, который выдает правильную синхронизацию для определенного разрешения. Когда термин был введен, "crtc" был реальной индивидуальной интегральной схемой, и дисплей мог быть только CRT.
Джон С. Грубер
Какой видеодрайвер вы используете?
Джон С. Грубер
@JohnSGruber - как ты можешь сказать?
2012 г.

Ответы:

9

Я думаю, что вы получите где-нибудь, когда вы увеличите это:

Экран 0: минимум 640 x 400, ток 1600 x 1200, максимум 1600 x 1200    
                                                  ⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑
 

Затем, я думаю, вы сможете заставить xrandr использовать пользовательский режим, который вы научились определять (если он вам все еще нужен после исправления основной проблемы).

Увеличить размер виртуального экрана

[Эта] [1] статья предлагает добавить виртуальную строку в раздел Screen файла конфигурации xorg.conf, чтобы установить максимальный размер экрана. Это пару лет назад. Однако при тестировании я не смог установить виртуальную строку выше максимального размера экрана, заданного параметром xrandr -q. Однако, с моим драйвером и аппаратным обеспечением это значение было довольно большим 8192x8192.

Вы можете поэкспериментировать, добавив это как /etc/X11/xorg.conf, например:

Раздел "Экран"
    Идентификатор "Мой Экран"
    Подраздел "Дисплей"
        Виртуальный 2048 2048
    EndSubSection
EndSection

Вы, вероятно, не увидите /etc/X11/xorg.conf, поскольку современные видеодрайверы попытаются определить разумные значения по умолчанию для всего, а современные дистрибутивы пропустят этот файл. Однако он будет использоваться, если он есть.

Если у вас уже есть файл /etc/X11/xorg.conf, вы можете попробовать добавить вышеупомянутую виртуальную строку в подраздел Display в разделе Screen.

Я предлагаю вам проверить это с помощью редактора командной строки, поскольку есть некоторый шанс, что он испортит вашу способность войти в систему с помощью графического интерфейса Ubuntu, и вам может потребоваться выполнить Alt-Ctrl-F1, войти в систему и отредактировать (или удалить) файл используя инструменты командной строки. Любые ошибки должны быть в /var/log/Xorg.0.log или /var/log/Xorg.1.log.

Фактически, вы можете и должны проверить это, войдя в дополнительный идентификатор пользователя в вашей системе (без выхода из вашего обычного идентификатора пользователя) и проверив новый сеанс, таким образом вы можете использовать Alt-Ctrl-F7, чтобы вернуться к своей работе. GUI, если есть проблемы. В случае, если вы используете дополнительный идентификатор пользователя для входа без выхода из первого, соответствующим журналом будет /var/log/Xorg.1.log. Не выходите из рабочего сеанса и не загружайтесь, пока у вас не будет рабочий xorg.conf или вы не удалите его снова.


Используйте другой графический драйвер

В другой статье, которую я прочитал, эта проблема решена путем переключения драйверов, но из вашего вопроса я вижу, что программа «Дополнительные драйверы» не дает вам никаких альтернатив. (Я предполагаю, что вы имели в виду выше, когда упоминаете «диалог драйверов оборудования». Если вы не меняете драйверы с помощью программы «Дополнительные драйверы», вы будете использовать драйвер, который ядро ​​сочтет подходящим для вашей видеокарты или логики видео на материнской плате.

Для OP, из того, что вы описали в ваших комментариях выше, видно, что ваша система должна использовать драйвер Radeon, но это не так. Я использую драйвер Radeon и обычно устанавливаю разрешение по горизонтали на 1920 (максимум для драйвера / карты, кажется, 8192). Драйверы vesa и fb - очень простые драйверы для старого оборудования - достаточно старые, чтобы мониторы той эпохи не имели очень больших дисплеев.


Обновите Ubuntu

Если вы используете компьютер, более новый, чем установленная версия Ubuntu, и, в частности, его ядро ​​Linux, вполне возможно, что ядро ​​не распознает ваш графический адаптер. Если это так, вам нужно обновить программное обеспечение Ubuntu, которое содержит поддержку вашего оборудования.

Поскольку он не может запустить fglrx, это, к сожалению, относится к ysap. Из-за новизны этого оборудования по сравнению с выпуском ysap нет поддержки [1002.9802] в ядре Linux Lucid (или Maverick). Первая поддержка этого оборудования появилась в ядре 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

В качестве теста вы можете попытаться загрузить живой компакт-диск в системе и установить желаемое разрешение в этой среде (нажмите «Пробовать Ubuntu», а не «Установить»).

Получение соответствующей поддержки драйверов также может позволить использовать современные графические средства, такие как прямой рендеринг и поддержку OpenGL, что значительно повышает производительность и эстетику.

Для персонального компьютера вы также можете использовать обновленное ядро, если для вашей версии Ubuntu доступно совместимое. Для производственного компьютера может потребоваться обновить Ubuntu до более новой версии, если она доступна, для надежности и надежности.

Джон С. Грубер
источник
1
Странно то, что у меня нет xorg.confнигде в файловой системе. Но, если я правильно понимаю, в современном gnome этот файл устарел и не требуется. Я нашел xorg.conf.dпрограмму и соответствующую справочную страницу.
2012 г.
/etc/X11/xorg.conf больше не требуется для аппаратного обеспечения большинства систем, но он не устарел - вы можете предоставить его, чтобы установить необходимые детали. Вот как я попробовал выше. Эти детали также могут быть помещены в файл, который вы добавляете в каталог /etc/X11/xorg.conf.d/. Я добавлю пример.
Джон С. Грубер
Посмотрим, понятнее ли это. Пожалуйста, дайте мне знать, если нет.
Джон С. Грубер
Спасибо, Джон. Я протестировал файл xorg.conf, который вы разместили, и он действительно испортил мой дисплей, когда я сменил учетные записи, поэтому мне пришлось удалить его.
2012 г.
В Ubuntu 10.04 есть апплет «Аппаратные диски» в меню «Система / Администрирование». В этом апплете нет альтернативных драйверов. Однако я только что понял, что данный ПК в настоящее время не подключен к Интернету (сейчас мы на демоверсии), поэтому возможно, что, вернувшись в офис, я увижу альтернативу драйвера ATI. Из этого прошлого я смутно помню, что проприетарные драйверы не решили проблему, и я так и не смог получить это разрешение с 10.04.
2012 г.
15

Я также столкнулся с этой проблемой (раньше был экран Dell 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
Микола Ткачук
источник
Это не работает для изменения встроенного экрана, верно?
Хофи
Ошибка BadMatch с напр .: xrandr --addmode "DVI-I-1" "1280x800_60.00"есть идеи? (DVI-I-1 подключен)
Водолей Power
@AquariusPower Попробуй DVI-1-1вместоDVI-I-1
WinEunuuchs2Unix
6

Всем привет. У меня была эта проблема при подключении к системе Ubuntu, у которой нет экрана (раньше у нее был экран Dell 24 ", но это было нужно в другом месте). Я не настолько умен, чтобы знать, почему это работает, но вот серия команд который работает для меня - редактирование файлов не требуется.

Обратите внимание: при перезагрузке вам необходимо запустить их снова. Я предлагаю сценарий оболочки.

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
user202431
источник
Это работает удивительно хорошо!
Фолькерт ван Хеусден
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, отсюда и название вывода.

Тим
источник
2

попробуйте установить arandr для настройки конфигурации xrandr с графическим интерфейсом .

sudo apt install arandr

затем настройте разрешение, ориентацию и положение ваших дисплеев и, наконец, сохраните конфигурацию.

вы можете видеть, что его вывод - это скрипт оболочки (.sh), обычно на ~ / .screenlayout

MWM
источник