Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

linux: framebuffer консоль

1.8K
18 августа 2007 года
igor_nf
256 / / 13.12.2006
Итак. Понадобилось настроить консоль с поддержкой framebuffer. Дело зашло в тупик когда я дошёл до выбора приемлемого разрешения. Дистр - Gentoo, соответственно, для решения проблемы необходимо правильно сконфигурировать ядро, установив нужные параметры. Видео - Radeon 9600. Вроде включил всё необходимое, вот интересующий кусок .config ядра:
Код:
# Frame buffer hardware drivers
#
# CONFIG_FB_VGA16 is not set
# CONFIG_FB_VESA is not set
CONFIG_VIDEO_SELECT=y
# CONFIG_FB_HGA is not set
# CONFIG_FB_INTEL is not set
CONFIG_FB_RADEON=y
CONFIG_FB_RADEON_I2C=y
# CONFIG_FB_RADEON_BACKLIGHT is not set
CONFIG_FB_RADEON_DEBUG=y
# CONFIG_FB_ATY128 is not set
# CONFIG_FB_ATY is not set
# CONFIG_FB_VIRTUAL is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
CONFIG_VGACON_SOFT_SCROLLBACK=y
CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=1024
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FONTS=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_FONT_6x11 is not set
# CONFIG_FONT_7x14 is not set
# CONFIG_FONT_PEARL_8x8 is not set
# CONFIG_FONT_ACORN_8x8 is not set
# CONFIG_FONT_MINI_4x6 is not set
# CONFIG_FONT_SUN8x16 is not set
# CONFIG_FONT_SUN12x22 is not set
# CONFIG_FONT_10x18 is not set

По дефолту консоль загружается 640x480@60. Не совсем приемлемо для нормальной работы. Показанный конфиг устанавливает 1280x1024@85 - для моего монитора тоже слишком. Путём научного тыка установлено, что именно включение опции CONFIG_FB_RADEON_I2C устанавливает данное разрешение - Radeon DDC/I2C support. Можно включит поддержку VESA и выбрать VESA_DEFAULT_MODE но это ни на что не влияет - всё равно грузится 640x480@60. В общем, перепробовал кучу комбинаций, все мои изыскания привели к следующему: 640x480@60 или 1280x1024@85.
Перекомпилял ядро с отладочными опциями, вот ещё кусок лога загрузки стадии детектирования интересующего оборудования:
Код:
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11
PCI: setting IRQ 11 as level-triggered
ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [LNKA] -> GSI 11 (level, low) -> IRQ 11
radeonfb (0000:01:00.0): Found 262144k of DDR 128 bits wide videoram
radeonfb (0000:01:00.0): mapped 16384k videoram
radeonfb: Found Intel x86 BIOS ROM Image
radeonfb: Retrieved PLL infos from BIOS
radeonfb: Reference=27.00 MHz (RefDiv=12) Memory=324.00 Mhz, System=189.00 MHz
radeonfb: PLL min 20000 max 40000
i2c_adapter i2c-0: adapter [monid] registered
i2c_adapter i2c-1: adapter [dvi] registered
i2c_adapter i2c-2: adapter [vga] registered
i2c_adapter i2c-3: adapter [crt2] registered
1 chips in connector info
 - chip 1 has 2 connectors
  * connector 0 of type 2 (CRT) : 2300
  * connector 1 of type 3 (DVI-I) : 3221
