技術(shù)員聯(lián)盟提供win764位系統(tǒng)下載,win10,win7,xp,裝機(jī)純凈版,64位旗艦版,綠色軟件,免費(fèi)軟件下載基地!

當(dāng)前位置:主頁(yè) > 教程 > 服務(wù)器類 >

Linux操作系統(tǒng)下顯示模式刷新率怎么改

來(lái)源:技術(shù)員聯(lián)盟┆發(fā)布時(shí)間:2018-09-16 18:16┆點(diǎn)擊:

  經(jīng)常在bbs上看到有新手問(wèn)到刷新率怎么改法,其實(shí)很簡(jiǎn)單.

  在XFree86下,需要一個(gè)modeline的概念,雖然通過(guò)配置 HorizSync ,和VertRefresh能讓XFree86自動(dòng)把刷新搞定,可是還是不可能細(xì)細(xì)調(diào)整,比如我顯示器在800x600下可以上到108Hz可是,XFree86的自動(dòng)配置卻只有85Hz.

  于是,你需要在給你的XF86Config-4文件的Monitor Section加上一條象

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

  的ModeLine參數(shù),來(lái)告訴X你顯示器有這么一個(gè)模式.具體的數(shù)字,每臺(tái)現(xiàn)實(shí)器都不一樣b,不過(guò)大多顯示器只給了Horizontal Sync Rate 和Refresh Rate(中文好象是行頻和場(chǎng)頻)兩個(gè)參數(shù),自己換算的話麻煩死,還好有這樣一個(gè)頁(yè)面 ,你把你所要的設(shè)置填好(dotclock不知道的可以不填),可以幫你作好換算.注意別太貪心,會(huì)燒掉你的Monitor的

  OK,X下的Refresh解決了,到FrameBuffer了,我只說(shuō)說(shuō)vesa模式的其他的也差不多.FrameBuffer和X用的參數(shù)又不一樣了(真麻煩)不過(guò)還在(Linux Kernel Code Path)/Docmentation/fb/framebuffer.txt有個(gè)轉(zhuǎn)化的公式,不下面的數(shù)值算出來(lái).

  pixclock left_margin right_margin hsync_len upper_margin lower_margin

  vsync_len

  然后,用那些數(shù)字去改(Linux Kernel Code Path)/drivers/video/vesafb.c

  先是又這樣一個(gè)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;

  的幾行.

  對(duì)應(yīng)的相應(yīng)的變量把他們改了(建議原來(lái)的注釋掉),當(dāng)然要在編譯一下kernel. Reboot,haha,all ok now.