Как настроить произвольное разрешение с помощью xrandr, когда разрешение недоступно в «Настройки экрана»,

Я новый пользователь Linux, пытающийся изменить разрешение экрана, поскольку на дисплее нет опции. Я успешно смог добавить новые решения от fluke, следуя онлайн-руководству. У меня нет GPU, я не знаю, если это проблема? Ниже приведен мой вывод xrandr -q.

[email protected]:~# xrandr -q
xrandr: Failed to get size of gamma for output default
Screen 0: minimum 1280 x 1024, current 1280 x 1024, maximum 1280 x 1024
default connected 1280x1024+0+0 0mm x 0mm
   1280x1024       0.0* 
  1920x1200_60.00 (0x145)  193.2MHz
        h: width  1920 start 2056 end 2256 total 2592 skew    0 clock   74.6KHz
        v: height 1200 start 1203 end 1209 total 1245           clock   59.9Hz
  1440x900_59.90 (0x156)  106.3MHz
        h: width  1440 start 1520 end 1672 total 1904 skew    0 clock   55.8KHz
        v: height  900 start  901 end  904 total  932           clock   59.9Hz
27 голосов | спросил nick 6 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 06 Sep 2015 17:51:57 +0300 2015, 17:51:57

5 ответов


29

Ниже приведены шаги, необходимые для добавления нового настраиваемого разрешения и применения его. Следующие шаги предназначены для добавления разрешения 1920x1080, но вы можете использовать его для любого другого требуемого разрешения. Но убедитесь, что ваш монитор и встроенная графика поддерживают это разрешение.

# First we need to get the modeline string for xrandr
# Luckily, the tool "gtf" will help you calculate it.
# All you have to do is to pass the resolution & the-
# refresh-rate as the command parameters:
gtf 1920 1080 60

# In this case, the horizontal resolution is 1920px the
# vertical resolution is 1080px & refresh-rate is 60Hz.
# IMPORTANT: BE SURE THE MONITOR SUPPORTS THE RESOLUTION

# Typically, it outputs a line starting with "Modeline"
# e.g. "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync
# Copy this entire string (except for the starting "Modeline")

# Now, use "xrandr" to make the system recognize a new
# display mode. Pass the copied string as the parameter
# to the --newmode option:
xrandr --newmode "1920x1080_60.00"  172.80  1920 2040 2248 2576  1080 1081 1084 1118  -HSync +Vsync

# Well, the string within the quotes is the nick/alias
# of the display mode - you can as well pass something
# as "MyAwesomeHDResolution". But, careful! :-|

# Then all you have to do is to add the new mode to the
# display you want to apply, like this:
xrandr --addmode VGA1 "1920x1080_60.00"

# VGA1 is the display name, it might differ for you.
# Run "xrandr" without any parameters to be sure.
# The last parameter is the mode-alias/name which
# you've set in the previous command (--newmode)

# It should add the new mode to the display & apply it.
# Usually unlikely, but if it doesn't apply automatically
# then force it with this command:
xrandr --output VGA1 --mode "1920x1080_60.00"

Исходный источник: https://gist.github.com/debloper/2793261

Я также написал скрипт, который выполняет все эти шаги автоматически. Вы можете попробовать, если вышеуказанные шаги вам кажутся слишком сложными: https://gist.github.com/chirag64/7853413

ответил Chirag Bhatia - chirag64 6 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 06 Sep 2015 20:52:42 +0300 2015, 20:52:42
7

Опция --size /-s можно использовать:

xrandr -s 1440x900

Должно работать с RandR версия 1.1 или новее.

ответил jimmij 6 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowSun, 06 Sep 2015 18:13:39 +0300 2015, 18:13:39
2

У меня была та же проблема. В режиме отображения максимальное разрешение было 1280x720. Итак:

  1. с помощью команды xrandr Я видел имя этого монитора и список разрешений.
  2. Я выполнил сценарий: xrandr --output {name of monitor} --mode {resolution}

Например:

xrandr --output DP-2-1 --mode 2560x1440
ответил grep 13 MarpmMon, 13 Mar 2017 17:05:24 +03002017-03-13T17:05:24+03:0005 2017, 17:05:24
2

Это то, что я должен был сделать на #IntelMaker #Joule , чтобы сделать это работать в собственном разрешении с помощью SUNFOUNDER 7 INCH TFT COLOR MONITOR, который указан как имеющий разрешение 1024 * 600, но вместо этого был выбран как 1280x720.

Во-первых, Intel Joule с Linux 4.4.15-yocto-standard x86_64, похоже, не имеет ---- +: = 2 =: + ---- , поэтому мне пришлось использовать другую машину для вычисления соответствующих номеров:

gtf(1)

Затем создайте файл с соответствующими командами:

$ gtf 1024 600 60

  # 1024x600 @ 60.00 Hz (GTF) hsync: 37.32 kHz; pclk: 48.96 MHz
  Modeline "1024x600_60.00"  48.96  1024 1064 1168 1312  600 601 604 622  -HSync +Vsync

$ 

Затем # cat > 1024x600.sh xrandr --newmode "1024x600_60.00" 48.96 1024 1064 1168 1312 600 601 604 622 -HSync +Vsync xrandr --addmode HDMI1 "1024x600_60.00" xrandr --output HDMI1 --mode "1024x600_60.00" ^D # chmod +x 1024x600.sh или startx , и запустите startxfce4, после чего следующее сообщение будет сообщено ./1024x600.sh .

xrandr(1)
ответил cnst 6 72016vEurope/Moscow11bEurope/MoscowSun, 06 Nov 2016 03:21:47 +0300 2016, 03:21:47
0

сохраните этот скрипт bash на рабочем столе и назовите его xrander, затем введите на терминал (bash xrander.sh 1024 720 60) и нажмите enter!

#!/bin/bash
# xrandr.sh
#If no argument is specified, ask for it and exit
if [[ -z "[email protected]" ]];
then
echo "An argument is needed to run this script";
exit
else
arg="[email protected]"
#Basic check to make sure argument number is valid. If not, display error and exit
if [[ $(($(echo $arg | grep -o "\s" | wc --chars) / 2 )) -ne 2 ]];
then
echo "Invalid Parameters. You need to specify parameters in the format "width height refreshRate""
echo "For example setResolution "2560 1440 60""
exit
fi

#Save stuff in variables and then use xrandr with those variables
modename=$(echo $arg | sed 's/\s/_/g')
display=$(xrandr | grep -Po '.+(?=\sconnected)')
if [[ "$(xrandr|grep $modename)" = "" ]];
then
xrandr --newmode $modename $(gtf $(echo $arg) | grep -oP '(?<="\s\s).+') &&
xrandr --addmode $display $modename
fi
xrandr --output $display --mode $modename

#If no error occurred, display success message
if [[ $? -eq 0 ]];
then
echo "Display changed successfully to $arg"
fi
fi
ответил L053R 15 J0000006Europe/Moscow 2018, 22:12:50

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132