How to define a unsupported screen resolution in Linux's framebuffer?
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 vsy开发者_运维问答nc) would be ok as long as X and applications on top of it handle it like it was 400x240.
"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
精彩评论