中国Linux公社论坛's Archiver

Job 发表于 2005-4-7 20:32

i810 显卡如何支持控制台frame buffer高分辨率

我的机器是 i810 的集成显卡,很想用控制台下面的 高分辨率字符界面,如何才能让它支持 frame buffer 高分辨率显示??
内核已经是编译支持 frame buffer 了,并且 gurb 配置里面,添加了 vga = 788,但是启动机器就会显示该分辨率不支持。google 了所有的 vga 后面可以跟的参数,均不成功。
有什么特别的 方法??

cnhnln 发表于 2005-4-9 00:35

[quote]
    | 640x480  800x600  1024x768 1280x1024
----+-------------------------------------
256 |  0x301    0x303    0x305    0x307   
32k |  0x310    0x313    0x316    0x319   
64k |  0x311    0x314    0x317    0x31A   
16M |  0x312    0x315    0x318    0x31B   
[/quote]

duotaiya 发表于 2005-4-11 10:34

3n
没用的,效果惨不忍睹,我直接把fb关掉了

Job 发表于 2005-4-11 13:00

| 640x480 800x600 1024x768 1280x1024
----+-------------------------------------
256 | 0x301 0x303 0x305 0x307
32k | 0x310 0x313 0x316 0x319
64k | 0x311 0x314 0x317 0x31A
16M | 0x312 0x315 0x318 0x31B

就是用了这些所有的参数,都报告该分辨率不支持。

Job 发表于 2005-4-11 13:02

3n
没用的,效果惨不忍睹,我直接把fb关掉了


什么意思?你关掉了自己的机器上安装的 frame buffer  ? 你的 i810 支持? 怎么弄得,我试试看??

cnhnln 发表于 2005-4-11 20:56

vesa的不行那就用i8x0的原生镇缓冲

Job 发表于 2005-4-12 16:34

[quote:3fccd48f86="cnhnln"]vesa的不行那就用i8x0的原生镇缓冲[/quote]

具体如何操作??

cnhnln 发表于 2005-4-12 22:12

[quote]D. Kernel booting

Separate each option/option-pair by commas (,) and the option from its value
with a colon (:) as in the following:

video=i810fb:option1,option2:value2

Sample Usage
------------

In /etc/lilo.conf, add the line:

append="video=i810fb:vram:2,xres:1024,yres:768,bpp:8,hsync1:30,hsync2:55, \
        vsync1:50,vsync2:85,accel,mtrr"

This will initialize the framebuffer to 1024x768 at 8bpp.  The framebuffer
will use 2 MB of System RAM. MTRR support will be enabled. The refresh rate
will be computed based on the hsync1/hsync2 and vsync1/vsync2 values.  

IMPORTANT:
You must include hsync1, hsync2, vsync1 and vsync2 to enable video modes
better than 640x480 at 60Hz.[/quote]
[code:1]Intel 810/815 Framebuffer driver
        Tony Daplas <adaplas@pol.net>
        http://i810fb.sourceforge.net

        March 17, 2002

        First Released: July 2001
================================================================

A. Introduction
        This is a framebuffer driver for various Intel 810/815 compatible
graphics devices.  These would include:

        Intel 810
        Intel 810E
        Intel 810-DC100
        Intel 815 Internal graphics only, 100Mhz FSB
        Intel 815 Internal graphics only
        Intel 815 Internal graphics and AGP

B.  Features

        - Choice of using Discrete Video Timings, VESA Generalized Timing
          Formula, or a framebuffer specific database to set the video mode

        - Supports a variable range of horizontal and vertical resolution, and
          vertical refresh rates if the VESA Generalized Timing Formula is
          enabled.

        - Supports color depths of 8, 16, 24 and 32 bits per pixel

        - Supports pseudocolor, directcolor, or truecolor visuals

        - Full and optimized hardware acceleration at 8, 16 and 24 bpp

        - Robust video state save and restore

        - MTRR support

        - Utilizes user-entered monitor specifications to automatically
          calculate required video mode parameters.

        - Can concurrently run with xfree86 running with native i810 drivers

        - Hardware Cursor Support

