Uvesafb: различия между версиями
Langator (обсуждение | вклад) |
Langator (обсуждение | вклад) |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
− | Uvesafb является новым framebuffer-драйвером для консоли, добавлен в ядро начиная с версии 2.6.24. | + | Uvesafb является новым framebuffer-драйвером для консоли, добавлен в ядро начиная с версии 2.6.24. Поддерживает больше функций, чем стандартный vesafb и является более предпочтительным в использовании (особенно касается систем с nvidia-видеокартами с проприетарным видеодрайвером). Требования к поддержке оборудования такие же, как и для vesafb. |
= Демон виртуализации = | = Демон виртуализации = | ||
Строка 5: | Строка 5: | ||
Особенностью этого драйвера является то, что для него требуется демон визуализации в userspace, называемый v86d. Возможно, кто-то подсчитает глупым решением то, что в x86-системе эмулируется x86-код, однако не стоит забывать о других платформах (в частности, не-x86 платформы), где может использоваться uvesafb. Пакет v86d включает в себя initcpio HOOK, называемый v86d, который по необходимости будет загружать модуль и запускать демон виртуализации. | Особенностью этого драйвера является то, что для него требуется демон визуализации в userspace, называемый v86d. Возможно, кто-то подсчитает глупым решением то, что в x86-системе эмулируется x86-код, однако не стоит забывать о других платформах (в частности, не-x86 платформы), где может использоваться uvesafb. Пакет v86d включает в себя initcpio HOOK, называемый v86d, который по необходимости будет загружать модуль и запускать демон виртуализации. | ||
− | Дальнейшие инструкции предназначены для ArchLinux | + | Дальнейшие инструкции предназначены для ArchLinux. |
== v86d == | == v86d == | ||
Строка 11: | Строка 11: | ||
Установите v86d с помощью pacman | Установите v86d с помощью pacman | ||
− | + | <source lang="bash">pacman -S v86d</source> | |
Следует обратить внимание на то, что v86d нуждается в перекомпилировании klibc. | Следует обратить внимание на то, что v86d нуждается в перекомпилировании klibc. | ||
− | = | + | = Настройка uvesafb = |
#Удалите любые параметры ядра, относящиеся к настройке фреймбуфера: vga=xxx принудительно загружает старый vesafb; video=xxx не используется uvesafb в случае, если последний скомпилирован как модуль (как в стандартном ядре Arch Linux). | #Удалите любые параметры ядра, относящиеся к настройке фреймбуфера: vga=xxx принудительно загружает старый vesafb; video=xxx не используется uvesafb в случае, если последний скомпилирован как модуль (как в стандартном ядре Arch Linux). | ||
− | |||
#Отключите KMS, иначе во время загрузке вы увидите черный экран. Если это произошло, перезагрузите машину с помощью комбинации ''Ctrl+Alt+Del''. Для карт Intel укажите в конфиг-файле Grub`a параметр <nowiki>i915.modeset=0</nowiki> | #Отключите KMS, иначе во время загрузке вы увидите черный экран. Если это произошло, перезагрузите машину с помощью комбинации ''Ctrl+Alt+Del''. Для карт Intel укажите в конфиг-файле Grub`a параметр <nowiki>i915.modeset=0</nowiki> | ||
Строка 24: | Строка 23: | ||
Все параметры модуля Вы сможете найти в /etc/modprobe.d/uvesafb.conf (или в общем конфиге /etc/modprobe.d/modprobe.conf). Исходный файл пакета v86d содержит информацию о синтаксисе конфиг-файла и ссылку на дополнительную информацию: | Все параметры модуля Вы сможете найти в /etc/modprobe.d/uvesafb.conf (или в общем конфиге /etc/modprobe.d/modprobe.conf). Исходный файл пакета v86d содержит информацию о синтаксисе конфиг-файла и ссылку на дополнительную информацию: | ||
− | + | <source lang="bash"> | |
− | # | + | # В этом файле задаются параметры uvesafb. |
− | # | + | # Используется следующий формат: |
− | #options uvesafb mode=<xres>x<yres>[-<bpp>][@<refresh>] scroll=<ywrap|ypan|redraw> | + | # options uvesafb mode=<xres>x<yres>[-<bpp>][@<refresh>] scroll=<ywrap|ypan|redraw> |
# | # | ||
#For more details see: | #For more details see: | ||
#http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt | #http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt | ||
− | + | ||
− | + | options uvesafb mode=1280x800-32 scroll=ywrap</source> | |
− | options uvesafb mode=1280x800-32 scroll=ywrap | + | |
− | + | C 2.6.27 и выше строчка options должна выглядеть так: | |
− | + | ||
− | + | <source lang="bash">options uvesafb mode_option=1280x800-32 scroll=ywrap</source> | |
− | |||
Для получения списков поддерживаемых режимов экрана наберите | Для получения списков поддерживаемых режимов экрана наберите | ||
− | + | <source lang="bash"> cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes</source> | |
== Настройка обработчиков (HOOKS) == | == Настройка обработчиков (HOOKS) == | ||
Строка 49: | Строка 47: | ||
HOOKS="base udev v86d ..."</source>}} | HOOKS="base udev v86d ..."</source>}} | ||
− | Если вы хотите перегенерировать | + | Если вы хотите перегенерировать initramfs образ, используйте команду: |
+ | |||
+ | <source lang="bash">mkinitcpio -p linux</source> | ||
+ | или | ||
+ | <source lang="bash">mkinitcpio -p kernel26</source> | ||
+ | |||
+ | =Возможные проблемы= | ||
+ | == Uvesafb cannot reserve memory == | ||
+ | Скорее всего Вы забыли удалить "vga=xxx", из-за чего происходит конфликт между uvesafb и vesafb | ||
+ | |||
+ | == pci_root PNP0A08:00 address space collision + Uvesafb cannot reserve memory == | ||
+ | Даже без другого фреймбуфера, uvesafb не может зарезервировать необходимую область памяти. | ||
+ | Вы можете исправить эту проблему, добавив следующие параметры ядра в конфигурацию вашего загрузчика. | ||
+ | <source lang="bash">pci=nocrs</source> | ||
− | |||
[[Категория:Руководства]] | [[Категория:Руководства]] | ||
[[Категория:Графика]] | [[Категория:Графика]] | ||
− | |||
− |
Текущая версия на 02:12, 16 марта 2012
Uvesafb является новым framebuffer-драйвером для консоли, добавлен в ядро начиная с версии 2.6.24. Поддерживает больше функций, чем стандартный vesafb и является более предпочтительным в использовании (особенно касается систем с nvidia-видеокартами с проприетарным видеодрайвером). Требования к поддержке оборудования такие же, как и для vesafb.
Демон виртуализации
Особенностью этого драйвера является то, что для него требуется демон визуализации в userspace, называемый v86d. Возможно, кто-то подсчитает глупым решением то, что в x86-системе эмулируется x86-код, однако не стоит забывать о других платформах (в частности, не-x86 платформы), где может использоваться uvesafb. Пакет v86d включает в себя initcpio HOOK, называемый v86d, который по необходимости будет загружать модуль и запускать демон виртуализации.
Дальнейшие инструкции предназначены для ArchLinux.
v86d
Установите v86d с помощью pacman
pacman -S v86d
Следует обратить внимание на то, что v86d нуждается в перекомпилировании klibc.
Настройка uvesafb
- Удалите любые параметры ядра, относящиеся к настройке фреймбуфера: vga=xxx принудительно загружает старый vesafb; video=xxx не используется uvesafb в случае, если последний скомпилирован как модуль (как в стандартном ядре Arch Linux).
- Отключите KMS, иначе во время загрузке вы увидите черный экран. Если это произошло, перезагрузите машину с помощью комбинации Ctrl+Alt+Del. Для карт Intel укажите в конфиг-файле Grub`a параметр i915.modeset=0
Параметры uvesafb
Все параметры модуля Вы сможете найти в /etc/modprobe.d/uvesafb.conf (или в общем конфиге /etc/modprobe.d/modprobe.conf). Исходный файл пакета v86d содержит информацию о синтаксисе конфиг-файла и ссылку на дополнительную информацию:
# В этом файле задаются параметры uvesafb.
# Используется следующий формат:
# options uvesafb mode=<xres>x<yres>[-<bpp>][@<refresh>] scroll=<ywrap|ypan|redraw>
#
#For more details see:
#http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt
options uvesafb mode=1280x800-32 scroll=ywrap
C 2.6.27 и выше строчка options должна выглядеть так:
options uvesafb mode_option=1280x800-32 scroll=ywrap
Для получения списков поддерживаемых режимов экрана наберите
cat /sys/bus/platform/drivers/uvesafb/uvesafb.0/vbe_modes
Настройка обработчиков (HOOKS)
Добавьте v86d в строку HOOKS содержащую обработчики используемые при создании initramfs образа. Строка имеет следующий формат:
HOOKS="base udev v86d ..."
Если вы хотите перегенерировать initramfs образ, используйте команду:
mkinitcpio -p linux
или
mkinitcpio -p kernel26
Возможные проблемы
Uvesafb cannot reserve memory
Скорее всего Вы забыли удалить "vga=xxx", из-за чего происходит конфликт между uvesafb и vesafb
pci_root PNP0A08:00 address space collision + Uvesafb cannot reserve memory
Даже без другого фреймбуфера, uvesafb не может зарезервировать необходимую область памяти. Вы можете исправить эту проблему, добавив следующие параметры ядра в конфигурацию вашего загрузчика.
pci=nocrs