Linux作業系統下顯示模式重新整理率怎麼改

來源:互聯網
上載者:User

  經常在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的

  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.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.