[Comm] fb

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Вт Май 13 19:36:08 MSD 2003


On Mon, May 12, 2003 at 23:20:48 +0400, Maksim Otstavnov wrote:
> >> Я обнаружил, что у меня после обновления ALM 2.0 -> ALM 2.2 фреймбуфер
> >> пришел в малоработоспособное состояние.
> >> 
> >> Последовав рекомендациям AVL на atmsk.ru, я убрал splash из меню ГРУБа
> >> и добавил явную загрузку модуля (конфиги прилагаю).
> 
> SV> Хмм, vga=... в menu.lst, возможно, стоит удавить (хотя с хорошим
> SV> драйвером это не должно вызывать проблем, но кто его знает).
> 
> Так а тогда в текстовом режиме и грузится :)

Именно - вдруг при инициализации fb после установки графического режима
BIOS-ом возникают какие-то странности.

> SV> А грузить модуль можно через /etc/sysconfig/framebuffer - у меня с
> SV> radeonfb это работает.
> 
> А формат этого файла? man'а по нему нет :(

Это точно.  На этой машине у меня там сейчас вот что:

=======
# Example framebuffer config file.
# Uncomment following lines, replacing example values with real ones.
ENABLE=yes
MODULE=radeonfb
MODE=1024x768-75/8bpp
TTYS='1 2 3 4 5 6 12'
=======

MODULE - имя модуля, MODE - имя режима для fbset (из fb.modes).  Режим в
данном случае самопальный (у radeonfb имеется странность - при смене
-depth сдвигается изображение, поэтому для разных bpp настройки слегка
разные).

> >> Результат получился очень странным: от root Mplayer показывает фильм
> >> нормально, от пользователя --- картинка искажена.
> 
> SV> За 5 минут он у меня от пользователя не запустился (-vo sdl - SDL
> SV> Initialization Error: Unable to open mouse; -vo directfb - /dev/tty0:
> SV> Access denied).
> 
> У меня он _запускается_.

А с какими настройками, и какая версия?  Я пробовал имеющуюся под рукой
MPlayer-0.90-alt11.rc3; прочие библиотеки тоже из Master 2.2.

> Насколько я понимаю, суть проблемы может быть в том, что mplayer
> самостоятельно пытается переключать режимы карточки, что ему удается
> из-под рута, но не удается из-под пользователя. С чем-то похожим я
> сталкивался в свое время под Соляркой (на сановском железе, там,
> натурально, текстовых режимов вообще нет, только графические).

Тут дело явно не в видеорежимах - fbset от пользователя работает.
Что-то ещё ему надо...

> SV> От рута с -vo sdl работает. Ковыряться лень - xine в X нормально
> SV> играет :-)
> 
> У меня Xine вообще валится от первого прикосновения.

А у меня он валился только на каких-то особо кривых файлах странного
происхождения.

> >> От fbv ровной картинки не могу добиться ни из под кого.
> 
> SV> Действительно не работает. А fbv /usr/share/pixmaps/ooo_writer.png (и
> SV> куча файлов рядом) вообще вызывает Segmentation fault (после любого из
> SV> fbset -depth {8,15,16,32})
> 
> У меня _работает_, но картинка искажена.

Версия?  У меня fbv-0.96-alt1 падает.

> SV> Кстати, а в matroxfb тоже DirectColor, а не просто TrueColor? Тогда там
> SV> палитра хитро настраивается - вероятно, fbv нормально работать и не
> SV> будет.
> 
> Судя по тому, что я вижу на экране, с палитрой проблем нет. Я не знаю,
> что такое DirectColor.

$ /usr/sbin/fbset -i

mode "1024x768-75"
    # D: 78.802 MHz, H: 60.063 kHz, V: 75.078 Hz
    geometry 1024 768 1024 8191 32
    timings 12690 176 16 28 1 96 3
    hsync high
    vsync high
    rgba 8/16,8/8,8/0,0/0
endmode

Frame buffer device information:
    Name        : Radeon QY VE 
    Address     : 0xd0000000
    Size        : 33554432
    Type        : PACKED PIXELS
    Visual      : DIRECTCOLOR
    XPanStep    : 8
    YPanStep    : 1
    YWrapStep   : 0
    LineLength  : 4096
    MMIO Address: 0xdfef0000
    MMIO Size   : 16384
    Accelerator : Unknown (38)

В X11 типы visual аналогичны.  Суть тут в следующем: для DirectColor
есть отдельные таблицы перекодировки цветов для R, G, B, и fbcon
устанавливает их так, что цвета (0,0,0), (1,1,1), ..., (15,15,15)
переводятся в VGA-образные цвета из палитры консоли.  Что в остальных
элементах - не смотрел, возможно, они вообще в этом случае не
инициализируются.  Во всяком случае, после запуска fbv на экране главным
образом чёрный цвет, кое-где видны странно раскрашенные контуры - такое
впечатление, что там как раз и остались в основном нули.

> >> fbset отказывается понимать синтаксис (--geometry, --timings),
> >> описанный в его man'е, а в help синтаксис не указан.
> 
> SV> /usr/sbin/fbset --geometry 1024 768 1024 8191 8
> 
> SV> Вот так точно работает.
> 
> Нет.
> 
> ioctl FBIOPUT_VSCREENINFO: Invalid argument

Во всяком случае, ругается явно не на синтаксис.

А "--geometry 1024 768 1024 768 8" - тоже не работает?  (Вторая пара -
размеры виртуального экрана (-vxres, -vyres); последнее число - -depth.)

> >> (Заодно уж "пожалуюсь", что в новом формате XFree86-config т.н.
> >> "стандартные" режимы не прописаны явно, поэтому не вполне понятно, чем
> >> компенсировать давнее удобство взятия гарантированно рабочих
> >> геометрии/тайминга утилитой modelines2fb).
> 
> SV> При прописанном Option "UseFBDev" "On" можно взять параметры через
> SV> fbset, запустив его в X.
> 
> Возможно, но чтобы запустить иксы через фреймбуфер, нужно поиметь
> сначала работающий фреймбуфер :)

Так я понял, что вообще-то он у вас работает, но MPlayer и fbv глючат.
Если режим ставится и текст отображается, X должен бы запуститься.

Правда, на radeonfb есть один фокус: при включении UseFBDev меняется
полярность сигналов синхронизации, если она не задана явно в Modeline.
Поэтому настройки монитора сползают (он считает это новым режимом).  Не
знаю, общее ли это свойство, либо особенность radeonfb (или драйвера
radeon_gatos в X).



Подробная информация о списке рассылки community