我想这更多是一个问题,我应该去哪里了解何时在 Ubuntu 中发布xrandr版本1.5.1?它已经在 Arch Linux 中可用,并于 2019 年 8 月发布。我想修复 2010 年的一个错误。
Ubuntu 16.04.6 LTS 当前版本是:
$ xrandr --version
xrandr program version 1.5.0
Server reports RandR version 1.5
Run Code Online (Sandbox Code Playgroud)
我不精通这个主题,但我可以简单地获取1.5.1源代码并编译它吗?还是应该xrandr从源代码编译这样的关键任务应用程序?
每个人都可以在他们的平台上尝试这些简短的小测试,以了解xrandr版本和 gamma 错误的重要性。
当前的 Ubuntu 版本存在已存在 9 年的错误:
$ xrandr --version
xrandr program version 1.5.0
Server reports RandR version 1.5
Run Code Online (Sandbox Code Playgroud)
基本问题是xrandr报告错误的伽马值:
$ xrandr --verbose | grep ^DP-1-1 -A5
DP-1-1 connected 3840x2160+1920+0 (0xa5) normal (normal left inverted right x axis y axis) 1600mm x 900mm
Identifier: 0x43
Timestamp: 538179391
Subpixel: unknown
Gamma: 1.0:1.1:1.3
Brightness: 0.63
Run Code Online (Sandbox Code Playgroud)
我的“类红移”应用程序已将 gamma 设置为Red = 1.0、Green =.88和Blue =.77但 RGB 被错误地报告为1.0:1.1:1.3. 现在成像我们想将亮度增加到 0.65。如果我们不同时更改 gamma 现有的 gamma 设置将重置为1:1:1。所以我们传递我们认为的当前值:
$ xrandr --output DP-1-1 --brightness .65 --gamma 1.0:1.1:1.3
Run Code Online (Sandbox Code Playgroud)
低,看,屏幕变成了超级蓝绿色,并杀死了我们夜间设置的红色调。当我们再次检查当前设置时,我们发现值再次反转:
$ xrandr --verbose | grep ^DP-1-1 -A5
DP-1-1 connected 3840x2160+1920+0 (0xa5) normal (normal left inverted right x axis y axis) 1600mm x 900mm
Identifier: 0x43
Timestamp: 541629314
Subpixel: unknown
Gamma: 1.0:0.91:0.77
Brightness: 0.65
Run Code Online (Sandbox Code Playgroud)
因此,无论xrandr --verbose报告的值是多少,我们始终必须使用它1 / gamma来获得红色、绿色和蓝色通道上的真实伽玛值。更正我们的代码后,我们必须进行版本测试1.5.1以不更正我们的代码并使用返回的伽马值。假设该错误已在1.5.1我尚未编译和测试的版本中修复。
Rus*_*lan 11
实际上,与 不同的是libXrandr.so.2,该xrandr程序远非关键任务。它只是一个 X 客户端——一个非特权应用程序,您可以将其安装到您的主目录中以避免破坏系统应用程序。以下是您可以这样做的方法(作为普通的非 root 用户!):
cd ~/Downloads
wget https://xorg.freedesktop.org/archive/individual/app/xrandr-1.5.1.tar.xz
tar xvf xrandr-1.5.1.tar.xz
cd xrandr-1.5.1
./configure --prefix=$HOME/opt/xrandr/
make install
Run Code Online (Sandbox Code Playgroud)
要使编译工作,您必须安装构建依赖项:即,应执行以下命令。
sudo apt build-dep x11-xserver-utils
Run Code Online (Sandbox Code Playgroud)
然后你可以从安装目录启动它:
$ ~/opt/xrandr/bin/xrandr --version
xrandr program version 1.5.1
Server reports RandR version 1.5
Run Code Online (Sandbox Code Playgroud)
或者,您可以像通常启动系统一样在您的前面$HOME/opt/xrandr/bin添加PATH并启动它xrandr。一旦您确定它可以按您的需要工作,您就可以更换系统/usr/bin/xrandr(可能已经对其进行了备份),以便任何其他用户在默认情况下运行它。
如果您确实替换了系统二进制文件,请不要忘记保留相应的包(在 Ubuntu 16.04 上是x11-xserver-utils)以防止更新用(最有可能的)早期版本替换它。
让我们来看看 Debian 的上游:
相关的包是x11-xserver-utils. 这是包裹跟踪系统页面。
该软件包由 Debian X Strike Force 维护。这是他们的邮件列表存档和他们的QA 跟踪器
由于您正在跟踪错误,因此该软件包的 Debian 错误跟踪器页面也可能有用。
在撰写本文时,最近的 Debian 上传是 2018 年 3 月,Launchpad 表明这也是当前 Ubuntu 19.10 中的版本。
所以......看起来目前在 Ubuntu 或 Debian 中根本没有打包的 xrandr 1.5.1。
如果您迫不及待,可以xrandr从源代码安装。
下载tar.xz文件。
cd /tmp
wget https://xorg.freedesktop.org/archive/individual/app/xrandr-1.5.1.tar.xz{,.sig}
Run Code Online (Sandbox Code Playgroud)
然后提取并构建源
tar xvf xrandr-1.5.1.tar.xz
cd xrandr-1.5.1/
./configure --prefix=/usr
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
然后检查版本:
xrandr --version
xrandr program version 1.5.1
Server reports RandR version 1.5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2275 次 |
| 最近记录: |