Como detectar e configurar uma saída com xrandr?


33

Eu tenho um monitor DELL U2410 conectado a um desktop Compaq 100B equipado com uma placa de vídeo AMD / ATI integrada (AMD E-350). O sistema operacional instalado é o Ubuntu 10.04 LTS.

O computador está conectado ao monitor através da conexão DVI.

O problema é que não consigo definir a resolução da área de trabalho como 1920x1200 nativa. A resolução máxima permitida é 1600x1200.

Fazendo algumas pesquisas que encontrei sobre o xrandrutilitário. Infelizmente, ao tentar usá-lo, não consigo configurá-lo para a resolução necessária. Primeiro, ele não informa o nome da saída (que deveria ser DVI-0), dizendo em seu defaultlugar. Sem ele, não posso usar a --fbopção.

O utilitário EDID parece identificar bem o monitor. Aqui está a saída de 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

mas o xrandr -qcomando retorna:

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  

Quando tento definir a resolução, recebo:

$ 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

Como posso definir a resolução da tela para 1920x1200? Por que não xrandridentifica a DVI-0saída?

Observe que o mesmo computador executando a versão do Ubuntu superior a 10.04 detecta a resolução correta sem problemas. Não é possível atualizar nesta máquina devido a alguns problemas de compatibilidade de hardware herdados.

Além disso, não vejo nenhum driver de tela opcional disponível na caixa de diálogo Drivers de hardware.

----

ATUALIZAÇÃO :

seguindo a resposta a esta pergunta , obtive algum avanço. Agora, o modo necessário está listado na xrandr -qlista, mas não posso mudar para esse modo. Usando o miniaplicativo Monitores (que agora mostra o novo modo), recebo a resposta de que:

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

Na linha de comando, fica assim:

$ 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

Outra informação (se ajudar alguém):

$ 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

----

ATUALIZAÇÃO 2 : Aqui está a lshwlista atualizada :

$ 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

Se eu verifiquei corretamente, você tem um monitor de LED - mas o seu software "xrandr" deseja configurar um "crtc" - que é um monitor de cátodo. Não sei o que fazer agora - mas talvez você encontre alguma configuração que possa mudar para que tente falar com o monitor LED. Espero que isso ajude um pouco. Desculpe.
Peterling 10/09/12

@ Peter - notei que esta é uma mensagem recorrente para outros que relatam esse erro, mas é verdade que é estranho. Eu não tenho idéia do que fazer sobre isso.
ysap 11/09/12

1
Agora, um "crtc" é apenas um termo. Os pixels ainda têm tempo limite em linhas e pixels eo crtc é o mecanismo de relógio na lógica do vídeo que produz um tempo correto para uma determinada resolução. Quando o termo foi introduzido, "crtc" era um circuito integrado individual real e a tela podia ser apenas um CRT.
John S Gruber

Qual driver de vídeo você está usando?
John S Gruber

@JohnSGruber - como você sabe?
ysap 12/09

Respostas:


9

Eu acho que você terá chegado a algum lugar quando conseguir isso:

Tela 0: mínimo 640 x 400, atual 1600 x 1200, máximo 1600 x 1200    
                                                  ⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑⇑
 

Então, eu acho que você poderá fazer com que o xrandr use o modo personalizado que aprendeu a definir (se ainda precisar dele depois de corrigir o problema básico).

Aumentar o tamanho da tela virtual

O artigo [Este] [1] sugere adicionar uma linha virtual à seção Screen de um arquivo de configuração xorg.conf para definir o tamanho máximo da tela. É de alguns anos atrás. Ao testar isso, não consegui definir a linha virtual além do tamanho máximo de tela fornecido por xrandr -q, no entanto. No entanto, com meu driver e hardware, esse valor já era bastante grande de 8192x8192.

Você pode experimentar adicionando isso como /etc/X11/xorg.conf, por exemplo:

Seção "Tela"
    Identificador "Minha tela"
    Subseção "Exibição"
        Virtual 2048 2048
    EndSubSection
EndSection

Você provavelmente não verá um /etc/X11/xorg.conf, pois os drivers de vídeo atuais tentarão determinar padrões razoáveis ​​para tudo e as distribuições modernas deixam esse arquivo de fora. Ele será usado se presente, no entanto.

Se você já possui um arquivo /etc/X11/xorg.conf, tente adicionar a linha virtual acima à subseção Exibir da seção Tela

Eu sugiro que você teste isso com um editor de linha de comando, pois há alguma chance de que você atrapalhe sua capacidade de entrar com a GUI do Ubuntu e você pode precisar fazer Alt-Ctrl-F1, entrar e editar (ou remover) o arquivo usando ferramentas de linha de comando. Quaisquer erros devem ser encontrados em /var/log/Xorg.0.log ou /var/log/Xorg.1.log.

Na verdade, você pode e deve testar isso efetuando login em uma identificação de usuário adicional no seu sistema (sem desconectar-se da identificação de usuário habitual) e verificando a partir da nova sessão, dessa forma, você pode usar Alt-Ctrl-F7 para voltar ao seu trabalho GUI se houver problemas. No caso de você estar usando um ID de usuário adicional para efetuar login sem sair do primeiro, o log apropriado será /var/log/Xorg.1.log. Não efetue logout da sessão de trabalho ou inicialize até ter um xorg.conf funcionando ou removê-lo novamente.


Use um driver gráfico diferente

Outro artigo que li li resolveu esse problema alternando os drivers, mas vejo na sua pergunta que o programa Drivers Adicionais não oferece alternativas. (Suponho que seja o que você quis dizer acima quando mencionar a "caixa de diálogo Drivers de Hardware". A menos que você altere os drivers com o programa Drivers Adicionais, você usará um driver que o kernel considere apropriado para sua placa de vídeo ou a lógica de vídeo na placa-mãe.

Para o OP, pelo que você descreveu em seus comentários acima, parece que seu sistema deve estar usando o driver radeon, mas não está. Eu uso o driver radeon e geralmente defino minha resolução horizontal para 1920 (o máximo para o driver / cartão parece ser 8192). Os drivers vesa e fb são drivers muito básicos para hardware antigo - idade suficiente para que os monitores daquela época não tivessem telas muito grandes.


Atualizar o Ubuntu

Se você estiver executando um computador mais recente que a versão Ubuntu que você instalou e, em particular, seu kernel Linux, é completamente possível que o kernel não reconheça seu adaptador gráfico. Se for esse o caso, você precisará atualizar o software Ubuntu, que contém suporte para o seu equipamento.

Como ele não pode executar o fglrx, infelizmente esse é o caso do ysap. Devido à novidade deste equipamento em relação ao lançamento do ysap, não há suporte para [1002.9802] no kernel Linux Lucid (ou Maverick). O primeiro suporte para este equipamento apareceu no kernel Natty 2.6.38. Para verificar o suporte para um dispositivo específico nos módulos do kernel, você pode ir para o arquivo / lib / modules / kernel-version /module.alias e procurar o valor do adaptador. Para esse equipamento:

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

Para verificar o suporte ao kernel de Natty. Responde:

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

Como teste, você pode tentar inicializar um CD ao vivo no sistema e definir a resolução desejada nesse ambiente (clique em Experimente o Ubuntu, em vez de Instalar).

A obtenção de suporte de driver apropriado também pode permitir instalações gráficas modernas, como renderização direta e suporte a OpenGL, melhorando consideravelmente o desempenho e a estética.

Para um computador pessoal, você também poderá usar um kernel atualizado se um compatível estiver disponível para a sua versão do Ubuntu. Para um computador de produção, pode ser necessário atualizar o Ubuntu para uma versão mais recente, quando disponível, por uma questão de confiabilidade e robustez.


1
O estranho é que não tenho nenhum xorg.conflugar no sistema de arquivos. Mas, se meu entendimento estiver correto, no gnomo moderno esse arquivo é obsoleto e não é necessário. Eu encontrei o xorg.conf.dprograma e a página de manual relevante.
ysap 12/09

O /etc/X11/xorg.conf não é mais necessário para o hardware da maioria dos sistemas, mas não é obsoleto - você pode fornecer um para definir os detalhes necessários. Foi assim que tentei o acima. Esses detalhes também podem ser colocados em um arquivo que você adiciona ao diretório /etc/X11/xorg.conf.d/. Vou adicionar um exemplo.
John S Gruber

Vamos ver se isso é mais claro. Por favor, deixe-me saber se não.
John S Gruber

Obrigado John. Testei o arquivo xorg.conf que você postou e, de fato, ele estragou minha exibição quando troquei de conta, então tive que removê-lo.
ysap 12/09

No Ubuntu 10.04, há um applet "Unidades de Hardware" no menu Sistema / Administração. Este applet não listou drivers alternativos. No entanto , acabei de perceber que o PC em questão não está conectado à Internet no momento (estamos em uma demonstração no momento), por isso é possível que, quando voltarmos ao escritório, encontrarei uma alternativa de driver da ATI. Lembro-me vagamente desse passado que os drivers proprietários não resolveram o problema e nunca consegui obter essa resolução com a versão 10.04.
ysap 12/09

15

Eu também encontrei esse problema (costumava ter uma tela Dell 23 ")

Primeiro, determine qual interface está conectada ao seu monitor:

$ xrandr -q

A saída do comando será:

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  

O monitor externo está conectado à porta VGA-0 . Isso é importante notar.

Agora adicione um novo modo para exibir:

$ 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

Isso não funciona para alterar a tela embutida, certo?
KhoPhi

Erro BadMatch com ex .: xrandr --addmode "DVI-I-1" "1280x800_60.00"alguma ideia? (DVI-I-1 está conectado)
Aquarius Power

@AquariusPower Tente em DVI-1-1vez deDVI-I-1
WinEunuuchs2Unix

6

Bom dia a todos. Eu tive esse problema ao conectar-me a um sistema Ubuntu que não possui tela (costumava ter uma tela Dell 24 ", mas era necessária em outro lugar). Não sou brilhante o suficiente para saber por que isso funciona, mas aqui está uma série de comandos o que funciona para mim - não é necessária edição de arquivo.

Nota: quando você reiniciar, precisará executá-los novamente. Eu sugiro um script de 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

Isso funciona incrivelmente bem!
Folkert van Heusden

4

Adicionei as linhas acima (obtive uma saída ligeiramente diferente do comando gtf) ao arquivo .xprofile no meu diretório pessoal. Funcionou como um sonho. Ver abaixo.

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

Estou usando o Vmware Player, daí o nome da saída.


2

tente instalar o arandr para configurar sua configuração do xrandr com uma GUI .

sudo apt install arandr

Em seguida, defina a resolução, orientação e posição dos monitores e, finalmente, salve a configuração.

você pode ver que sua saída é um shell script (.sh) geralmente em ~ / .screenlayout

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.