当前位置: 首页 » 产品 » 农牧养殖 » 正文

Linux操作系统下显示模式刷新率怎么改

放大字体  缩小字体 发布日期: 2024-11-26 14:36   来源:http://www.baidu.com/  作者:无忧资讯  浏览次数:12
核心提示:  经常在bbs上看到有新手问到刷新率怎么改法,其实很简单.  在XFree86下,需要一个modeline的概念,虽然通过配置 HorizSync,和V

  经常在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(中文好象是行频和场频)两个参数,自己换算的话麻烦死,还好有这样一个页面 ,你把你所要的设置填好(dotclock不知道的可以不填),可以帮你作好换算.注意别太贪心,会烧掉你的Monitor的

  OK,X下的Refresh解决了,到frameBuffer了,我只说说vesa模式的其他的也差不多.frameBuffer和X用的参数又不一样了(真麻烦)不过还在(Linux Kernel Code Path)/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.

 
 
[ 产品搜索 ]  [ 加入收藏 ]  [ 告诉好友 ]  [ 打印本文 ]  [ 违规举报 ]  [ 关闭窗口 ]

 

 
推荐图文
推荐产品
点击排行
    行业协会  备案信息  可信网站