注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

不透明的雾的博客

人生是一次记忆的旅行

 
 
 

日志

 
 
 
 

Linux 下刷新率[转]  

2006-08-22 23:54:10|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

经常在bbs上看到有新手问到刷新率怎么改法,其实很简单.
在XFree86下,需要一个modeline的概念,虽然通过配置 HorizSync,
和VertRefresh能让XFree86自动把刷新搞定,可是还是不可能细细调整,
比如我显示器在800x600下可以上到108Hz可是,XFree86的自动配置却只有85Hz.
于是,你需要在给你的XF86Config-4文件的Monitor Section加上一条象

ModeLine "800x600@102" 73.61 800 832 1104 1136 600 610 620 631

的ModeLine参数,来告诉X你显示器有这么一个模式.具体的数字,每台现实器都不一样b,
不过大多显示器只给了Horizontal Sync Rate 和Refresh Rate(中文好象是行频和场频)两个参数,
自己换算的话麻烦死,还好有这样一个页面

http://xtiming.sourceforge.net/cgi-bin/xtiming.pl

,你把你所要的设置填好(dotclock不知道的可以不填),可以帮你作好换算.注意别太贪心,会烧掉你的Monitor的  Linux 下刷新率[转] - 不透明的雾 - 不透明的雾的博客
OK,X下的Refresh解决了,到FrameBuffer了,我只说说vesa模式的其他的也差不多.

FrameBuffer和X用的参数又不一样了(真麻烦)
不过还在(Linux Kernel CodePath)/Docmentation/fb/framebuffer.txt有个转化的公式,不下面的数值算出来.
pixclock left_margin right_margin hsync_len upper_margin lower_margin
vsync_len

然后,用那些数字去改(Linux Kernel Code Path)/drivers/video/vesafb.c
先是又这样一个struct:
static struct fb_var_screeninfo vesafb_defined __initdata = {
.activate = FB_ACTIVATE_NOW,
.height = -1,
.width = -1,
.right_margin = 32,
.upper_margin = 16,
.lower_margin = 4,
.vsync_len = 4,
.vmode = FB_VMODE_NONINTERLACED,
};

然后是:
vesafb_defined.pixclock = 10000000 / vesafb_defined.xres * 1000 / vesafb_defined.yres;
vesafb_defined.left_margin = (vesafb_defined.xres / 8) & 0xf8;
vesafb_defined.hsync_len = (vesafb_defined.xres / 8) & 0xf8;

的几行.
对应的相应的变量把他们改了(建议原来的注释掉),当然要在编译一下kernel.
Reboot,haha,all ok now.

最郁闷的是居然要 重新改内核
麻烦,现不说了
60hz凑合用吧
  评论这张
 
阅读(103)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017