如何在Linux的framebuffer中定义不支持的屏幕分辨率?

时间:2011-01-12 08:52:53

标签: linux linux-device-driver xorg

我有一台液晶显示器,支持30到82 kHz之间的hsync和50-85kHz的vsync。支持的最低分辨率为640x350。我想以400x240分辨率运行它。我想我需要在modedb.c中编辑modedb结构,我刚刚想出了字段需要的内容:

我使用max vsync(85 kHz)运行了cvt并获得了这样的模式:

Modeline "400x240_85.00"   10.50  400 416 448 496  240 243 253 256 -hsync +vsync

我使用calculator来计算hsync和vsync,而hsync将是21.17 kHz,这对于这台显示器来说太低了。

有没有办法解决这个问题?我想测试某些事情是如何处理该分辨率的,所以即使在800x480中运行它来欺骗显示器(这会产生可接受的hsync和vsync)也是可以的,只要X和它上面的应用程序像它一样处理它400X240。

1 个答案:

答案 0 :(得分:0)

            "Sharp-VGA",
            56, 800, 480,
            33805,
            84, 40,
            35, 1,
            80, 3,
            0 | FB_SYNC_OE_ACT_HIGH,
            FB_VMODE_NONINTERLACED,
            0,

尝试使用freescale修补程序在2.6.19.2中找到的那个

编辑:

实际上,如果您使用fbset并且该模式可从/etc/fb.modes读取

你也应该能够使用它:

    mode "800x480"
    geometry 800 480 800 480 16
    timings 33805 90 50 35 1 80 3
    accel false
    rgba 5/11,6/5,5/0,0/0
    endmode

例如: fbset -n 800x480

# mode
# geometry <xres> <yres> <vxres> <vyres> <depth>
# timings <pixclock> <left> <right>  <upper>  <lower> <hslen> <vslen>
# options <value>
# rgba <red,green,blue,alpha>
# endmode