| В начало → 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 |