设为首页 加入收藏 简繁转换

 | 网站首页 | 网络学院 | 自考论坛 | 四联自学 | 四联博客 | 

您现在的位置: IT自学网 >> 网络学院 >> 操作系统 >> Linux >> 新手入门 >> 学院正文
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
按部就班三步走:RHCE黄金…
实力的终极挑战:RHCE认证…
考前必读:怎样准备RHCE考…
认证考试介绍之RHCE篇
红旗Linux认证证书样本
高手攻关心得:RHCE实战详…
实力的终极挑战:RHCE认证…
按部就班三步走:RHCE黄金…
考前必读:怎样准备RHCE考…
明年Redhat考试将有重大…
FRramebuffer HOWTO英文(续)           ★★★★
FRramebuffer HOWTO英文(续)
作者:4Lzx.com 文章来源:bbs.4Lzx.com 点击数: 更新时间:2005-9-4 18:51:57


18. How do I convert XFree86 mode-lines into framebuffer device tim- ings?

If you have XFree86 (X11) installed on your machine, and you can use it successfully, it is a simple matter to convert the mode-lines in your XF86Config to the required timings needed by the framebuffer
devices.

The framebuffer device requires the following fields
o pixclock - pixel clock in pico seconds
o left_margin - time fron sync to picture
o right_margin - time from picture to sync
o upper_margin - time from sync to picture
o lower_margin - time from picture to sync
o hsync_len - length of horizontal sync
o vsync_len - length of vertical sync

An XFree86 mode line has the following fields
Modeline "1280x1024" DCF HR SH1 SH2 HFL VR SV1 SV2 VFL

It is necessary to do some simple calculations to translate the XF86 mode-lines into a set of framebuffer device timings. As an example, we shall examine how to convert a mode-line taken from my XF86Config
file.

Modeline "1280x1024" 110.00 1280 1328 1512 1712 1024 1025 1028 1054

First, calculate the required pixclock rate. XFree86 uses megahertz whilst framebuffer devices uses picoseconds (Why, I don't know). Divide one million by DCF. For example, 1,000,000 / 110.0 = 9090.9091

Now we need to calculate the horizontal timings.
o left_margin = HFL - SH2
o right_margin = SH1 - HR
o hsync_len = SH2 - SH1

In our example, this would be:
o left_margin = 1712 - 1512 = 200
o right_margin = 1328 - 1280 = 48
o hsync_len = 1512 - 1328 = 184

And now we need to calculate the vertical timings.
o upper_margin = VFL - SV2
o lower_margin = SV1 - VR
o vsync_len = SV2 - SV1

For our example, this would be:
o upper_margin = 1054 - 1028 = 26
o lower_margin = 1025 - 1024 = 1
o vsync_len = 1028 - 1025 = 3


Now we can use this information to set up the framebuffer for the desired mode. For example, for the matroxfb framebuffer, it requires: video=matrox:xres:<>,yres:<>,depth:<>,left:<>,right:<>,hslen:<>,upper:<>,lower:<>,vslen:<>

I put in my /etc/lilo.conf the following line:
append = "video=matrox:xres:1280,yres:1024,depth:32,left:200,right:48,hslen:184,upper:26,lower:0,vslen:3"

Note that in this case the pixclock isn't used. It's only necessary if you don't like the default pixclock rates. You can supply this as a parameter as well. Setting the pixclock is documented in other parts of this HOWTO.

19. Looking for further information?
For those of you interested in working with the framebuffer drivers, point your browser at
http://www.csoft.net/~systems/jim/fb.html
French speakers, there is a translation at
http://www.freenix.org/unix/linux/HOWTO/mini/Vesafb.html

 

学院录入:4Lzx.com    责任编辑:4Lzx.com 
  • 上一篇学院:

  • 下一篇学院:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(评论内容只代表网友观点,与本站立场无关!)

    站长:IT自学
    有事点这里