这不是一个关于普通老式无聊定制的问题;我实际上想用源代码等创建一个程序......
我正在考虑编写自己的媒体中心界面,我认为如果我在加载操作系统时编写了自己的启动画面,它看起来会更好。
注意:媒体中心界面将在X中运行,但这个问题是关于在X服务器加载之前会发生什么。
简单地说,我想创建一个启动画面应用程序来隐藏linux内核启动消息。有没有一种方法可以像某种动画进度条那样编写一些动画?我假设我无法对任何2D / 3D图形进行编码(因为这需要X运行,对吗?),那么我将如何生成呢?
我更喜欢在C ++中这样做,但C也是一种选择。
注意:我不打算使用任何现有的“主题”或类似的东西,只是对编程方面感兴趣。
一些建议是使用标准图像(.bmp,.jpeg等),我对将图像加载到现有应用程序不感兴趣。但显然我可能想将图像加载到我将要制作的启动画面应用程序中。
我没有绑定Linux发行版,所以这可以用于任何事情,虽然Debian或基于Debian的发行版会很好。
我喜欢早期加载X服务器并从那里运行加载屏幕的建议,但是没有更直接的方法吗?当然你可以创建一个程序来隐藏启动消息并显示自定义程序?显然这将是非常低级别的编程,但这正是我正在寻找的......
另外,我不对改变引导加载程序(LILO,GRUB等)感兴趣。
到目前为止,很好的建议一直在查看诸如splashy和fbsplash等应用程序的源代码。谁能更好地提出这个建议?
答案 0 :(得分:3)
我会查看splashy源代码。但是你需要在C中编码。
如果您具备这些技能,则可以实施基于软件的3D引擎(就像过去一样)。一个简单的旋转立方体应该不是很难编码,并且有大量的教程。 缺点是你会增加启动时间,这在媒体中心不太令人愉快。
答案 1 :(得分:3)
对于图形输出,您可以使用Linux framebuffer,对于应用程序开发,您可以使用gtk,它支持直接渲染到帧缓冲区GtkFB。
对于视频等,您可以使用mplayer,它也支持渲染到帧缓冲区。
对于初始化,您必须查看所使用的系统,debian使用sysv init样式初始化http://www.debian-administration.org/articles/212,ubuntu使用upstart。
答案 2 :(得分:2)
这就是:有一个库/内核补丁fbsplash,它已被编写为完全你想要做的事情。它将显示一个图像来代替正常的启动消息,它还可以包含一个进度条。当你尝试做一些已经存在完善的开源实现的东西时,实际上没有更好的方法来学习如何自己做,而不是查看源代码。
即使你正在寻找更复杂的东西(比如你想要创建一些比进度条更高级的动画),你也许可以从fbsplash开始并根据你的需要进行修改。
答案 3 :(得分:1)
有几种方法可以做到这一点。您可以很早地加载X服务器,只需编写一个程序来显示启动画面。您也可以使用帧缓冲设备。如果您使用的是英特尔硬件,或者愿意使用OSS AMD驱动程序或Nouveau用于Nvidia,则可以使用内核模式设置。为此,我会看看Fedora的普利茅斯。你可以写一个Plymouth插件来显示你的启动画面。
答案 4 :(得分:0)
启动画面只是一个图像(.bmp,.jpg,等。),可以由启动加载程序加载。由于您尚未指定正在使用的发行版,因此请查看LILO,grub或任何合适的发行版。检查/boot
目录中是否有指导您搜索的线索。
答案 5 :(得分:0)
如果你想做的就是拥有一个漂亮的干净启动序列,你自己的启动并且绝对没有启动消息,你可以执行以下操作:
首先,沉默grub,启动消息和控制台游标:
GRUB_CMDLINE_LINUX_DEFAULT = quiet fastboot splash vt.cur_default=1 loglevel=0
GRUB_TIMEOUT = 0
这将非常快速而且默默地(淡出黑色)将您带到登录屏幕,在那里您可以放置一下。你的发行版可以简单地展示它自己的飞溅,如果你愿意,你可以改变它。
这是一个专业的干净启动序列,没有所有常见的Linux疣和皱纹。 (与OSX和Windows一样)。
我个人使用Ubunutu和LXDE,并且在3秒内即可在较旧的硬件上进行干净的启动启动。