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