В начало → HOWTO fbsplash → Создание образа initramfs |
Приведенных выше инструкций (а также второй части следующего howto, Configuring your bootloader) достаточно, чтобы получить splash screen после того как ядро будет загруженно. Однако если вы хотите чтобы сексапильная девка с пингвином на маечке появлялась раньше (сразу после инициализации - vesafb-tng), вам понадобится initramfs.
(Цитата Spock'а): ["Initramfs (initial ramfs) это кусок кода который распаковывает сжатый cpio образ во время загрузки ядра."]
Чтобы использовать initramfs его надо сначала создать.Образ initramfs должен содержать:
картинки,которые будут использоваться как фон;
необходимы файлы конфигурации;
утилиту помощника (splash_helper).
Изображения и конфигурационные файлы вместе образуют тему gensplash.
Существует два пути для использования initramfs image:
компиляция initramfs image непосредственно в ядро;
загрузка initramfs image динамически во время загрузки системы (с использованием 'initial ram disk' - initrd).
Вы можете сами выбирать вариант, который вам по душе.
Сначала удалите старый образ initramfs:
#
rm /usr/src/linux/usr/initramfs_data.cpio.gz
Теперь создайте новый образ initramfs, содержащий изображения, конфгурационные файлы и userspace helper. Проще всего будет сделать это при помощи splash_geninitramfs (идущим в составе splashutils). Его использование похоже на утилиту 'splash' из пакета bootsplash.
#
splash_geninitramfs -v -g /usr/src/linux/usr/initramfs_data.cpio.gz -r 1024x768 emergence
При компиляции образа initramfs непосредственно в ядро, вам придется пересобрать ядро (этого недостатка лишен способ с использованием initrd):
#
cd /usr/src/linux
#
touch usr/initramfs_data.cpio.gz
#
make bzImage
#
mount /boot
#
make install
Этот вариант практически идентичен сборке образа initramfs вместе с ядром. Различие заключается в том, что вместо создания
образа внутри ядра (и последующей сборке его коммандой 'make' и копированием в точку монтирования /boot
при помощи 'make install'), вы создадите образ initramfs как отдельный (initrd) файл и вам не придется пересобирать ядро. Однако, придется добавить
строчку в конфигурационный файл загрузчика (по которой он найдет initrd файл). Этим мы и займемся в этой части howto
Сначала при помощи splash_geninitramfs создадим initrd файл (который содержит изображения, конфиги и userspace helper):
#
mount /boot
#
cd /etc/splash
#
splash_geninitramfs -v -g /boot/fbsplash-emergence-1024x768 -r 1024x768 emergence
Как видно файл будет создан в точке монтирования(или каталоге) /boot
.
К сожалению, по словам Spock'а,"вы не сможете дописать новую initramfs информацию к initrd образу". Это означает, что данной возможностью не смогут воспользоваться пользователи genkernel ядер, т. к. genkernel создает собственный образ initrd для процесса загурзки.
solshark [solshark_at_rambler_dot_ru]: genkernel 3.3.6 позволяет сделать так:
#
genkernel --gensplash=DangerGirl initrd
Так что теперь и для пользователей genkernel есть возможность воспользоваться данной фишкой.
Если вы не меняете ядро, то просто поменяйте строку описания initrd в grub.conf с:
root=/dev/ram0 real_root=/dev/$ROOT initrd (hd0,0)/boot/initrd
на:
root=/dev/$ROOT initrd (hd0,0)/boot/fbsplash-emergence-1024x768
Стандартная тема 'emergence' и её конфигурационные файлы находятся в /etc/splash/emergence.
Если хотите создать новую (например с названием 'newtheme'), вам следует:
1. создать для неё каталог в /etc/splash
:
#
mkdir /etc/splash/newtheme
2. создать каталог 'images' в /etc/splash/newtheme:
#
mkdir /etc/splash/newtheme/images
и скоприовать туда картинки (в форматах png/jpg) которые будут использованы в теме.
3. создать необходимые конфигурационные файлы. Они должны иметь расширение *.cfg
и находиться в каталоге темы (/etc/splash/newtheme
). Образцы конфигруационных файлов можно посмотреть в теме ('emergence'):
#
ls -l /etc/splash/emergence/
images/ 1024x768.cfg 1280x1024.cfg 800x600.cfg
Очень важно убедиться в том в опциях 'jpeg=
' и 'silentjpeg=
' (в *.cfg
файлах) прописаны корректные ссылки на файлы с изображениями (в каталоге /etc/splash/newtheme/images
). Если вы не используете jpeg для создания темы, замените опции на 'pic=
' и 'silentpic=
'.
Для более близкого знакомства с форматом тем fbsplash, изучите документацию пакета splashutils:
#
less /usr/doc/splashutils-version/theme_format.gz
Так же Spock сделал удобную утилиту bootsplash2fbsplash (этот скрипт идет в комплекте со splashutils) ,который сделает легким преобразование тем bootsplash формат gensplash.
Например если у вас есть тема 'gentoo-highquality' ,расположенная в /etc/bootsplash ,вам нужно только скомандовать(от рута):
#
bootsplash2fbsplash gentoo-highquality
и утилита сделает gensplash-совместимую тему в каталоге /etc/splash (/etc/splash/gentoo-highquality) со всеми необходимыми файлами.
Для создания нового образа из темы которую вы только что сделали(пусть ее имя 'newtheme',а разрешение 1280x1024), вам необходимо использовать splash_geninitramfs.
Если вы решили вкомпилировать образ в ядро(первый вариант):
#
splash_geninitramfs -v -g /usr/src/linux/usr/initramfs_data.cpio.gz -r 1280x1024 newtheme
#
cd /usr/src/linux
#
touch usr/initramfs_data.cpio.gz
#
make bzImage
#
mount /boot
#
make install
Если вы используете initrd (второй вариант):
#
mount /boot
#
splash_geninitramfs -v -g /boot/fbsplash-newtheme-1280x1024 -r 1280x1024 newtheme
Вот что означают опции splash_geninitramfs:
-v
splash_geninitramfs выводит дополнительную информацию
-g
указывает splash_geninitramfs создать образ initramfs (/usr/src/linux/usr/initramfs_data.cpio.gz
или /boot/fbsplash-newtheme-1280x1024
)
-r
говорит splash_geninitramfs использовать разрешение 1280x1024
newtheme
указывает splash_geninitramfs искать .cfg файлы в каталоге /etc/splash/newtheme
Для просмотра описания всех опций splash_geninitramfs' введите:
#
splash_geninitramfs --help
Последний пункт в этой части how-to,полезный совет из документации splashutils':
[Если вы хотите сохранить немного памяти и не планируете использовать все доступные разрешения вы можете скопировать .cfg файлы и фоновые картинки только для того разрешения,которое вы используете.]
А теперь пришло время настроить ваш загрузчик.
В начало → HOWTO fbsplash → Создание образа initramfs |