Nesta oportunidade, explicamos como usar xrandr, unha ferramenta terminal acostumada a correcto la resolución do seu monitor, o seu taxas de avituallamento, etc. e incluso serve para manipular máis dun monitor. |
O usuario normal, principalmente Windows ou Apple, non entende moi ben ás persoas apaixonadas por Linux e que pasan moito tempo na consola de comandos escribindo "cousas estrañas".
O que che vou dicir hoxe é un deses días nos que te sentes especialmente orgulloso de Linux. Esta é a historia:
Meu querido vello monitor CRT da marca HP pavilion mx70, ofréceme unha ampla gama de resolucións, pero o meu Linux Mint LXDE non o recoñece e amósame unha boa resolución de 1024 × 768 pero con só 60 hz de refresco, que non é moi bo para os ollos. En teoría, o monitor pode alcanzar os 85 Hz con esa resolución.
E que fago agora? Ben, o habitual, vai á liña de comandos e XOGA.
usando xrandr
Para modificar as resolucións existe o comando "xrandr" (X Redimensionar e xirar). Con este comando configúrase a resolución da pantalla, pero tamén se poden engadir novas resolucións sempre que o monitor as admita.
Para ver as resolucións detectadas polo sistema, só tes que chamar a este comando e ver o resultado, no meu caso:
informiguel ~ $ xrandr Pantalla 0: mínimo 320 x 200, actual 1024 x 768, máximo 4096 x 4096 VGA-0 conectado 1024x768 + 0 + 0 (eixe x eixo x invertido normal á dereita) 0mm x 0mm 1024x768 60.0 800x600 60.3 56.2 848x480 60.0 640x480 59.9 S-video desconectado (eixo x normal invertido á esquerda eixo x)
Como podes ver, para unha resolución de 1024 × 768 só ofrece 60.0 Hz.
Ben, vou engadir a resolución na que me atopo mellor e que ofrece o meu monitor: 1024 × 768 a 85 Hz. Obviamente, cada monitor ten as súas propias características que hai que consultar.
O problema é que para crear unha nova resolución necesitas datos "moi estraños" como a frecuencia vertical, horizontal, máxima, mínima, total, ... Pero Linux tamén ten a solución co comando "cvt", unha utilidade para calcular Modos VESA necesarios para acadar a resolución. Ben, se quero 1024 × 768 a 85 Hz escribo:
informiguel ~ $ cvt 1024 768 85 # 1024x768 84.89 Hz (CVT 0.79M3) hsync: 68.68 kHz; pclk: 94.50 Mhz Modeline "1024x768_85.00" 94.50 1024 1096 1200 1376 768 771 775 809 -hsync + vsync
Tamén podes probar "gtf" que fai máis ou menos o mesmo:
informiguel ~ $ gtf 1024 768 85 # 1024x768 @ 85.00 Hz (GTF) hsync: 68.60 kHz; pclk: 94.39 MHz Modeline "1024x768_85.00" 94.39 1024 1088 1200 1376 768 769 772 807 -HSync + Vsync
E deste xeito aparece o "Modeline" que teño que empregar con "xrandr". Non te asustes se o hzs non coincide (94.50 en lugar de 85).
Paso para engadir esa resolución copiando o "modeline" obtido: (un detalle, cando pon unha opción co seu nome longo como "newmode" vai precedido de 2 guións, é posible que non se noten moito, mentres que outras veces só un guión é como no caso de "hsync")
informiguel ~ $ xrandr --newmode "1024x768_85.00" 94.50 1024 1096 1200 1376 768 771 775 809 -hsync + vsync
Se comprobamos o resultado:
informiguel ~ $ xrandr Pantalla 0: mínimo 320 x 200, actual 1024 x 768, máximo 4096 x 4096 VGA-0 conectado 1024x768 + 0 + 0 (eixe x normal invertido á dereita x eixo y) 0mm x 0mm 1024x768 60.0 * 800x600 60.3 56.2 848x480 60.0 640x480 59.9 S-video desconectado (eixe x normal invertido á esquerda dereita eixo x) 1024x768_85.00 (0x137) 94.5Mhz h: ancho 1024 inicio 1096 final 1200 total 1376 inclinación 0 reloxo 68.7 KHz v: altura 768 inicio 771 final 775 total 809 reloxo 84.9Hz
Podes ver o novo "Modeline" creado. Gústame o xeito de soar "Modeline". Se algún día teño un gato chamareino así.
Ben, seguimos, agora teño que engadir este novo modo á lista de modos dispoñibles:
informiguel ~ $ xrandr --addmode VGA-0 1024x768_85.00
A "VGA-0", se observas os resultados de "xrandr", é como se chama a miña tarxeta gráfica. Vemos o resultado, perfecto!
informiguel ~ $ xrandr Pantalla 0: mínimo 320 x 200, actual 1024 x 768, máximo 4096 x 4096 VGA-0 conectado 1024x768 + 0 + 0 (normal esquerda invertida dereita 1024x768 60.0 * 800x600 60.3 56.2 848x480 60.0 640x480 59.9 1024x768_85.00 84.9 S -vídeo desconectado (eixe x normal invertido á esquerda eixo x)
Agora só queda aplicar esa resolución ao monitor:
informiguel ~ $ xrandr --output VGA-0 --mode 1024x768_85.00
Un parpadeo e o monitor parece máis bonito que nunca.
E se quero poñer unha resolución de 800 × 600 cunha frecuencia de actualización de 60 hz (vexo que hai 2 refrescos dispoñibles neste modo, 60.3 e 56.2)? Pódese facer deste xeito:
informiguel ~ $ xrandr -s 800x600 -r 60
Nótese que o refresco empregou 60 en vez de 60.3, xa que este non o admitiu. Volvamos agora á fermosa resolución:
reportiguel ~ $ xrandr -s 1024x768_85.00
Se tomaba por defecto o refresco a 60 hz, entón escribimos:
informiguel ~ $ xrandr -s 1024x768_85.00 -r 85
E se me equivoco e quero eliminar todo? Pois nada, imos alí. Para eliminar esta resolución da lista de modos dispoñibles:
informiguel ~ $ xrandr --delmode VGA-0 1024x768_85.00
Se vexo o resultado:
informiguel ~ $ xrandr Pantalla 0: mínimo 320 x 200, actual 1024 x 768, máximo 4096 x 4096 VGA-0 conectado 1024x768 + 0 + 0 (eixe x normal invertido á dereita x eixo y) 0mm x 0mm 1024x768 60.0 * 800x600 60.3 56.2 848x480 60.0 640x480 59.9 S-video desconectado (eixe x normal invertido á esquerda dereita eixo x) 1024x768_85.00 (0x136) 94.5Mhz h: ancho 1024 inicio 1096 final 1200 total 1376 inclinación 0 reloxo 68.7 KHz v: altura 768 inicio 771 final 775 total 809 reloxo 84.9Hz
Xa está eliminado da lista, pero agora os datos aparecen tal e como se crearon (–modalidade nova) anteriormente. Para eliminar isto tamén:
informiguel ~ $ xrandr --rmmode 1024x768_85.00
Vemos o resultado:
informiguel ~ $ xrandr Pantalla 0: mínimo 320 x 200, actual 1024 x 768, máximo 4096 x 4096 VGA-0 conectado 1024x768 + 0 + 0 (eixe x normal invertido á dereita x eixo y) 0mm x 0mm 1024x768 60.0 * 800x600 60.3 56.2 848x480 60.0 640x480 59.9 Vídeo S desconectado (eixe x normal invertido á esquerda dereita eixo x)
Todo era como ao comezo do artigo ...
E, finalmente, sei que es un comodín, así que proba isto:
Primeiro escriba isto, que non fai cambios neste momento:
informiguel ~ $ xrandr --output VGA-0 --rotate normal
E agora proba o seguinte tendo en conta que para eliminar a broma tes que repetir a instrución anterior (só tes que seleccionala empregando as teclas do cursor):
informiguel ~ $ xrandr --output VGA-0 --xirar á esquerda
Ata o de agora todo está moi ben pero hai un problema, ao reiniciar o ordenador pérdense as configuracións. Non creo que sexa unha boa idea axustar a actualización da pantalla cada vez que entramos no ordenador, ten que haber un xeito de deixalo arranxado. Vaia por ela.
En Linux hai un ficheiro de configuración que aos poucos e como o hardware foi mellor recoñecido polas distribucións, foi esquecéndose. O nome completo do seu camiño é "/etc/X11/xorg.conf". O ficheiro de configuración de todos os parámetros que fan funcionar o contorno gráfico.
En LXDE (entorno de escritorio lixeiro X11) o ficheiro non existe, polo que hai que crealo, o que non é doado. Unha posible solución é facer o seguinte:
Deixamos o contorno gráfico, dirixímonos a un terminal premendo CTRL + ALT + F1, lembre que o contorno gráfico é CTRL + ALT + F7). Validamos e "apagamos" o entorno gráfico:
informiguel ~ $ sudo /etc/init.d/lxdm stop
A continuación executamos a configuración X:
informiguel ~ $ sudo X -configure
Créase un ficheiro chamado "xorg.conf.new", que é o que debemos mover ao seu sitio e modificalo:
informiguel ~ $ mv xorg.conf.new /etc/X11/xorg.conf
Se todo é correcto e queremos reiniciar o entorno gráfico:
informiguel ~ $ sudo /etc/init.d/lxdm start
Hai outra solución que pode ser mellor: comeza cunha distribución de Linux en "CD Live" e copia o ficheiro cuxo camiño completo é "/etc/X11/xorg.conf" e pégao na súa distribución. Se esa distribución detectou ben o monitor, os problemas acabaron, se non, ten que retocar o ficheiro cos datos para a actualización da pantalla e a resolución que desexa. Como exemplo, tiven que engadir o seguinte para que o refresco fose adecuado:
Sección "Monitor" Identificador "Monitor xenérico" Opción "DPMS" HorizSync 30-70 VertRefresh 50-120 Modeline "1024x768_85.00" 94.39 1024 1088 1200 1376 768 769 772 807 -HSync + Vsync Opción "PreferredMode" "1024x768_85.00" EndSection Sección "Pantalla" Identificador "Pantalla predeterminada" Dispositivo "ATI Technologies, Inc. Radeon RV250 Se [Radeon 9000 Pro]" Monitor "Monitor xenérico" DefaultDepth 24 Opción "AddARGBGLXVisuals" "True" Option "Metamode" "1024x768_85.00 +0+ 0 "Opción" UseEdid "" Falso "SubSección" Mostrar "Modos de profundidade 1" 1024x768 "" 800x600 "" 640x480 "EndSubSec ................... etc.
Moi importante, busque as características técnicas do monitor para coñecer a sincronización vertical e horizontal. Como se pode ver na imaxe, o "Modeline" é o calculado co comando "cvt".
Unha vez feitos os cambios necesarios, todo está listo para executarse automaticamente a próxima vez que inicie o ordenador. Problema resolto.
Agora, como lle explicas a un de Windows ou Mac a emoción que se sente ao sentir o "control" sobre a máquina (e non ao revés)?
Paréceme que somos unha especie en perigo de extinción ... 🙁
Aqueles que queiran seguir profundando no seu coñecemento de xrandr, non deixen de lelos elementos antigos publicado neste blogue.
Só tes que enviarnos un correo incluído o truco ou o mini-titorial propio.
44 comentarios, deixa os teus
Ola amigo, como estás? Grazas polo tutorial, está moi ben explicado pero realmente non funciona para min.
Deixe-me explicar, na parte onde se engade a pantalla e coloca vga, non funciona para min porque na lista de configuración ao principio non teño un monitor vga, só algo predeterminado e non entendo como facelo porque creo que o SO non está aí recoñecendo o controlador de vídeo, neste caso linux maint 10 lts, non poña o máis novo porque o sistema operativo dá un erro co procesador de PC, un minilaptoc utech
Pasoume o mesmo, no canto de VGA-0 por defecto.
Quería axustar a resolución dun monitor / TV de 32 nunha nova instalación de solusOS. O teu artigo é moi explícito e claro, tamén a solución foi a que lle deu a unha pregunta (axuste automático do monitor)
Felicítote.
lembranzas
Moito ROLL para configurar a resolución da pantalla e o hertz !!! ... En Windows con tres clics resolvoo !!! ... e tamén teño control sobre a «Máquina» !!!! ...
ERRO: En Windows se o monitor non te recoñece por falta de controladores NON podes facer nada.
En Linux, se o controlador o recoñece, tampouco é preciso facelo.
Sentímolo, pero o seu intento de "me gusta" de Windows neste caso fallou ...
ERRO. En Windows, como en Linux, desde unha aplicación de configuración de pantalla gráfica podes facer algunhas cousas xerais, pero cando queres sacar o máximo proveito a un monitor ou o SO non o detecta ben na súa totalidade, desde Windows non serás capaz de facer calquera cousa desde Linux, aínda tes outra oportunidade se é fisicamente posible. De feito, en Windows, o monitor co que se fixo este artigo só funcionou ben con Windows 98 cos controladores do fabricante. Comezando con versións máis altas, ía a refrescos de pantalla moi pobres.
moi bo titorial, pero fágoche unha pregunta. No caso de aplicar todos os comandos e que a pantalla permaneza na resolución desexada, pero desprazada cara a un lado, que se debe facer?
Iso resólvese cos botóns do monitor. Normalmente hai un botón cun menú onde podes "mover" a pantalla para axustala.
cumprimento
Esa é unha boa pregunta. Non estou seguro de que haxa algunha maneira de corrixilo mediante o software. En xeral, paréceme recordar que se pode corrixir empregando os botóns do monitor.
Abrazo! Paul.
Es un xenio ... estiven todo o día intentando configurar o monitor sen éxito ... ata agora. Grazas.
Que bo! Estou moi contento de que che servise.
Unha aperta! Paul.
Excelente e completo titorial !!
tremendo titorial ...
Anaco de documento .. Mancantado !!!!!
vaia impresionante !!!! este artigo e unha gran idea para os novatos en Linux.
Seguín todos os pasos. E de ningún xeito me salva nada. Sempre que reinicio o PC está na configuración antiga e teño que restablecer todo manualmente. Por favor ... Un pouco de axuda ...
Saia de problemas con esta ferramenta recomendada cando ten unha resolución deficiente e non atopa a forma de cambiala, cun xrandr -s 0 suficiente.
Grazas, axudoume moito.
Grazas,
Levaba moitos días intentando resolver o problema, solucioneino en 5 minutos, moi ben explicado
GRAZAS por compartir os teus coñecementos, xente coma ti fai que o software libre sexa máis accesible e xenial
unha aperta
Moitas grazas.
Pareceume moi útil.
Un saúdo.
dame un erro dime que non pode atopar vga poño vga-1 vga-2 vga-0 e ningún funciona poño VGA non me di que non se atopa o que fago
Moi boa e completa explicación do comando xrandr. En gnome, cada vez que entro, a configuración do ficheiro "xorg.conf" é alterada e así podo crear un script para que cada reinicio estea correctamente configurado.
Saúdos!
Despois de moito tempo buscando e investigando na rede puiden resolver o meu problema con este tutorial, moi ben explicado e claro.
grazas
Ben, sempre usei Debian e o drama cero para configurar as cousas, sen ter que ir a ese nivel de detalle.
Pero agora en Mint non atopaba a forma de devolver o monitor ao normal e con "xrandr -s 0" na consola funcionaba moi ben.
O certo é que si, moitas cápsulas como di Donatien, especialmente cando cambias de distribución para facer as cousas "máis fáciles".
Ben ...
.
Maldito es xenial, moitas grazas a resolución dun monitor externo de 1920X1080 60hz quedo 100 co tutorial.
Benvido, campión! Unha aperta! Paul.
Funcionou perfectamente para min, só en vez de VGA aparecéronme LVDS, así que copiei todo igual pero cambiando o VGA-0 por LVDS e todo funcionou perfectamente
Simplemente perfecto, convidaríate a un café se puidese.
Jaja! Grazas!
Unha aperta, Pablo.
Ola, podes axudarme, o meu monitor non está centrado e dáme unha resolución de 1920 × 1080 de 60.1 * + que non é o correcto xa que non está centrado, a resolución do meu ordenador é 1600 × 900 pero non o fago saber a cantos Hz teño que axustalo, ao facer cvt dame o seguinte, a cantos Hz teño que axustalo?
drakkpac drakk# cvt 1600 900 60
# 1600 × 900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline «1600x900_60.00» 118.25 1600 1696 1856 2112 900 903 908 934 -hsync + vsync
Ola Drakk!
Recomendámoslle que faga esta pregunta no noso servizo de preguntas e respostas chamado Pregunta a Linux para que toda a comunidade poida axudarche co teu problema.
Unha aperta, Pablo.
Moitas grazas, funcionou perfectamente. O problema é que non sei como editar o ficheiro (ou que ficheiro editar) para que quede configurado así para sempre, alguén me podería axudar? Estou usando ubuntu studio 14.04 (se non me equivoco usa xfce)
ao facer este paso »informiguel ~ $ xrandr –newmode« 1024x768_85.00 »94.50 1024 1096 1200 1376 768 771 775 809 -hsync + vsync» aparece o erro «xrandr: Fallou ao obter o tamaño da gama para a saída predeterminada»
Boas tardes amigo,
Excelente tutorial conseguino ata o punto de que apareceu a resolución e todo, con todo, cando a selecciono, dáme un erro como o espazo virtual insuficiente, o meu monitor está a darme unha resolución de 1920 × 1080 e quero reducir esta resolución con todo, cando fago un xrendr paréceme corrente mínima e máxima igual que 1920 × 1080, probei os comandos que me indican se o vídeo funciona correctamente e é así, aparecen as engrenaxes e a mensaxe dime que SI. .
Gustaríame saber se hai unha forma de configurar a resolución mínima para que sexa outra, e non a mesma, para introducir os valores que desexo, por certo que me di a frecuencia da pantalla coa resolución que teño que é 0.
Funcionou para min á perfección e ademais xa son un experto en materia de relosión grazas a ti. Vou compartir o blog moitas grazas ... salu2
Ola, como estás, moi boa explicación, pero teño un problema, para crear o ficheiro de configuración permanente decides que o necesito (estou en KaliLinux e o ficheiro xorg.conf non existe
informiguel ~ $ sudo /etc/init.d/lxdm stop
pero o ficheiro lxdm non existe e cando continúo dime que debo parar o servidor para crear o ficheiro xorg.conf ... entón cal é o ficheiro que debo parar ??
Moi bo artigo, puiden engadir a resolución que quería (1360 × 768) pero non me permite seleccionar esa resolución, dame os seguintes erros:
a imaxe onde puiden engadir a resolución:
Pantalla 0: mínimo 640 x 480, actual 1024 x 768, máximo 1360 x 768
conectado por defecto 1024 × 768 + 0 + 0 0mm x 0mm
1024 × 768 0.00 *
800 × 600 0.00
640 × 480 0.00
1360x768_60.00 60.00
erro ao tentar seleccionar esa resolución
: ~ $ xrandr –output default –mode 1360x768_60.00 –primary
xrandr: Fallou ao obter o tamaño de gamma para a saída predeterminada
xrandr: fallou a configuración de crtc 0
erro como sudo:
sudo xrandr –saída predeterminada –modo 1360x768_60.00 –primario
Non se especificou ningún protocolo
Non se pode abrir a pantalla: 0
Alguén sabe o que pode ser? A verdade é que lin moitos foros e tentei moitas cousas, pero non podo solucionalo e o peor é que non podo pechar o servidor X (nin premer ctrl + alt + f1) debido á resolución que isto axusta toda a pantalla está pixelada en cadrados de cores.
Desde xa moitas grazas
Ola, moitas grazas por este tipo de titoría, pero teño un pequeno problema.
Ao aplicar o comando ~ $ xrandr -addmode 1336x768_85.00 dime o terminal
xrandr: opción non recoñecida '-addmode'
Que pode pasar aquí?, Xa probei addmode sen o script e dime o mesmo. Aclaro que teño Debian 8.5 e todos os pasos antes funcionaron ben.
Grazas anticipadamente.
é "–addmode" sen as comiñas, produciuse un erro ao escribir o artigo.
irmán es un Genius, moitas grazas polo tutorial, canso de buscar como obter a resolución 1280 × 960 a 60 hz e foi imposible para min en xubuntu ata que cheguei a este tutorial, enormes grazas
PERFECTOO! ! !
Grazas, foi xenial.
Ben explicado, paso a paso. Tamén se aprende.
Ben, xa fixen todo como me dixeron, pero ao engadilo xera este erro e non sei o que significa:
X Erro da solicitude fallida: BadMatch (atributos de parámetros non válidos)
Opcode principal da solicitude fallida: 140 (RANDR)
Opcode menor da solicitude fallida: 18 (RRAddOutputMode)
Número de serie da solicitude fallida: 30
Número de serie actual no fluxo de saída: 31
podes axudarme?
Ensínovos a pantalla completa
root @ d4m: ~ # xrandr
Pantalla 0: mínimo 8 x 8, actual 1024 x 600, máximo 32767 x 32767
LVDS1 primario conectado 1024 × 600 + 0 + 0 (eixe x normal invertido á esquerda dereita eixo x) 220 mm x 130 mm
1024 × 600 60.19 * +
800 × 600 60.32 56.25
640 × 480 59.94
512 × 300 60.00
VGA1 desconectado (eixo x normal invertido á esquerda eixo x)
VIRTUAL1 desconectado (eixo x normal invertido á esquerda eixo x eixo y)
root @ d4m: ~ # xrandr –newmode 1024x768_60.00 63.50 1024 1072 1176 1328 768 771 775 798 -hsync + vsync
root @ d4m: ~ # xrandr –addmode LVDS1 1024x768_60.00
X Erro da solicitude fallida: BadMatch (atributos de parámetros non válidos)
Opcode principal da solicitude fallida: 140 (RANDR)
Opcode menor da solicitude fallida: 18 (RRAddOutputMode)
Número de serie da solicitude fallida: 30
Número de serie actual no fluxo de saída: 31
root @ d4m: ~ # cvt 1024 768 60
# 1024 × 768 59.92 Hz (CVT 0.79M3) hsync: 47.82 kHz; pclk: 63.50 MHz
Modeline «1024x768_60.00» 63.50 1024 1072 1176 1328 768 771 775 -hsync + vsync
root @ d4m: ~ #
En canto me poidades axudar agradeceríao porque son profesor e estou axudando aos meus alumnos.
Salváchesme !!. Marabilloso tutorial.
Teño dous monitores externos ao portátil (non introduzo os motivos jeje) un conectado por HDMI e o outro VGA. Este último tiña unha resolución de 1024 × 768 e grazas ao teu tutorial conseguín axustalo a 1920 × 1080.
Moitas grazas por todo 😉
xrandr: Fallou ao obter o tamaño de gamma para a saída predeterminada
Pantalla 0: mínimo 640 x 480, actual 640 x 480, máximo 640 x 480
primaria conectada por defecto 640 × 480 + 0 + 0 0 mm x 0 mm
640 × 480 73.00 *
ben, consigo isto cando aplico "xrandr" no terminal. Actualmente a miña resolución é moi grande, a opción nas configuracións desapareceu, onde está en branco e non hai ningún tipo de resolución. é un núcleo 3 e uso Ubuntu 18.