Здесь описан процесс установки фонового изображения в консоли на примере версий ПО, последних на момент написания статьи. Упор делается на дистрибутив Ubuntu 8.04, но в других дистрибутивах установка должна быть аналогичной.
Инструментарий
Вам понадобятся:
- Исходные коды ядра Linux (www.kernel.org)
- Патч Spock’а
- Набор утилит splashutils, доступный в виде исходных кодов и пакетов
- Тестовая тема
-
Примечание
- Для установки splashutils из пакетов вам потребуется более новая версия пакета sysv-rc, найти его можно здесь.
- Утилиты splashutils конфликтуют с usplash и splashy, поэтому их надо удалить.
- Необходимо убрать модуль vesafb из «черного списка», для этого в файле /etc/modprobe.d/blacklist-framebuffer закомментируйте строку blacklist vesafb:
#blacklist vesafb
Наложение патчей и установка ядра
Распакуйте патчи и исходные коды ядра в папку /usr/src. Далее в терминале выполните:
cd /usr/src/linux-2.6.25 patch -p1 -i ../patch-2.6.25.7 patch -p1 -i ../fbcondecor-0.9.4-2.6.25-rc6.patch
Если Вы самостоятельно ещё ни разу не конфигурировали ядро, то можно скопировать настройки ядра по-умолчанию, в Ubuntu 8.04 для этого выполните:
cp /boot/config-2.6.24-16-generic .config
Теперь нужно отметить необходимые опции ядра, для запуска утилиты настройки в системе должны быть установленны пакеты build-essential и libncurses5-dev:
make menuconfig
Отмечаем следующую опцию:
Device Drivers > Graphics support > Support for framebuffer devices: [*] Vesa VGA Graphics Support
Остальные опции в этой секции меню необходимо убрать.
Теперь нужно отметить ещё одну опцию:
Device Drivers > Graphics support > Console display driver support: <*> Framebuffer Console support [*] Support for the Framebuffer Console Decorations
Выходим из утилиты настройки, не забывая ответить «Yes» на вопрос о сохранении настроек, выполняем:
make modules bzImage sudo rm -r /lib/modules/2.6.25.7 (если эта версия ядра устанавливается не впервые) sudo make modules_install sudo mkinitramfs -o initrd.img-2.6.25.7 2.6.25.7 sudo cp initrd.img-2.6.25.7 /boot/ sudo cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.25.7 (для архитектуры x86, замените на свою)
Установка тестовой темы
Сначала создайте резервную копию образа initrd.img:
sudo cp /boot/initrd.img-2.6.25.7 /boot/initrd.img-2.6.25.7.bak
Распакуйте тестовую тему в папку /etc/splash и выполните:
sudo splash_geninitramfs -a /boot/initrd.img-2.6.25.7 -r 1400x1050 emergence
Где 1400×1050 замените на разрешение Вашего монитора.
Настройка загрузчика Grub
В файле /boot/grub/menu.lst создайте раздел меню для нового ядра, например:
title Ubuntu 8.04, kernel 2.6.25.7 root (hd0,4) kernel /boot/vmlinuz-2.6.25.7 root=/dev/sda5 ro quiet splash=verbose,theme:emergence vga=0x348 initrd /boot/initrd.img-2.6.25.7 quiet
Где «root (hd0,4)» — раздел, на котором находится /boot (sda1 это hd0,0, sda2 — hd0,1, sdb1 — hd1,0 и т.д.); «root=/dev/sda5″ — корневой раздел; «splash=verbose,theme:emergence» — здесь параметр verbose показывает, что во время загрузки будут видны системные сообщения, чтобы их не видеть verbose замените на silent, theme — название темы, vga — разрешение монитора, по этой таблице:
| 640x480 800x600 1024x768 1280x1024 1400x1050 ----+------------------------------------------------ 256 | 0x301 0x303 0x305 0x307 32k | 0x310 0x313 0x316 0x319 64k | 0x311 0x314 0x317 0x31A 16M | 0x312 0x315 0x318 0x31B 0x348
Теперь можете перезагрузиться в новое ядро, на фоне консоли должен появиться логотип дистрибутива Gentoo.
Создание собственной темы
Здесь описывается процесс создания простейшей темы (просто картинка на фоне), более подробную информацию Вы можете прочитать в файле /usr/share/doc/splashutils/docs/theme_format.gz Создайте в /etc/splash каталог для Вашей темы, а в нём вложенную папку images с картинкой, которую хотите поставить в фон, например /etc/splash/ubuntu/images/ubuntu.jpg (разрешение картинки должно совпадать с разрешением монитора). Теперь в папке /etc/splash/ubuntu создайте файл, имя которого состоит из разрешения Вашего монитора и расширения .cfg (/etc/splash/ubuntu/1400×1050.cfg), со следующим содержанием:
pic=/etc/splash/ubuntu/images/ubuntu.jpg
Установка темы:
Восстановите образ initrd.img:
sudo cp /boot/initrd.img-2.6.25.7.bak /boot/initrd.img-2.6.25.7
Установка собственной темы аналогична установке тестовой:
sudo splash_geninitramfs -a /boot/initrd.img-2.6.25.7 -r 1400x1050 ubuntu
Не забудьте изменить параметр theme в /boot/grub/menu.lst
Установка фона на все консоли
В файл /etc/rc.local добавьте:
splash_manager -c set -t theme --tty=3 splash_manager -c set -t theme --tty=4 splash_manager -c set -t theme --tty=5 splash_manager -c set -t theme --tty=6
Где «theme» замените названием Вашей темы.
Примечание
Если у вас установлены драйвера на видео-карту, то перед выполнением вышеизложенных действий откройте файл /etc/X11/xorg.conf и измените параметр «Driver» на драйвер по-умолчанию для вашей карты («nv» для NVidia, «vesa» для Ati).
Чтобы установить драйвера на видео-карту NVidia в новом ядре удалите пакеты nvidia-glx-new или nvidia-glx-legacy. Затем скачайте драйвера с сайта NVidia, завершите сеанс и перейдите в консоль (ctrl+alt+F1). В консоли выполните (если у Вас KDE, то «gdm» замените на «kdm»):
sudo /etc/init.d/gdm stop sudo sh NVIDIA-Linux-x86-173.14.09-pkg1.run
И следуйте инструкциям, на вопрос должен ли инсталлятор сконфигурировать файл xorg.conf ответьте No. Далее:
sudo /etc/init.d/gdm start
Откройте файл /etc/X11/xorg.conf и замените параметр «Driver» на «nvidia».