Uvesafb
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.
Подготовка к установке
- Удалите любые параметры ядра, относящиеся к настройке фреймбуфера: 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 содержит информацию о синтаксисе конфиг-файла и ссылку на дополнительную информацию:
#This file sets the parameters for uvesafb module. #The following format should be used: #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 ..."
Если вы хотите перегенерировать образы, используйте команду:
mkinitcpio -p linux