C.  List of available options
       
   a. "video=i810fb"  
        enables the i810 driver

        Recommendation: required

   b. "xres:<value>"  
        select horizontal resolution in pixels

        Recommendation: user preference
        (default = 640)

   c. "yres:<value>"
        select vertical resolution in scanlines. If Discrete Video Timings
        is enabled, this will be ignored and computed as 3*xres/4.  

        Recommendation: user preference
        (default = 480)
               
   d. "vyres:<value>"
        select virtual vertical resolution in scanlines. If (0) or none
        is specified, this will be computed against maximum available memory.

        Recommendation: do not set
        (default = 480)

   e. "vram:<value>"
        select amount of system RAM in MB to allocate for the video memory

        Recommendation: 1 - 4 MB.
        (default = 4)

   f. "bpp:<value>"   
        select desired pixel depth

        Recommendation: 8
        (default = 8)

   g. "hsync1/hsync2:<value>"
        select the minimum and maximum Horizontal Sync Frequency of the
        monitor in KHz.  If a using a fixed frequency monitor, hsync1 must
        be equal to hsync2.

        Recommendation: check monitor manual for correct values
        default (29/30)

   h. "vsync1/vsync2:<value>"
        select the minimum and maximum Vertical Sync Frequency of the monitor
        in Hz. You can also use this option to lock your monitor's refresh
        rate.

        Recommendation: check monitor manual for correct values
        (default = 60/60)

        IMPORTANT:  If you need to clamp your timings, try to give some
        leeway for computational errors (over/underflows).  Example: if
        using vsync1/vsync2 = 60/60, make sure hsync1/hsync2 has at least
        a 1 unit difference, and vice versa.

   i. "voffset:<value>"       
        select at what offset in MB of the logical memory to allocate the
        framebuffer memory.  The intent is to avoid the memory blocks
        used by standard graphics applications (XFree86).  The default
        offset (16 MB for a 64MB aperture, 8 MB for a 32MB aperture) will
        avoid XFree86's usage and allows up to 7MB/15MB of framebuffer
        memory.  Depending on your usage, adjust the value up or down,
        (0 for maximum usage, 31/63 MB for the least amount).  Note, an
        arbitrary setting may conflict with XFree86.

        Recommendation: do not set
        (default = 8 or 16 MB)
      
   j. "accel"
        enable text acceleration.  This can be enabled/reenabled anytime
        by using 'fbset -accel true/false'.

        Recommendation: enable
        (default = not set)

   k. "mtrr"
        enable MTRR.  This allows data transfers to the framebuffer memory
        to occur in bursts which can significantly increase performance.
        Not very helpful with the i810/i815 because of 'shared memory'.

        Recommendation: do not set
        (default = not set)

   l. "extvga"
        if specified, secondary/external VGA output will always be enabled.
        Useful if the BIOS turns off the VGA port when no monitor is attached.
        The external VGA monitor can then be attached without rebooting.

        Recommendation: do not set
        (default = not set)
       
   m. "sync"
        Forces the hardware engine to do a "sync" or wait for the hardware
        to finish before starting another instruction. This will produce a
        more stable setup, but will be slower.

        Recommendation: do not set
        (default = not set)

   n. "dcolor"
        Use directcolor visual instead of truecolor for pixel depths greater
        than 8 bpp.  Useful for color tuning, such as gamma control.

        Recommendation: do not set
        (default = not set)
                       
D. Kernel booting

Separate each option/option-pair by commas (,) and the option from its value
with a colon (:) as in the following:

video=i810fb:option1,option2:value2

Sample Usage
------------

In /etc/lilo.conf, add the line:

append="video=i810fb:vram:2,xres:1024,yres:768,bpp:8,hsync1:30,hsync2:55, \
        vsync1:50,vsync2:85,accel,mtrr"

This will initialize the framebuffer to 1024x768 at 8bpp.  The framebuffer
will use 2 MB of System RAM. MTRR support will be enabled. The refresh rate
will be computed based on the hsync1/hsync2 and vsync1/vsync2 values.  

IMPORTANT:
You must include hsync1, hsync2, vsync1 and vsync2 to enable video modes
better than 640x480 at 60Hz.

E.  Module options
       
        The module parameters are essentially similar to the kernel
parameters. The main difference is that you need to include a Boolean value
(1 for TRUE, and 0 for FALSE) for those options which don't need a value.

Example, to enable MTRR, include "mtrr=1".

Sample Usage
------------

Using the same setup as described above, load the module like this:

        modprobe i810fb vram=2 xres=1024 bpp=8 hsync1=30 hsync2=55 vsync1=50 \
                 vsync2=85 accel=1 mtrr=1

Or just add the following to /etc/modprobe.conf

        options i810fb vram=2 xres=1024 bpp=16 hsync1=30 hsync2=55 vsync1=50 \
        vsync2=85 accel=1 mtrr=1

and just do a

        modprobe i810fb


F.  Setup

        a. Do your usual method of configuring the kernel.
       
        make menuconfig/xconfig/config

        b. Under "Code Maturity Options", enable "Prompt for experimental/
           incomplete code/drivers".

        c. Enable agpgart support for the Intel 810/815 on-board graphics.
           This is required.  The option is under "Character Devices"

        d. Under "Graphics Support", select "Intel 810/815" either statically
           or as a module.  Choose "use VESA GTF for video timings"  if you
           need to maximize the capability of your display.  To be on the
           safe side, you can leave this unselected.  
  
        e. If you want a framebuffer console, enable it under "Console
           Drivers"

        f. Compile your kernel.
                 
        g. Load the driver as described in section D and E.
       
        Optional:       
        h.  If you are going to run XFree86 with its native drivers, the
            standard XFree86 4.1.0 and 4.2.0 drivers should work as is.
            However, there's a bug in the XFree86 i810 drivers.  It attempts
            to use XAA even when switched to the console. This will crash
            your server. I have a fix at this site:  
            
            http://i810fb.sourceforge.net.  

            You can either use the patch, or just replace
            
            /usr/X11R6/lib/modules/drivers/i810_drv.o

            with the one provided at the website.        

        i.  Try the DirectFB (http://www.directfb.org) + the i810 gfxdriver
            patch to see the chipset in action (or inaction :-).

G.  Acknowledgment:
       
        1.  Geert Uytterhoeven - his excellent howto and the virtual
                                 framebuffer driver code made this possible.

        2.  Jeff Hartmann for his agpgart code.  

        3.  The X developers.  Insights were provided just by reading the
            XFree86 source code.

        4.  Intel(c).  For this value-oriented chipset driver and for
            providing documentation.

        5. Matt Sottek.  His inputs and ideas  helped in making some
        optimizations possible.

H.  Home Page:

        A more complete, and probably updated information is provided at
http://i810fb.sourceforge.net.

###########################
Tony[/code:1]

Job 发表于 2005-4-13 10:41

cnhnln 太感谢你了,!!!!非常感谢你的支持,谢谢!!
你给的资料太有效了,我已经成功的在我的字符控制台界面上用起了 1024x768 16bpp 的分辨率。太棒了!! :-D  :wink:

Job 发表于 2005-4-13 10:50

资料上是用 lilo 举例的。我用的是 grub ,也是一样,就在
kernel (hdx,x)/vmlinux 之后加上 video=i810fb:vram:4,xres:1024,yres:768,bpp:16,hsync1:30,hsync2:70,
vsync1:50,vsync2:150,accel,mtrr
就可以了,希望和我一样的兄弟也能用上控制台字符高分辨率

cnhnln 发表于 2005-4-13 20:56

[quote:e73ee8aa07="Job"]cnhnln 太感谢你了,!!!!非常感谢你的支持,谢谢!!
你给的资料太有效了,我已经成功的在我的字符控制台界面上用起了 1024x768 16bpp 的分辨率。太棒了!! :-D  :wink:[/quote]
内核文档里的,转贴而已 :wink:

chinalinux2002 发表于 2005-4-18 09:17

我的也是i810显卡,等我试试是否真的可以???

jm-frank 发表于 2010-10-31 19:51

OMG!!!!!!!!!!!!!!

页: [1]

Powered by Discuz! Archiver 6.1.0F  © 2001-2007 Comsenz Inc.