Wayland如何设置自定义分辨率


15

旧标题-“使用xrandr将分辨率更改为1280x1024会给出:X失败的请求错误:BadValue(整数参数超出操作范围)”

我已经安装了新的Ubuntu 17.10,并具有5​​:4分辨率的显示器。设置的分辨率不高于1024x768。但是我需要分辨率1280x1024(5:4)。我使用默认的主板图形卡:

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

另外,xrandr提供以下内容:

$ 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*+

我尝试使用xrandr添加1280x1024分辨率。因此,首先使用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

然后添加到决议:

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

然后再次执行命令: xrandr --addmode XWAYLAND0 1280x1024_60.00

然后什么都没有改变。当我尝试使用xrandr --output XWAYLAND0 --mode 1280x1024_60.00 --rate 60但更改时发生错误:

$ 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

我不知道我做错了什么。或如何将分辨率更改为正确的分辨率:1280x1024


3
您不能使用xrandr来管理Wayland下的物理显示。尝试注销并在登录屏幕上选择Ubuntu(Xorg)会话,然后查看是否可以在其中更改分辨率。如果显示器是通过VGA电缆连接的,或者没有提供正确的EDID信息,则在Wayland下当前可能无法更改分辨率。
dobey

1
@dobey然后在Wayland上使用什么?
乔治·乌德森

2
@George我认为您目前无法在Wayland下强行设置自定义分辨率。如果我知道怎么办,我会发布答案。
dobey

2
@Mohammad-我可以将您的问题的标题更改为“如何在Wayland中设置自定义分辨率”吗?
Panther

我保存了您的原始标题,并且可以根据需要还原。
Panther

Answers:


10

您可以尝试通过Wayland设置自定义分辨率,这需要一定的努力和不同的结果。

您可能应该首先针对Wayland提交错误报告,包括图形卡和显示器。

如何报告错误?

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


添加自定义分辨率

xrandr 将无法与Wayland合作!

您可以尝试使用modline添加自定义分辨率,类似于使用xrandr的方法,但是需要一些额外步骤。

首先,我不确定这是否适用于安全启动,因此建议您先禁用安全启动

来自https://ask.fedoraproject.org/en/question/99867/how-to-add-a-custom-resolution-to-weyland-fedora-25/https://wiki.archlinux.org/index。 php /内核模式设置#Forcing_modes_and_EDID

首先,您需要克隆edid-generator。然后,您可以将您的modeline传递给它(使用您输入的相同参数xrandr --newmode

来自https://github.com/akatrevorjay/edid-generator

安装要求

sudo apt install zsh edid-decode automake dos2unix

下载并解压缩

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

二进制文件在〜/ edid-generator-master中为 modeline2edid

modeline2edid使用askfedora链接中的示例,使用modline 运行,

./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

将该命令修改为所需的分辨率。

请参阅如何设置自定义分辨率?有关详细信息(如果需要)

然后用make生成edid二进制文件

make #output not posted

3840x2160.bin在这种情况下,您现在将拥有新的.bin 。

现在,从The Arch Wiki启用您的自定义资源

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

更改3840x2160.bin为您的自定义分辨率。

注意:已经包含一些自定义.bin,您可以通过它们查看它们,ls *.bin但不确定是否可以在不使用make的情况下使用它们。

通过重启进行测试

重新引导时,在grub中编辑内核行,添加

drm_kms_helper.edid_firmware=edid/3840x2160.bin

请参阅如何添加内核引导参数?https://wiki.ubuntu.com/Kernel/KernelBootParameters

下行至以开头的行,linux然后drm_kms_helper.edid_firmware=edid/3840x2160.bin在行末添加ro quiet splash

假设一切正常,将其永久化

sudo nano /etc/default/grub

添加自定义分辨率

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

保存您的修改Ctrl+x

更新grub

sudo update-grub

重新启动并享受您的自定义分辨率


1
添加时遇到输出问题.bin,请明确指出要添加自定义分辨率的输出。示例:drm_kms_helper.edid_firmware=VGA-1:edid/your_edid.bin 来源
apex39 '18

@ apex39在Wayland的存在,因为没有这样的东西VGA-1(或HDMI,DVI,DP等),视频输出-所有我看到的是XWAYLAND0/ XWAYLAND1的/ etc视频输出...
弗洛里安·卡斯特拉

在安装Fedora时,我曾经看过VGA-1视频输出。然而,用XWAYLAND0/ XWAYLAND1/ etc 代替它应该做相同的工作
apex39 '19

1
就我而言,这没有用。我测试了内核选项。首先创建1280x1024_60.00.bin并添加到内核选项,还尝试使用VGA-1:如@ apex39所说。但是分辨率没有变化。现在我有了Ubuntu 18.04。
Mohammad Etemaddar '19

它是纯粹的疯狂是不能简单地设置一个屏幕分辨率:O型
törzsmókus
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.