fbsplash и gensplash - splashimage за Gentoo

Тук е обяснено как се инсталират и настройват програми под Linux.

Модератори: Freya, Kulu Ngile

fbsplash и gensplash - splashimage за Gentoo

Мнениеот nplus » Вто 07, Авг, 2007 10:43

Статията е специално за NetCutter, че ми омръзна да ми досажда :D Та затова реших да се направя на знаещ или поне да споделя опит. Ето какво трябва да постигнем накрая: Изображение

Понеже аз съм с nVidia нямам опит с ATi и затова ще напиша моите настройки. Освен това ще уточня, че използвам vesa, а не vesa-tng, защото при второто трябва да прекомпилирам кърнъла всеки път когато искам да сменя резолюцията на конзолата. gensplash е портнат и за Fedora, Debian и Arch, така че може да се ползва и там.

Инсталиране на теми и помощни програми

Първо нека да сложим splashutils (включва някои полезни програми като, например, за трансформиране на bootsplash към gensplash), както и някои стандартни теми, тъй като ще обясня по-нататък как да си правите ваши:

Код за потвърждение: Избери целия код
emerge splashutils splash-themes-gentoo splash-themes-livecd bootsplash-themes


За да можете да използвате стандартните теми трябва да сложите глобални use флагове "png truetype". Ако ги нямате все още направете
Код за потвърждение: Избери целия код
emerge -vuDN world


Конфигуриране на kernel

Още особености - използвам genkernel и gentoo-sources, така че при други варианти не отговарям. :)

Код за потвърждение: Избери целия код
genkernel --menuconfig kernel


Компилираме само kernel-а, initrd го оставяме за после. Пълните настройки са копирани от gentoo-wiki, но те влизат в употреба само ако ползвате нещо различно от gentoo-sources.

Код за потвърждение: Избери целия код
 General Setup >
   [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
 Device Drivers >
    Block devices:
       <*> RAM disk support
         (4096) Default RAM disk size (kbytes)
    Input Device Support
       <Event>
       <*> Support for frame buffer devices
       [ ]   Enable Tile Blitting Support
       <VESA>
                  (X) vesafb
                  ( ) vesa-tng
       < > nVidia Framebuffer Support
       < > nVidia Riva support
       <Matrox>
          --- Video mode selection support
          <*> Framebuffer Console support
       [*] Support for the framebuffer splash


И тук лек коментар - единствената разлика при gentoo-sources e Default RAM disk size. Ако искате - експериментирайте, аз предпочитам да спазвам howto-то когато става въпрос за Gentoo.

Добавяне на тема

За да може да имате splashimage още от началото на boot ще трябва да добавите темата в initrd. Това става по следния начин:

Код за потвърждение: Избери целия код
genkernel --gensplash=theme initrd


Трябва да заместите theme с името на избраната от вас тема. За да разгледате темата директно в конзола можете да използвате
Код за потвърждение: Избери целия код
splash_manager --theme=gentooplus --cmd=set --tty=1

splash_manager е част от splashutils. Заменете gentooplus с исканата тема (звучи като ръководство за готварка печка, нали? :D ). Темата ще бъде показана на TTY 1. Това обаче може да се ползва едва когато буутнете новият kernel. Ако още не сте - преминете към следващата част.

Как да настроим Grub

Ръководейки се от тази таблица
Код за потвърждение: Избери целия код
       640x480    800x600    1024x768    1280x1024    1152x864    1600x1200
8 bit     769      771         773         775         353         800
15 bit    784      787         790         793         354         801
16 bit    785      788         791         794         355         802
24 bit    786      789         792         795                     803


избираме резолюцията, която искаме да ползваме.
ВАЖНО: темата трябва да бъде същата резолюция като избраната. Ето защо, ако ползвахме vesa-tng трябваше да прекомпилираме kernel-a при евентуална смяна на темата.
Изборът на резолюция става като добавим vga=792 (или каквото сте избрали) при опциите на кърнъла. Опциите, които аз ползвам са следните:
Код за потвърждение: Избери целия код
vga=792 splash=verbose,theme:gentooplus fbcon=scrollback:128K quiet CONSOLE=/dev/tty1

Сега ще обясня кое какво е. splash може да приема две стойности - verbose и silent, предполагам всички знаят какво означават, но все пак - silent скрива boot процеса, докато verbose го показва (най-общо казано). Аз съм фен на verbose. theme трябва да има същата стойност като името на темата, с която сте компилирали initrd. Другите неща просто препишете.

Стартиране на splashscreen на всички конзоли

Просто добавете splash към runlevel default:
Код за потвърждение: Избери целия код
rc-update add splash default
Аватар
nplus
Участник
 
Мнения: 74
Регистриран на: Пон 06, Авг, 2007 20:44
Местоположение: Габрово

Мнениеот Kulu Ngile » Вто 07, Авг, 2007 10:49

*worship* *friends* *thumbs*
Ако съдбата е срещу теб, толкова по-зле за нея.

Изображение
APT HOWTO
Kulu Ngile
Унуфри
 
Мнения: 1233
Регистриран на: Съб 04, Мар, 2006 1:04
Местоположение: София

Мнениеот NetCutter » Вто 07, Авг, 2007 11:31

Браво браво...
Ама чак...досаждал съм му...той ме навива за тоя сплаш ся, аз опирам пешкира :D
:D :D :D
Аватар
NetCutter
Участник
 
Мнения: 199
Регистриран на: Вто 27, Фев, 2007 20:00
Местоположение: In Your Hard Drive!!!

Мнениеот nplus » Вто 07, Авг, 2007 14:34

Втора част - как да си направим собствена тема за gensplash.

Намиране на подходящи картинки

Първото място, на което трябва да търсите е kde-look.org, понеже там има цяла категория Bootsplash. Все пак може да нарисувате и ваши, ако ви се занимава. И така - имате картинките. Но те не са предназначени за gensplash. Какво правим тогава - написваме сами конфигурационният файл! Чудех се, дали да използвам темата, която правих снощи - gentooplus - тя е на шота в началото. Но нещо ми се иска да направя всичко сиво. Затова си намерих друга тема - Gentoo grey. Тя е готова за употреба и няма да пиша собствен конфигурационен файл, но пък все пак остава възможността да обясня какво съдържа готовият.

Конфигурация

Код за потвърждение: Избери целия код
bgcolor=0

pic=images/verbose-1024x768.png
silentpic=images/background-1024x768.png

tx=10
ty=98
tw=1004
th=622

text_x=16
text_y=738
text_size=14
text_color=0x666666
text_font=space_age.ttf

box silent noover 416 528 608 540 #6f6f6f55
box silent inter  417 529 425 541 #ffffff #ffffff #ffffff77 #ffffff77
box silent        417 529 607 541 #ffffff #ffffff #ffffff77 #ffffff77


Нека да разглеждаме файла по редове.

bgcolor=0
Основният фонов цвят. Тъй като използваме картинка това не ни интересува, но трябва да го има (или пък може и без него - трябва да се пробва :| )

pic=images/verbose-1024x768.png и silentpic=images/background-1024x768.png
Това са картинките за verbose и silent релативно на конфигурационния файл. Тези променливи имат алтернатива - pic240, ако по някаква случайност искате да ползвате картинка с 240 цвята.

tx=10
ty=98
tw=1004
th=622


Това са променливите, отнасящи се до verbose. tx и ty задават горния ляв пиксел на полето за текст. tw е ширината на полето, а th - височината. Подобно е на crop функцията в gimp.

text_x=16
text_y=738
text_size=14
text_color=0x666666
text_font=space_age.ttf


Фен съм на verbose и нямам много опит със silent, но мисля, че и това мога да опиша. text_x и text_y са координатите на горната лява точка на "main system message". Това съобщение (MSM) най-често е "Press F2 for verbose mode." - няма как да не се сетите за какво говоря. text_size е размерът на шрифта. text_color е (естествено) цветът му, а tex_font е самият шрифт. Ето защо е важно да имаме truetype като глобален USE флаг.

box silent noover 416 528 608 540 #6f6f6f55
Това е рамката на pregress bar-а. Как да го разчетем
box - Начертай правоъгълник;
silent - само в режим silent;
noover - който не е върху друга графика.
416 528 - координатите на горната лява точка
608 540 - координатите на долната дясна точка
#6f6f6f55 - използване на цвят #6f6f6f с 55% непрозрачност; Това винаги ми е било странно - защо навсякъде се използва непрозрачност, а не прозрачност? Е, ще оставим въпросът какво пият разработчиците нерешен, за да продължим нататък.

box silent inter 417 529 425 541 #ffffff #ffffff #ffffff77 #ffffff77
box silent 417 529 607 541 #ffffff #ffffff #ffffff77 #ffffff77


Тук е почти същото, с изключение на някои опции.
inter - показва, че този правоъгълник зависи от следващия. Всъщност първият е стъпката, а следващият показва размера на пълен progress bar. Повечето цветове дефинират преливане. #ffffff #ffffff #ffffff77 #ffffff77 означава "запълни правоъгълника с преливка, чиито горен ляв пиксел е с цвят #ffffff, горният десен - с #ffffff, долният ляв - с #ffffff със 77% непрозрачност, а долният десен - с #ffffff със 77% непрозрачност". Мисля, че трябва да сте ме разбрали. (забележка: 77 е в 16-ична бройна система)

Някои възможности, които не са включени в тази тема

Едно много приятно нещо е icon - показва png изображение според дадени свойства. Ето пример:
icon <path> <x> <y> [crop from to]
path e пътят до иконата (релативно на конфигурационния файл)
x и y са координатите на горният ляв пиксел на иконата (къде да бъде изобразена)
crop показва дали искате иконката да бъде "изядена" в началото, т.е. да се изобразява постепенно. Използва се така: crop <0> <0>

init скриптове

Тук все още не съм разучил как точно стоят нещата, защото не знам bash. Все пак ще се опитам по-нататък да напиша нещо и за тях. Най-общо казано, това са bash скриптове, които изобразяват различните икони по различно време (например при успешно стартиране на net.eth0). Така например се получава нещо като verbose върху silent... :roll: Ще видим дали ще се оправя с тях.

Запазване на конфигурационния файл

Името трябва да бъде "резолюция.cfg" (без кавичките).

Част 2.1 - тестове

Може да тествате готовата си тема с:
Код за потвърждение: Избери целия код
splash_manager -c demo -t име_на_темата -m режим

Режимът може да бъде v или s. Изпълнявайте в tty1. Може да разгледате и
Код за потвърждение: Избери целия код
splash_manager --help
Аватар
nplus
Участник
 
Мнения: 74
Регистриран на: Пон 06, Авг, 2007 20:44
Местоположение: Габрово

Мнениеот Progress » Сря 07, Ное, 2007 20:28

При мен не проработи статията. :( Ся пробвам микс от gentoo-wiki и тази. Ще споделя резултата ако стане. Ако не значи просто не мога да буутна. :D

/Edit
При мен и с пачване на ядрото не стана. Пожелавам късмет на ентусиастите искащи буутсплаш. Явно това нещо си подбира къде да върви къде не. Досега съм пробвал всичко на Debian, Slackware сега и на Gentoo. Просто не ме харесва животинката. :D
Progress your mind
Аватар
Progress
Участник
 
Мнения: 562
Регистриран на: Сря 24, Яну, 2007 20:12

Мнениеот Progress » Пет 06, Юни, 2008 14:18

Най-накрая успях да подкарам буутсплаш. Учудващо не бави процеса на стартиране вобще. :)

Искам да добавя някои неща на тези които ше се пробват по тази статия. Нищо лично към nplus, но по този метод с директно пачване на ядрото със съответния сплаш не става.

Първо и мн важно..ote:
Make sure your kernel sources include fbcondecor patchset. gentoo-sources includes it by default.

Това ше рече да направим това:
http://dev.gentoo.org/~spock/projects/uvesafb/

след това нещо се прекомпилират klibc.

Второ. Метода на nplus вкарва имейджа директно в ядрото, което е меко казано неприятно според мен. Във wiki това е алтернативен метод. Предпочитания е:

Loading initramfs at boot (recommended)

In this option, you create the initramfs image as a stand-alone file, also known as the initrd file. Because of this, you will not have to recompile the kernel everytime you want to change the image.

So the only thing you have to do here is use splash_geninitramfs to generate an initrd file (that contains the pictures, configs and the userspace helper)


Тези картинки с menuconfig конфигурацията които са пропуснати в статията са причина на хора които НЕ ползват командата genkernell all никога да не подпали сплаша. т.е. изключително важни са, а не

Пълните настройки са копирани от gentoo-wiki, но те влизат в употреба само ако ползвате нещо различно от gentoo-sources.


По късно ше опиша метода по който инсталирах gensplash.
Progress your mind
Аватар
Progress
Участник
 
Мнения: 562
Регистриран на: Сря 24, Яну, 2007 20:12

Мнениеот nplus » Пет 06, Юни, 2008 20:39

В initrd е, не е "директно в ядрото"? Пък и е нормално вече да не работи, от миналото лято е :D
Аватар
nplus
Участник
 
Мнения: 74
Регистриран на: Пон 06, Авг, 2007 20:44
Местоположение: Габрово


Назад към Инсталиране и работа с приложения

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 1 госта

cron