31

Old title - "change resolution to 1280x1024 using xrandr gives: X Error of failed request: BadValue (integer parameter out of range for operation)"

I have installed a fresh Ubuntu 17.10 and have a monitor with 5:4 resolution. settings has no resolution higher than 1024x768. But I need the resolution 1280x1024 (5:4). I use the default motherboard graphics card:

# lspci|grep VGA
00:02.0 VGA compatible controller: Intel Corporation 4 Series Chipset Integrated Graphics Controller (rev 03)

Also xrandr gives the following:

$ xrandr
Screen 0: minimum 320 x 200, current 1024 x 768, maximum 8192 x 8192
XWAYLAND0 connected 1024x768+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   1024x768      59.92*+

I tried to add the 1280x1024 resolution using xrandr. so first created the resolution information using gtf:

$ gtf 1280 1024 60

  # 1280x1024 @ 60.00 Hz (GTF) hsync: 63.60 kHz; pclk: 108.88 MHz
  Modeline "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync

Then added to resolutions:

xrandr --newmode "1280x1024_60.00"  108.88  1280 1360 1496 1712  1024 1025 1028 1060  -HSync +Vsync

then again did the command: xrandr --addmode XWAYLAND0 1280x1024_60.00

Then nothing changed. When I tried to change it using xrandr --output XWAYLAND0 --mode 1280x1024_60.00 --rate 60 But an error occurred:

$ xrandr --output XWAYLAND0 --mode 1280x1024  --rate 60
X Error of failed request:  BadValue (integer parameter out of range for operation)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  7 (RRSetScreenSize)
  Value in failed request:  0x0
  Serial number of failed request:  21
  Current serial number in output stream:  22

I don't know what did I do wrong. Or how to change resolution to the correct one: 1280x1024

Panther
  • 104,528

4 Answers4

17

You can try to set a custom resolution with wayland with some effort and mixed results.

You should probably start by filing a bug report, including your graphics card and monitor(s), against wayland

How do I report a bug?

https://help.ubuntu.com/community/ReportingBugs


Adding a Custom Resolution

xrandr will NOT work with Wayland !!

You can try to add a custom resolution using your modline similar to how you would with xrandr, but with a few additional steps.

First, I am not sure if this works with secure boot, so I advise you start by Disabling secure boot

From https://ask.fedoraproject.org/en/question/99867/how-to-add-a-custom-resolution-to-weyland-fedora-25/ and https://wiki.archlinux.org/index.php/Kernel_mode_setting#Forcing_modes_and_EDID

First, you'll need to clone edid-generator. Then you can pass it your modeline (with the same arguments you gave xrandr --newmode

From https://github.com/akatrevorjay/edid-generator

Install requirements

sudo apt install zsh edid-decode automake dos2unix

Download & extract

wget https://github.com/akatrevorjay/edid-generator/archive/master.zip
unzip master.zip 
cd edid-generator-master

The binary is in ~/edid-generator-master as modeline2edid

Run modeline2edid with your modline, using the example in askfedora link,

./modeline2edid - <<< 'Modeline "3840x2160" 533.6 3840 3982 4027 4064 2160 2170 2180 2190 +hsync +vsync'
Searching for runaway unicorns in '/dev/stdin'
-- Found naughty unicorn: Modeline "3840x2160" 533.6 3840 3982 4027 4064 2160 2170 2180 2190 +hsync +vsync
Wrote 3840x2160.S

Modify that command to your desired resolution.

See How to set a custom resolution? for details (if needed)

Then generate the edid binary with make

make #output not posted

You will now have your new .bin , 3840x2160.bin in this case.

Now, from The Arch wiki enable your custom resoulution

sudo mkdir /usr/lib/firmware/edid
sudo cp 3840x2160.bin /usr/lib/firmware/edid

Change 3840x2160.bin to your custom resolution.

Note: There are already some custom .bin included, you can see them with ls *.bin I am not sure if you can use them without make or not.

Test by rebooting

When you reboot, edit the kernel line in grub, adding

drm_kms_helper.edid_firmware=edid/3840x2160.bin

See How do I add a kernel boot parameter? and https://wiki.ubuntu.com/Kernel/KernelBootParameters

Go down to the line starting with linux and add drm_kms_helper.edid_firmware=edid/3840x2160.bin at the end of the line after ro quiet splash

Assuming all that works, make it permanent

sudo nano /etc/default/grub

Add in the custom resolutoin

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash drm_kms_helper.edid_firmware=edid/3840x2160.bin"

Save your edit Ctrl+x

update grub

sudo update-grub

Reboot and enjoy your custom resolution

Panther
  • 104,528
10

Kernel + boot loader

Both Xorg and Wayland get this information from the kernel. You can ask your boot loader to tell the kernel to output specific resolution to specific video output. Let's assume we want to add full HD resolution for VGA-1 output.

Beware after a reboot your boot loader will tell your kernel that whatever is connected to VGA-1 supports 1920x1080 at 60Hz. It doesn't mean it actually does support that resolution, and if it doesn't the screen might render black, therefore before making these modifications I highly recommend to make sure that:

  1. the screen actually supports desired resolution
  2. it does so at given refresh rate (e.g. @60 Hz)
  3. system's GPU has sufficient video memory to render images at that resolution (e.g. when sharing it with a virtual machine)

GRUB

sudo $EDITOR /etc/default/grub

Find GRUB_CMDLINE_LINUX_DEFAULT line, add (at the end, before the closing quotation mark):

video=VGA-1:1920x1080@60

Save, exit editor, then:

sudo update-grub

Systemd-boot

sudo $EDITOR /boot/loader/entries/arch.conf

Find options line, add:

video=VGA-1:1920x1080@60

X output

To do any of this you need to know the name of the X (video) output your screen is connected to - open your terminal and run xrandr:

$ xrandr
Screen 0: minimum 8 x 8, current 3840 x 2160, maximum 32767 x 32767
VGA-0 disconnected (normal left inverted right x axis y axis)
VGA-1 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DP-1 disconnected (normal left inverted right x axis y axis)
DP-2 connected primary 3840x2160+0+0 (normal left inverted right x axis y axis) 878mm x 485mm
   3840x2160     60.00*+  30.00    29.98    24.00  
   2560x1440     59.95  
   2048x1080     59.99  
   1920x1080     60.00    59.94    50.00  
   1680x1050     59.95  
   1440x900      74.98    59.89  
   1280x1024     75.02    60.02  
   1280x960      60.00  
   1280x720      60.00    59.94    50.00  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   720x576       50.00  
   720x480       59.94  
   640x480       75.00    72.81    59.94    59.93  
DP-3 disconnected (normal left inverted right x axis y axis)

As you can see the only X output currently reading connected on my machine is DP-2.

cprn
  • 1,209
0

I had the same issue. I fixed it like this: To Change display resolution to 1440x900 Log out of computer In the login screen after clickicking the username, there is a small gear icon displayed in the bottom right corner Click and select Ubuntu in Xorg This will change the monitor to VGA-1 Now log in and in terminal issue this command touch .xprofile

Open this .xprofile file and paste the following xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync xrandr --addmode VGA-1 "1440x900_60.00" xrandr --output VGA-1 --mode "1440x900_60.00"

Incase if you are wondering how the first line is made, issue cvt 1440 900 coordinates will be displayed. After the word Modeline, the contents are copied and pasted in the first line here (after xrandr --newmode)

Log out and login back. Go to setting->Displays-> Select the new resolution and enjoy

0

I believe that's the better response to this question, including the user talks how to turn the change definitive, that's something is not never mentioned.

https://askubuntu.com/a/377944/1650950 <<