Fedora20默认的开机动画是一个名为charge的不规则Fedora球,随着开机进度接近尾声,这个球也会显示灌满。其实还有很多更加炫酷的开机动画,自己也可以加入独特的logo。要实现它,需要安装一个名为Plymouth的软件。
Plymouth,既是英国的一座城市名字,也是一个汽车品牌。在Linux系统里面,它是一个为Fedora提供开机动画的项目:
**************************************************************
https://wiki.archlinux.org/index.php/plymouth
=============================================================
Plymouth is a project from Fedora providing a flicker-free graphical boot process. It relies on kernel mode setting (KMS) to set the native resolation of the display as early as possible, then provides an eye-candy splash screen leading all the way up to the login manager.
**************************************************************
Fedora20是默认安装有Plymouth的,省掉了安装步骤,不过它自带的theme并不多,可以通过下面这个命令下载:
yum install plymouth*
(貌似hot-dog这个theme是yum的时候就应用了,而且比较难删除,为此我至少重装了四次系统,所以还是不要yum所有的内容而是想安装的主题。)
(参考 http://brej.org/blog/?cat=16)
Plymouth调试步骤一:准备测试机器。
当然可以在自己的PC机上调试Plymouth,但是重复的关机启动还是有点让人厌烦,而且不能测试的时候不能上网浏览需要的信息,因此准备一台测试机器会方便很多。另外,貌似使用虚拟机或者X11插件也可以。我使用了另外一台安装有Fedora20的笔记本电脑。
Plymouth调试步骤二:进入runlevel 3。
首先确认系统中是否有KMS(Fedora20具备),然后打开target的sshd服务,7使用master的ssh连接它,获取root权限。(之所以使用ssh,是因为调试Plymouth的时候无法输入任何键盘指令。)
然后在ssh下,使用telinit命令将target的runlevel设置为3:
telinit 3
此时target就应该退出了图形界面,进入命令行了。
Plymouth调试步骤三:运行demo。
plymouthd
plymouth --show-splash
plymouth quit
它们的作用分别是,启动daemon、运行theme、退出。
要查看所有可用的theme,就使用命令:
plymouth-set-default-theme --list
要选择要运行的theme,就使用命令:
plymouth-set-default-theme xxx
(solar非常漂亮~~~)
**************************************************************
在应用theme时,出现关机有新动画,但是开机还是charge的情况。有论坛说使用命令:
update-alternatives --install /usr/share/plymouth/themes/default.plymouth \
default.plymouth /usr/share/plymouth/themes/solar/solar.plymouth 100
update-alternatives --config default.plymouth;
但是貌似即使执行了也没什么效果。为了观察plymouth的调试结果,可以将使用kernel command line生成日志文件。给内核传递参数有三种方法,第一通过内核build,第二是通过startup文件,第三是查看runtime的/proc或者/sys。
=============================================================
https://wiki.ubuntu.com/Kernel/KernelBootParameters
=============================================================
这篇是我见过写得最对口的~
修改startup时的kernel command line有两种方法:temporarily和permenently,后者主要是通过修改/etc/default/grub文件,在GRUB_CMDLINE_LINUX_DEFAULT那一行增加自己的内容既可。这里增加:
plymouth:debug=file:/var/log/plymouth-debug.log
再执行:
update-grub
但是实际上,Fedora20并没有这个上面这个命令,而是需要执行:
grub2-mkconfig -o /boot/grub2/grub.cfg
=============================================================
执行完这个命令之后,/var/log/plymouth-debug.log就会生成了,神奇的是,原来无法出现的开机动画现在居然出现了!
(补充:虽然在target机器上开机关机都可以了,但是在master机器上实验同样的步骤还是不行,so,先跳过,等调试完后面的步骤再回来看。。。)
**************************************************************
Plymouth调试步骤四:制作自己的theme。
在Plymouth下,plugin和theme是有区别的,theme会使用plugin并给它传递参数。theme一般存放在/usr/share/plymouth/themes目录下,要新建一个theme,可以先复制已存在的,然后重新命名它并把内容替换掉。"For more customisability you can write your own plugin in C which is, to be honest, not very easy."因为http://brej.org/blog/?cat=16这个帖子提供的theme制作方法比较复杂,所以这里参考了一个比较简单的帖子:
http://giridharangm.blogspot.com/2013/08/change-ubuntu-splash-screen-create-your.html
A.新建/usr/share/plymouth/theme/maria_theme目录;
B.制作一张想用来当作背景的图片,记住是PNG格式的,此时可以使用xdpyinfo来获取屏幕分辨率;
C.将图片拷贝进入maria_theme目录;
D.编辑maria_theme.plymouth文件:
[Plymouth Theme]
Name=maria_theme
Description=Theme Test by Marianna_z
ModuleName=script
[script]
ImageDir=/usr/share/plymouth/themes/maria_theme
ScriptFile=/usr/share/plymouth/themes/maria_theme/maria_theme.script
E.编辑maria_theme.script文件;
wallpaper_image=Image("green.png");
screen_width=Window.GetWidth();
screen_height=Window.GetHeight();
resized_wallpaper_image=wallpaper_image.Scale(screen_width,screen_height);
wallpaper_sprite=Sprite(resized_wallpaper_image);
wallpaper_sprite.setZ(-100);
F.安装theme;
安装theme使用的是update-alternatives命令:
update-alternatives --install /usr/share/plymouth/themes/default.plymouth \
default.plymouth /usr/share/plymouth/themes/maria_theme/maria_theme.plymouth 100
update-alternatives --config default.plymouth
G.调试theme;
除了前面提到的使用master的ssh调试之外,还有一种方法,分别在target的两个终端上执行:
plymouthd --debug --tty='tty' --no-daemon
plymouthd --show-splash
至此为止,就能够将开机动画和关机动画换成自己的green.png图片了,目前它还是静止的背景。
DiracFatCat 2014-10-30 17:57
用户377235 2014-10-30 11:51
shaoziyang 2014-7-23 09:42