lur*_*her 3 hdtv xorg.conf 1080p ubuntu-10.10 nvidia-graphics-card
我正在运行 Ubuntu 10.10 x86_64 版本,使用 Nvidia 9800 GT,按照本指南安装 270.41.06 Nvidia 驱动程序。我有一台 LG42LH30FR 液晶电视,通过 dvi 链接 -> RGB PC 输入
我能够在没有过扫描的情况下获得 1024x768 分辨率(我可以获得 1080i = 1366x768,但右侧有很多隐藏的屏幕空间,我不知道该怎么办)。我想要全高清
我可以在 64 位 Windows XP 上获得全高清(1080p = 1920x1080),使用 Nvidia 控制面板创建的自定义分辨率,通过阅读 xorg.conf 配置,似乎我需要向监视器配置添加某种建模,但我没有t know where to get the appropriate options for this task
有什么建议?
我可以在屏幕中使用自定义 EDID 来做到这一点,方法是将其添加到xorg.conf屏幕部分:
Option "CustomEDID" "DFP-0:/path/to/file/custom_edid.bin"
Run Code Online (Sandbox Code Playgroud)
或者通过生成配置:
sudo nvidia-xconfig --custom-edit="CRT-0:/my/monitor.bin"
Run Code Online (Sandbox Code Playgroud)
现在最大的问题是,如何生成可接受的 EDID .bin?
在 Windows XP 上,我必须安装两个应用程序:PowerStrip(维基百科关于 EDID 的文章中引用了它)
我们需要的另一个应用程序是Phoenix EDID Designer。
使用 PowerStrip,我们将从当前显示模式中获取详细的时序信息;基本上所需的信息显示在本文中,总结如下:
1) 在 WinXP 中,计时位于高级设置选项卡中的某处。你需要:
Horiz Front Porch, Vert Front Porch,
Horiz Back Porch, Vert Back Porch,
Horiz Front Active, Vert Front Active,
Horiz Scan (or Sync) Width, Vert Scan Width,
Horiz Sync Polarity, Vert Sync Polarity,
and Pixel Clock.
Run Code Online (Sandbox Code Playgroud)
2) 在你的 /etc/X11/xorg.conf 中有一个模型行的地方,看起来像
代码:
Modeline "1768x992" 74.48 1768 1336 1472 1664 992 721 724 746 -hsync +vsync
Run Code Online (Sandbox Code Playgroud)
只是一个例子。不要使用这个。
模式行的格式为
代码:
Modeline "somenamehere" <dotclock> <H1> <H2> <H3> <H4> <V1> <V2> <V3> <V4> <HP> <VP>
where dotclock = Pixel Clock
H1=Horiz Front Active
H2=H1+Horiz Front Porch
H3=H2+Horiz Sync Width
H4=H3+Horiz Back Porch
V1=Vert Front Active
V2=V1+Vert Front Porch
V3=V2+Vert Sync Width
V4=V3+Vert Back Porch
HP=Horiz Sync Polarity [-hsync/+hsync]
VP=Vert Sync Polarity [-vsync/+vsync]
Run Code Online (Sandbox Code Playgroud)
简单的公式,但我花了数周的时间寻找如何将 Windows 时间转换为 Linux 模式行。
对于我特定的 LG42LH30FR 液晶电视,生成的模型行是:
Modeline "1080p" 172.8 1920 2040 2248 2576 1080 1081 1084 1118 -hsync +vsync
Run Code Online (Sandbox Code Playgroud)
我将此添加到我的监视器部分,但它不起作用,这就是我去添加自定义 EDID 的原因。
现在创建EDID
打开Phoenix EDID Designer,基本上我从Windows Registry导入了一个EDID,我以此为基础进行修改,这是因为我不知道如何填充“颜色/确定时间”部分,所以预填充给了我希望合理的值(它对我有用,也许是运气),无论如何,单击read-only/modify允许编辑的按钮,要修改的重要内容
在这里添加任何你想要的
Video Input Definition -> Digital
Display Type -> RBG color
sRGB -> check
gamma value: somewhere over 250 would be ok
Run Code Online (Sandbox Code Playgroud)
H. Active Pixels (use the value obtained from PowerStrip, for full hd it should be 1920)
refresh rate (for me its 60Hz)
Run Code Online (Sandbox Code Playgroud)
set all blocks to "unused" except block #1:
Pixel Clock: (use from PS obtained info)
H/V Active Pixel : from PS info
H/V Blank : from PS info. this is actually **Front Porch**
H/V Sync Offset: from PS info. this is actually **Back Porch**
H/V Sync width: from PS info
Run Code Online (Sandbox Code Playgroud)
完毕。现在将生成的文件保存在某处,您可以打开它,它是一个文本文件。
您需要一个额外的步骤将其转换为所需的 128 字节 .bin EDID 文件;基本上我会指向描述转换的主要文章,但总结一下你必须
strip 文件中除十六进制数字矩阵之外的所有内容#include <stdio.h>
int main()
{
while (!feof(stdin))
{
unsigned char i;
scanf("%02X ", &i);
printf("%c", i);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
并运行:
# gcc comp.c -o comp
# ./comp < custom_edid.dat > custom_edid.bin
Run Code Online (Sandbox Code Playgroud)
完毕!重新启动您的 Ubuntu(在添加文章开头解释的自定义 edid 配置选项之后),现在在 Nvidia X 服务器设置上,您应该能够设置为您的自定义分辨率。
| 归档时间: |
|
| 查看次数: |
4301 次 |
| 最近记录: |