xref: /freebsd/share/man/man4/splash.4 (revision 0b3105a37d7adcadcb720112fed4dc4e8040be99)
1.\"
2.\" Copyright (c) 1999
3.\" Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
4.\" All rights reserved.
5.\"
6.\" Redistribution and use in source and binary forms, with or without
7.\" modification, are permitted provided that the following conditions
8.\" are met:
9.\" 1. Redistributions of source code must retain the above copyright
10.\"    notice, this list of conditions and the following disclaimer as
11.\"    the first lines of this file unmodified.
12.\" 2. Redistributions in binary form must reproduce the above copyright
13.\"    notice, this list of conditions and the following disclaimer in the
14.\"    documentation and/or other materials provided with the distribution.
15.\"
16.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26.\"
27.\" $FreeBSD$
28.\"
29.Dd December 31, 2015
30.Dt SPLASH 4
31.Os
32.Sh NAME
33.Nm splash
34.Nd splash screen / screen saver interface
35.Sh SYNOPSIS
36.Cd "device splash"
37.Sh DESCRIPTION
38The
39.Nm
40pseudo device driver adds support for the splash screen and screen
41savers to the kernel.
42This driver is required if the splash bitmap image is to be loaded or
43any screen saver is to be used.
44.Ss Splash screen
45You can load and display an arbitrary bitmap image file as a welcome banner
46on the screen when the system is about to start.
47This image will remain on the screen
48during kernel initialization process
49until the login prompt appears on the screen
50or until a screen saver is loaded and initialized.
51The image will also disappear if you hit any key,
52although this may not work immediately
53if the kernel is still probing devices.
54.Pp
55If you specify the
56.Fl c
57or
58.Fl v
59boot option when loading the kernel, the splash image will not appear.
60However, it
61is still loaded and can be used as a screen saver later: see below.
62.Pp
63In order to display the bitmap, the bitmap file itself and the
64matching splash image decoder module must be loaded by the boot loader.
65Currently the following decoder modules are available:
66.Pp
67.Bl -tag -width splash_decoder -compact
68.It Pa splash_bmp.ko
69Windows BMP file decoder.
70While the BMP file format allows images of various color depths, this
71decoder currently only handles 256 color bitmaps.
72Bitmaps of other color depths will not be displayed.
73.It Pa splash_pcx.ko
74ZSoft PCX decoder.
75This decoder currently only supports version 5 8-bpp single-plane
76images.
77.It Pa splash_txt.ko
78TheDraw binary ASCII drawing file decoder.
79Displays a text-mode 80x25 ASCII drawing, such as that produced by
80the Binary save format in TheDraw.
81This format consists of a sequence
82of two byte pairs representing the 80x25 display, where the first byte
83is the ASCII character to draw and the second byte indicates the
84colors/attributes to use when drawing the character.
85.El
86.Pp
87The
88.Sx EXAMPLES
89section illustrates how to set up the splash screen.
90.Pp
91If the standard VGA video mode is used,
92the size of the bitmap must be 320x200 or less.
93If you enable the VESA mode support in the kernel,
94either by statically linking the VESA module or by loading the VESA module
95(see
96.Xr vga 4 ) ,
97you can load bitmaps up to a resolution of 1024x768, depending on the VESA
98BIOS and the amount of video memory on the video card.
99.Ss Screen saver
100The screen saver will activate when the system is considered idle: i.e.\&
101when the user has not typed a key or moved the mouse for a specified period
102of time.
103As the screen saver is an optional module,
104it must be explicitly loaded into memory.
105Currently the following screen saver modules are available:
106.Pp
107.Bl -tag -width splash_module.ko -compact
108.It Pa blank_saver.ko
109This screen saver simply blanks the screen.
110.It Pa beastie_saver.ko
111Animated graphical
112.Bx
113Daemon.
114.It Pa daemon_saver.ko
115Animated
116.Bx
117Daemon screen saver.
118.It Pa dragon_saver.ko
119Draws a random dragon curve.
120.It Pa fade_saver.ko
121The screen will gradually fade away.
122.It Pa fire_saver.ko
123A fire which becomes higher as load increases.
124.It Pa green_saver.ko
125The screen will be blanked, similar to
126.Pa blank_saver.ko .
127If the monitor and the video card's BIOS support it
128the screen will also be powered off.
129.It Pa logo_saver.ko
130Animated graphical
131.Fx
132logo.
133.It Pa plasma_saver.ko
134Draws an animated interference pattern.
135.It Pa rain_saver.ko
136Draws a shower on the screen.
137.It Pa snake_saver.ko
138Draws a snake of string.
139.It Pa star_saver.ko
140Twinkling stars.
141.It Pa warp_saver.ko
142Streaking stars.
143.El
144.Pp
145Screen saver modules can be loaded using
146.Xr kldload 8 :
147.Pp
148.Dl kldload logo_saver
149.Pp
150The timeout value in seconds can be specified as follows:
151.Pp
152.Dl vidcontrol -t N
153.Pp
154Alternatively, you can set the
155.Ar saver
156variable in the
157.Pa /etc/rc.conf
158to the screen saver of your choice and
159the timeout value to the
160.Ar blanktime
161variable so that the screen saver is automatically loaded
162and the timeout value is set when the system starts.
163.Pp
164The screen saver may be instantly activated by hitting the
165.Ar saver
166key: the defaults are
167.Em Shift-Pause
168on the AT enhanced keyboard and
169.Em Shift-Ctrl-NumLock/Pause
170on the AT 84 keyboard.
171You can change the
172.Ar saver
173key by modifying the keymap
174(see
175.Xr kbdcontrol 1 ,
176.Xr keymap 5 ) ,
177and assign the
178.Ar saver
179function to a key of your preference.
180.Pp
181The screen saver will not run if the screen is not in text mode.
182.Ss Splash screen as a screen saver
183If you load a splash image but do not load a screen saver,
184you can continue using the splash module as a screen saver.
185The screen blanking interval can be specified as described in the
186.Sx Screen saver
187section above.
188.\".Sh DRIVER CONFIGURATION
189.Sh FILES
190.Bl -tag -width /boot/kernel/splash_xxxx.ko -compact
191.It Pa /boot/defaults/loader.conf
192boot loader configuration defaults
193.It Pa /etc/rc.conf
194system configuration information
195.It Pa /boot/kernel/splash_*.ko
196splash image decoder modules
197.It Pa /boot/kernel/*_saver.ko
198screen saver modules
199.It Pa /boot/kernel/vesa.ko
200the VESA support module
201.El
202.Sh EXAMPLES
203In order to load the splash screen or the screen saver, you must
204have the following line in the kernel configuration file.
205.Pp
206.Dl device splash
207.Pp
208Next, edit
209.Pa /boot/loader.conf
210(see
211.Xr loader.conf 5 )
212and include the following lines:
213.Bd -literal -offset indent
214splash_bmp_load="YES"
215bitmap_load="YES"
216bitmap_name="/boot/chuck.bmp"
217.Ed
218.Pp
219In the above example, the file
220.Pa /boot/chuck.bmp
221is loaded.
222In the following example, the VESA module
223is loaded so that a bitmap file which cannot be displayed in standard
224VGA modes may be shown using one of the VESA video modes.
225.Bd -literal -offset indent
226splash_pcx_load="YES"
227vesa_load="YES"
228bitmap_load="YES"
229bitmap_name="/boot/chuck.pcx"
230.Ed
231.Pp
232If the VESA support is statically linked to the kernel, it is not
233necessary to load the VESA module.
234Just load the bitmap file and the splash decoder module as in the
235first example above.
236.Pp
237To load a binary ASCII drawing and display this while booting, include the
238following into your
239.Pa /boot/loader.conf :
240.Bd -literal -offset indent
241splash_txt_load="YES"
242bitmap_load="YES"
243bitmap_name="/boot/splash.bin"
244.Ed
245.\".Sh DIAGNOSTICS
246.Sh SEE ALSO
247.Xr vidcontrol 1 ,
248.Xr syscons 4 ,
249.Xr vga 4 ,
250.Xr loader.conf 5 ,
251.Xr rc.conf 5 ,
252.Xr kldload 8 ,
253.Xr kldunload 8
254.Sh HISTORY
255The
256.Nm
257driver first appeared in
258.Fx 3.1 .
259.Sh AUTHORS
260.An -nosplit
261The
262.Nm
263driver and this manual page were written by
264.An Kazutaka Yokota Aq Mt yokota@FreeBSD.org .
265The
266.Pa splash_bmp
267module was written by
268.An Michael Smith Aq Mt msmith@FreeBSD.org
269and
270.An Kazutaka Yokota .
271The
272.Pa splash_pcx
273module was written by
274.An Dag-Erling Sm\(/orgrav Aq Mt des@FreeBSD.org
275based on the
276.Pa splash_bmp
277code.
278The
279.Pa splash_txt
280module was written by
281.An Antony Mawer Aq Mt antony@mawer.org
282based on the
283.Pa splash_bmp
284code, with some additional inspiration from the
285.Pa daemon_saver
286code.
287The
288.Pa logo_saver ,
289.Pa plasma_saver ,
290.Pa rain_saver
291and
292.Pa warp_saver
293modules were written by
294.An Dag-Erling Sm\(/orgrav Aq Mt des@FreeBSD.org .
295.Sh CAVEATS
296Both the splash screen and the screen saver work with
297.Xr syscons 4
298only.
299.Sh BUGS
300If you load a screen saver while another screen saver has already
301been loaded, the first screen saver will not be automatically unloaded
302and will remain in memory, wasting kernel memory space.
303