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