Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #46, СЕНТЯБРЬ 2004 г.

Тюнинг в стиле X. Часть 2

Alexander S. Salieff

Спецвыпуск Xakep, номер #046, стр. 046-018-6


Device Drivers --> Graphics support --> Bootsplash configuration --> Bootup splash screen

Ну и сам framebuffer, естественно, тоже неплохо бы включить и настроить ;). Наконец можно собрать ядро и перейти к следующему пункту - установке темы.

Тема - это две картинки (для типов загрузки "verbose" и "silent") и конфигурационный файл, описывающий, как ими пользоваться. Различные темы в изобилии водятся на http://www.bootsplash.de/files/themes/. Создай каталог /etc/bootsplash/themes и распакуй туда тарболл с выбранной темой. Чтобы не пришлось ковыряться в конфигах некоторых тем, сразу возьми за правило создавать симлинк с именем "current"на текущую тему:

ln -s /etc/bootsplash/themes/KillBillTux-Grey /etc/bootsplash/themes/current

Из темы (с помощью утилиты splash) создается образ для InitRD:

/sbin/splash -s -f /etc/bootsplash/themes/current/config/bootsplash-1024x768.cfg > > /boot/initrd.splash

В один InitRD-образ можно встраивать несколько тем с различными разрешениями, тогда при загрузке будет выбираться соответствующая. Осталось прикрутить новое ядро к загрузчику, включить в нем framebuffer, установить аргумент "splash" в значение "silent" или "verbose" (в зависимости от желаемого поведения при загрузке), а в качестве образа Initial RAM-Disk установить созданный нами initrd.splash. Я использую LILO, и выглядит у меня это приблизительно так:

image=/boot/vmlinuz-2.4.20-31.9custom

label=LINUX

initrd=/boot/initrd.splash

vga=1303

read-only

append="root=/dev/hda3 splash=silent"

После перезагрузки с новым ядром ты увидишь преобразившуюся консоль.

Если ты выбрал тип загрузки "silent", то на экране будет отображаться прогрессбар. Но сам он, к сожалению, не двигается, и ему нужно давать указания. Управляется полоска прогресса (и не только она) через файл /proc/splash, непосредственно прогрессбар двигается занесением в этот файл команды "show X", где X - 16-битное значение, то есть варьируется в диапазоне 0-65534. Соответственно нужно расставить в различных rc-скриптах команды вроде echo "show 600" > /proc/splash, echo "show 1200" > /proc/splash и т.д. Тогда полоска прогресса будет двигаться по мере прохождения загрузочных скриптов.

В RedHat-подобных дистрибутивах иногда возникают проблемы с выставлением должных прав звуковым девайсам. Это связано с тем, что при очередном логине система сама перебивает их права и владельца. Прописывается это поведение в /etc/security/console.perms. Найди там строку вида "<console> 0600 <sound> 0600 root" и перебей права на 0666 в обеих позициях. Если в группе <sound> недостает некоторых девайсов или имеются лишние, исправь это. Все, теперь все и всегда будут иметь доступ к звуковым девайсам.

Аналогичную операцию иногда требуется провести над группами <video> , <fb> и всеми другими, на которые неверно проставляются права.

Если ты обратил внимание, при включении framebuffer во время загрузки ядра в верхнем левом углу появляется маленький пингвинчик (или что-то другое в зависимости от дистрибутива). Описывается этот пингвинчик в конкретном заголовочном файле /usr/src/linux/include/linux/linux_logo.h, и ничего не мешает заменить его на произвольное изображение. Конечно, делать это руками - нереальная задача, поэтому существует специальный плагин для GIMP по имени LinuxLogo (glogo), взять его можно здесь: http://registry.gimp.org/plugin?id=376. После этого тебе потребуется нарисовать три картинки размером 80x80 (одну в 2 цвета, вторую в 16 и третью в 224 или меньше), скормить эти картинки нашему плагину, после чего тот сможет создать свой альтернативный linux_logo.h. Осталось лишь заменить им исходный, пересобрать ядро, и ты увидишь свой логотип во время загрузки.

Назад на стр. 046-018-5  Содержание  Вперед на стр. 046-018-7