Starting monitor auto detection...
radeonfb: I2C (port 1) ... not found
i2c_adapter i2c-1: master_xfer[0] W, addr=0x50, len=1
i2c_adapter i2c-1: master_xfer[1] R, addr=0x50, len=128
i2c_adapter i2c-1: unable to read EDID block.
i2c_adapter i2c-1: master_xfer[0] W, addr=0x50, len=1
i2c_adapter i2c-1: master_xfer[1] R, addr=0x50, len=128
i2c_adapter i2c-1: unable to read EDID block.
Switched to NOHz mode on CPU #0
i2c_adapter i2c-1: master_xfer[0] W, addr=0x50, len=1
i2c_adapter i2c-1: master_xfer[1] R, addr=0x50, len=128
i2c_adapter i2c-1: unable to read EDID block.
radeonfb: I2C (port 2) ... not found
i2c_adapter i2c-2: master_xfer[0] W, addr=0x50, len=1
i2c_adapter i2c-2: master_xfer[1] R, addr=0x50, len=128
radeonfb: I2C (port 3) ... found CRT display
radeonfb: I2C (port 4) ... not found
i2c_adapter i2c-1: master_xfer[0] W, addr=0x50, len=1
i2c_adapter i2c-1: master_xfer[1] R, addr=0x50, len=128
i2c_adapter i2c-1: unable to read EDID block.
i2c_adapter i2c-1: master_xfer[0] W, addr=0x50, len=1
i2c_adapter i2c-1: master_xfer[1] R, addr=0x50, len=128
i2c_adapter i2c-1: unable to read EDID block.
i2c_adapter i2c-1: master_xfer[0] W, addr=0x50, len=1
i2c_adapter i2c-1: master_xfer[1] R, addr=0x50, len=128
i2c_adapter i2c-1: unable to read EDID block.
radeonfb: I2C (port 2) ... not found
radeonfb: I2C (port 4) ... not found
i2c_adapter i2c-2: master_xfer[0] W, addr=0x50, len=1
i2c_adapter i2c-2: master_xfer[1] R, addr=0x50, len=128
radeonfb: I2C (port 3) ... found CRT display
radeonfb: Monitor 1 type CRT found
radeonfb: EDID probed
radeonfb: Monitor 2 type no found
hStart = 1344, hEnd = 1504, hTotal = 1728
vStart = 1025, vEnd = 1028, vTotal = 1072
h_total_disp = 0x9f00d7    hsync_strt_wid = 0x14054a
v_total_disp = 0x3ff042f       vsync_strt_wid = 0x30400
pixclock = 6349
freq = 15750
freq = 15750, PLL min = 20000, PLL max = 40000
ref_div = 12, ref_clk = 2700, output_freq = 31500
ref_div = 12, ref_clk = 2700, output_freq = 31500
post div = 0x1
fb_div = 0x8c
ppll_div_3 = 0x1008c
Console: switching to colour frame buffer device 160x64
radeonfb (0000:01:00.0): ATI Radeon AP
radeonfb_pci_register END
и т.д.

Может кто разбирался с сабжем и знает, как установить приемлемое разрешение. Если устанавливается 1280x1024@85, как установить, скажем, 1024x768@100 или хотя бы 1024x768@85? Почему ядро пишет unable to read EDID block? Может проблема кроется в этом? Нужно ли включать поддержку VESA, если включена поддержка framebuffer для radeon? Просьба помочь разбирающихся в данном вопросе.
502
24 августа 2007 года
Jail
550 / / 30.01.2007
[LEFT]Я сталкивался с подобной проблемкой, но у меня немного другая карточка NVIDIA Geforse 8500 GT. У вас в системе просто нет необходимого драйвера для поддержания работы именно вашей карточки, поэтому и запустились стандартные дрова VESA, которые, как мне кажется, не поддерживают framebuffer и разрешение вы сменить не сможете (VESA это тоже не поддерживает). Я решил проблему установкой OpenGL дров для моей карточки с сайта производителя, а также необходимого предкомпилированного модуля ядра для поддержания GL.
Думаю вам стоит наити драйвера от произвоителя RAdeon, а так же модуль ядра, настроить конфиг xorg.conf, в соответствии с документацией на дрова, и всё зарабоает :)
[/LEFT]
1.8K
24 августа 2007 года
igor_nf
256 / / 13.12.2006
Ну так есть же драйвер! В иксах то я сижу - всё нормально. А вот как именно переключить разрешение в консоли - не победил.
1.8K
05 сентября 2007 года
igor_nf
256 / / 13.12.2006
Победил. Но не полностью. Убрал из ядра поддержку framebuffer для своей видеокарты:
 
Код:
# CONFIG_FB_RADEON is not set


По всей видимости, был какой-то конфликт. Теперь приемлемое разрешение можно установить, подав grub при загрузке такую опцию:

Файл grub.conf
 
Код:
kernel /boot/vmlinuz video=vesafb:1024x768@85 root=/dev/sda1


При загрузке в консоли имеем разрешение 1024x768. Но герцовка так и не поменялась(стабильно 60Гц). Не влияет ни вышеуказанная опция, ни VESA_DEFAULT_MODE в конфиге ядра...:confused:

P.S. Ещё на шаг ближе к истине...
32K
08 сентября 2007 года
dha'meo'elin
1 / / 08.09.2007
а править fb.modes не пробовал?
у меня другая проблема - монитор ж/к, так что 60 гц вполне устраивает, мне бы 1280x1024 осилить
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог