如何在 Linux 的帧缓冲区中定义不支持的屏幕分辨率?

发布于 2024-10-12 01:23:37 字数 552 浏览 12 评论 0原文

我有一台 LCD 显示器,支持 30 至 82 kHz 之间的水平同步和 50-85 kHz 之间的垂直同步。支持的最低分辨率为 640x350。我想以 400x240 分辨率运行它。我想我需要编辑 modedb.c 中的 modedb 结构,我刚刚弄清楚了字段需要什么:

我用最大 vsync (85 kHz) 运行 cvt 并得到了这样的模型行:

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

我使用了 计算器 来计算水平同步和垂直同步,水平同步将为 21.17 kHz,对于此显示器来说太低了。

有办法解决这个问题吗?我想测试某些东西在该分辨率上的工作原理,所以即使通过在 800x480 下运行它来欺骗显示器(这将产生可接受的水平同步和垂直同步)也可以,只要 X 和其上的应用程序像以前一样处理它400x240。

I have an LCD monitor that supports hsync between 30 to 82 kHz and vsync 50-85kHz. Lowest supported resolution is 640x350. I want to run it in 400x240 resolution. I think I need to edit the modedb structure in modedb.c and I have just figured out what the fields require:

I ran cvt with max vsync (85 kHz) and got a modeline like this:

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

I used a calculator to calculate hsync and vsync and hsync would be 21.17 kHz, way too low for this monitor.

Is there a way to get around this? I want to test how certain things work on that resolution, so even cheating the monitor by running it in say 800x480 (this would produce acceptable hsync and vsync) would be ok as long as X and applications on top of it handle it like it was 400x240.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

短暂陪伴 2024-10-19 01:23:37
            "Sharp-VGA",
            56, 800, 480,
            33805,
            84, 40,
            35, 1,
            80, 3,
            0 | FB_SYNC_OE_ACT_HIGH,
            FB_VMODE_NONINTERLACED,
            0,

尝试一下,在 2.6.19.2 中通过 freescale 修补找到的

编辑:

实际上,如果您使用 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
            "Sharp-VGA",
            56, 800, 480,
            33805,
            84, 40,
            35, 1,
            80, 3,
            0 | FB_SYNC_OE_ACT_HIGH,
            FB_VMODE_NONINTERLACED,
            0,

try that one, found in 2.6.19.2 with freescale patching

Edit:

Actually, if you use fbset and the mode is readable from /etc/fb.modes

you should be able to use this too:

    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

eg:
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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文