LINUX.ORG.RU

[uvesafb] выставить НЕ поддерживаемое разрешение

 


0

0

В /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes и /sys/class/graphics/fb0/modes нет нужного (1920x1200) разрешения, при video=uvesafb:1920x1200-32,mtrr:3,ywrap выставляется максимально возможное 1600x1200. nVidia Framebuffer выставляет 1920x1200 без проблем, но он не работает вместе с проприетарными дровами. Есть ли способы насильно выставить не поддерживаемое разрешение?

Есть мысль поправить исходники kernel/drivers/video/uvesafb.c
вроде бы эта функция отвечает за расчет поддерживаемых разрешений:

static int uvesafb_vbe_find_mode(struct uvesafb_par *par,
int xres, int yres, int depth, unsigned char flags)
{
int i, match = -1, h = 0, d = 0x7fffffff;

for (i = 0; i < par->vbe_modes_cnt; i++) {
h = abs(par->vbe_modes[i].x_res - xres) +
abs(par->vbe_modes[i].y_res - yres) +
abs(depth - par->vbe_modes[i].depth);

/*
* We have an exact match in terms of resolution
* and depth.
*/
if (h == 0)
return i;

if (h < d || (h == d && par->vbe_modes[i].depth > depth)) {
d = h;
match = i;
}
}
i = 1;

if (flags & UVESAFB_EXACT_DEPTH &&
par->vbe_modes[match].depth != depth)
i = 0;

if (flags & UVESAFB_EXACT_RES && d > 24)
i = 0;

if (i != 0)
return match;
else
return -1;
}

Как сюда вписать 1920x1200?


ЕМНИП VESA не позволяет указывать произвольный режим. Можно только выбрать из некоторого фикисрованного списка. А откуда берётся этот список уже не помню: то-ли он вообще стандартизован, то-ли его можно получить через вызовы VBE...

Deleted
()

Все там есть.

# cat /sys/class/graphics/fb0/modes
U:1920x1200p-77

# vbetest
...
[381] 1920x1200 (8:8:8)

# uname -a
Linux xx 2.6.27-gentoo-r7

Посмотрите, есть ли в списке, выводимом vbetest нужный режим. Этот список запрашивается у bios видеокарточки. Если там нет нужного, то и в uvesafb его не будет.

Suigintou ★★★★★
()
Ответ на: комментарий от Suigintou

Это ноутбук. На сайте производителя обновлений нет и не будет - ноут старый.

Помогите написать патч для uvesafb, что бы режимы брались не из VBE, а из заданного списка.

trill
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.