Re: text console history size
В сообщении от 25 Октябрь 2005 14:09 Mikolaj Golub написал(a):
> >> PA> Думаешь, все 256Mb этой видеопамяти? ;)
> MD> Будешь смеяться? А ты включи фрейм-буфер и попробуй поскроль :) Размер
> MD> истории будет зависеть от след. параметров:
> MD> - кол-во видеопамяти;
> MD> - кол-во цветов;
> MD> - разрешение.
> MD> Теперь давай улыбнемся вместе :)
>
> Смотрим с интересом в video/console/fbcon.c:
>
> scrollback_phys_max = p->vrows - vc->vc_rows;
>
> p->vrows = info->var.yres_virtual/fh;
>
> Далее в video/vesafb.c:
>
> vesafb_defined.yres_virtual = vesafb_fix.smem_len / vesafb_fix.line_length;
>
> И наконец в vesafb_probe():
>
> /* Allocate enough memory for double buffering */
> vesafb_fix.smem_len = screen_info.lfb_width * screen_info.lfb_height * vesafb_defined.bits_per_pixel >> 2;
>
> /* check that we don't remap more memory than old cards have */
> if (vesafb_fix.smem_len > (screen_info.lfb_size * 65536))
> vesafb_fix.smem_len = screen_info.lfb_size * 65536;
>
> /* Set video size according to vram boot option */
> if (vram)
> vesafb_fix.smem_len = vram * 1024 * 1024;
>
> vesafb_fix.visual = (vesafb_defined.bits_per_pixel == 8) ?
> FB_VISUAL_PSEUDOCOLOR : FB_VISUAL_TRUECOLOR;
>
> /* limit framebuffer size to 16 MB. Otherwise we'll eat tons of
> * kernel address space for nothing if the gfx card has alot of
> * memory (>= 128 MB isn't uncommon these days ...) */
> if (vesafb_fix.smem_len > 16 * 1024 * 1024)
> vesafb_fix.smem_len = 18 * 1024 * 1024;
>
> Т.е. для vesafb не более 16MB. Кстати и педаль для размера скроллбуфера
> обнаружилась -- загрузочный параметр vram.
Во-первых, это искусственное ограничение. Во-вторых, раньше его там не было,
а я не смотрю с выходом каждой следующей версии ядра в исходники драйвера
VESA. Ну, в-третьих, твоя взяла :)
Кстати, а ты не обратил внимание, на последнюю строчку? Не означает ли она,
что больше 18 Мб нельзя сделать в принципе?
--
Макс
Reply to: