Как определить неподдерживаемое разрешение экрана в кадровом буфере Linux? - PullRequest
1 голос
/ 12 января 2011

У меня есть ЖК-монитор, который поддерживает hsync от 30 до 82 кГц и vsync от 50 до 85 кГц. Самое низкое поддерживаемое разрешение - 640x350. Я хочу запустить его в разрешении 400х240. Я думаю, что мне нужно отредактировать структуру modedb в modedb.c, и я только что выяснил, что требуется для полей:

Я запустил cvt с max vsync (85 кГц) и получил моделину, подобную этой:

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

Я использовал калькулятор для вычисления hsync и vsync, а hsync будет 21,17 кГц, что слишком мало для этого монитора.

Есть ли способ обойти это? Я хочу проверить, как определенные вещи работают с этим разрешением, поэтому даже обмануть монитор, запустив его, скажем, 800x480 (это приведет к приемлемым значениям hsync и vsync), будет в порядке, пока X и приложения на нем обрабатывают его так, как оно 400x240.

1 Ответ

0 голосов
/ 31 января 2011
            "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 с патчами в свободном масштабе

Редактировать:

На самом деле, если вы используете 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
...