Rework check for speakup
[grml-autoconfig.git] / grml-autoconfig
1 #!/bin/zsh
2 # Filename:      /etc/init.d/grml-autoconfig
3 # Purpose:       basic system configuration and hardware setup for grml system
4 # Authors:       grml-team (grml.org), (c) Michael Prokop <mika@grml.org>
5 # Bug-Reports:   see http://grml.org/bugs/
6 # License:       This file is licensed under the GPL v2.
7 ################################################################################
8
9 # http://wiki.debian.org/LSBInitScripts =>
10 ### BEGIN INIT INFO
11 # Provides:          grml-autoconfig
12 # Required-Start:
13 # Required-Stop:
14 # Should-Start:      udev
15 # Default-Start:     S 2 3 4 5
16 # Default-Stop:
17 ### END INIT INFO
18
19 # {{{ placeholder functions for restart/reload/stop
20 if [[ $1 == "restart" ]] ; then
21   echo "$0 restart - empty placeholder. Doing nothing but running."
22 fi
23
24 if [[ $1 == "force-reload" ]] ; then
25   echo "$0 force-reload - empty placeholder. Doing nothing but running."
26 fi
27
28 if [[ $1 == "stop" ]] ; then
29   echo "$0 stop - empty placeholder. Doing nothing but exiting."
30   exit 1
31 fi
32 # }}}
33
34 # {{{ path, signals, umask, zsh, colors
35 export PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin"
36 umask 022
37 # Ignore these signals: INT, TERM, SEGV
38 trap "" 2 3 11
39
40 # zsh stuff
41 setopt no_nomatch # avoid 'no matches found: ...'
42 # }}}
43
44 # {{{ source main files
45 source /etc/grml/autoconfig            # configuration file
46 source /etc/grml/autoconfig.functions  # functions
47 source /etc/grml/lsb-functions         # helper functions for smart display
48 # }}}
49
50 # {{{ mount important directories
51 mount_proc
52 mount_pts
53 mount_sys
54 # }}}
55
56 # {{{ Read in boot parameters
57 CMDLINE="$(cat /proc/cmdline)"
58 [ -d /cdrom/bootparams/ ] && CMDLINE="$CMDLINE $(cat /cdrom/bootparams/* | tr '\n' ' ')"
59 # }}}
60
61 # {{{ main grml-autoconfig
62 checkvalue $CONFIG_DEBUG && config_debug
63
64 SPLASH=''
65 if checkbootparam "textsplash" || checkbootparam "tsplash"; then
66    SPLASH=1
67 fi
68
69 # update /etc/mtab if running in live-initramfs mode:
70 if [ -z "$INSTALLED" -a -e /live/cow ] ; then
71    if ! grep -q rootfs /etc/mtab ; then
72       for i in rootfs "none /sys sysfs" proc /live/image /live/cow /lib/init/rw /dev/shm /dev/pts ; do
73           grep $i /proc/mounts | grep -v /dev/.static >> /etc/mtab
74       done
75    fi
76 fi
77
78 if [ -z "$SPLASH" ] ; then
79    stage=5
80    rundebugshell
81 fi
82
83 if [ -z "$BOOTDEBUG" ] ; then
84    einfo "Setting kernel ring buffer to level 2."
85    echo "2" > /proc/sys/kernel/printk ; eend $?
86 else
87    einfo "Setting kernel ring buffer to level 6. Adjust manually via running dmesg -n \$VALUE."
88    echo "6" > /proc/sys/kernel/printk ; eend $?
89 fi
90
91 checkvalue $CONFIG_SYSLOG && config_syslog
92
93 if checkbootparam "forensic" ; then
94    eerror "Bootopion forensic found. Important notice!"
95    eerror " Do *not* boot with something like 'grml forensic ...' but with 'forensic ...' instead!"
96    eerror " To avoid damage to your system a debugshell will be started after a delay of 10 seconds." ; eend 1
97    eerror " If you want to continue booting just exit the shell, but think about what you are doing!" ; eend 1
98    sleep 10
99    rundebugshell
100 fi
101
102 if [ -n "$SPLASH" ] ; then
103    /usr/bin/grml-bootsplash "|">/dev/tty14
104    chvt 14
105 fi
106
107 checkvalue $CONFIG_LANGUAGE && config_language
108
109 checkvalue $CONFIG_LOG && config_log
110
111 checkvalue $CONFIG_SWSPEAK && config_swspeak
112
113 checkvalue $CONFIG_HWSPEAK && config_hwspeak
114
115 checkvalue $CONFIG_FWTIMEOUT && config_fwtimeout
116
117 checkvalue $CONFIG_FIX_PASSWD && config_fix_passwd
118
119 [ -n "$SPLASH" ] && /usr/bin/grml-bootsplash "||">/dev/tty14
120
121 checkvalue $CONFIG_HOSTNAME && config_hostname
122
123 checkvalue $CONFIG_USERFSTAB && config_userfstab
124
125 checkvalue $CONFIG_TIME && config_time
126
127 checkvalue $CONFIG_KERNEL &&  config_kernel
128
129 checkvalue $CONFIG_VMWARE &&  config_vmware
130
131 checkvalue $CONFIG_QEMU && config_qemu
132
133 checkvalue $CONFIG_SMALL && config_small
134
135 checkvalue $CONFIG_LD_MOD && config_ld_mod
136
137 checkvalue $CONFIG_TIMEZONE && config_timezone
138
139 checkvalue $CONFIG_FAST && config_fast
140
141 [ -n "$SPLASH" ] && /usr/bin/grml-bootsplash "|||">/dev/tty14
142
143 checkvalue $CONFIG_ENVIRONMENT && config_environment
144
145 checkvalue $CONFIG_SWRAID && config_swraid
146
147 checkvalue $CONFIG_LVM && config_lvm
148
149 # No kernel messages while probing modules
150 echo "0" > /proc/sys/kernel/printk
151
152 checkvalue $CONFIG_CDROM_PERM && config_cdrom_perm
153
154 checkvalue $CONFIG_LOCAL_NET && config_local_net
155
156 checkvalue $CONFIG_FIREWIRE_DEV && config_firewire_dev
157
158 checkvalue $CONFIG_TESTCD && config_testcd
159
160 [ -n "$SPLASH" ] && /usr/bin/grml-bootsplash "||||">/dev/tty14
161
162 checkvalue $CONFIG_DISCOVER && config_discover
163
164 checkvalue $CONFIG_HWINFO && config_hwinfo
165
166 checkvalue $CONFIG_HOTPLUG_AGENT && config_hotplug_agent
167
168 checkvalue $CONFIG_HOTPLUG_BLACKLIST && config_hotplug_blacklist
169
170 checkvalue $CONFIG_HOTPLUG_MAIN && config_hotplug
171
172 checkvalue $CONFIG_MODULES && config_modules
173
174 checkvalue $CONFIG_ACPI_APM && config_acpi_apm
175
176 [ -n "$SPLASH" ] && /usr/bin/grml-bootsplash "|||||">/dev/tty14
177
178 checkvalue $CONFIG_PCMCIA && config_pcmcia
179
180 checkvalue $CONFIG_KEYBOARD && config_keyboard
181
182 [ -n "$SPLASH" ] &&  /usr/bin/grml-bootsplash "||||||">/dev/tty14
183
184 checkvalue $CONFIG_BLIND && config_blind
185
186 checkvalue $CONFIG_INTERACTIVE && config_interactive
187
188 checkvalue $CONFIG_AGP && config_agp
189
190 checkvalue $CONFIG_AUTOMOUNTER && config_automounter
191
192 checkvalue $CONFIG_DMA && config_dma
193
194 checkvalue $CONFIG_FSTAB && config_fstab
195
196 checkvalue $CONFIG_MOUSE && config_mouse
197
198 checkvalue $CONFIG_DHCP && config_dhcp
199
200 [ -n "$SPLASH" ] && /usr/bin/grml-bootsplash "|||||||">/dev/tty14
201
202 checkvalue $CONFIG_CPU && config_cpu
203
204 checkvalue $CONFIG_SSH && config_ssh
205
206 checkvalue $CONFIG_PASSWD && config_passwd
207
208 checkvalue $CONFIG_EXTRACT  && config_extract
209
210 checkvalue $CONFIG_HOMEDIR && config_homedir
211
212 checkvalue $CONFIG_MYCONFIG && config_myconfig
213
214 checkvalue $CONFIG_DEBS && config_debs
215
216 checkvalue $CONFIG_SCRIPTS && config_scripts
217
218 [ -n "$SPLASH" ] && /usr/bin/grml-bootsplash "||||||||">/dev/tty14
219
220 checkvalue $CONFIG_CDROM_SCRIPTS && config_cdrom_scripts
221
222 # device symlinks {{{
223   [ -r /mnt/floppy ] || mkdir /mnt/floppy
224   [ -r /mnt/cdrom ]  || mkdir /mnt/cdrom
225   [ -r /mnt/test ]   || mkdir /mnt/test
226 # }}}
227
228 checkvalue $CONFIG_MIXER && config_mixer
229
230 checkvalue $CONFIG_MODEM && config_modem
231
232 checkvalue $CONFIG_WONDERSHAPER && config_wondershaper
233
234 checkvalue $CONFIG_GPM && config_gpm
235
236 [ -n "$SPLASH" ] && /usr/bin/grml-bootsplash "|||||||||">/dev/tty14
237
238 checkvalue $CONFIG_SERVICES && config_services
239
240 checkvalue $CONFIG_NETCONFIG && config_netconfig
241
242 checkvalue $CONFIG_NETIPV6 && config_ipv6
243
244 checkvalue $CONFIG_DEBNET && config_debnet
245
246 [ -n "$SPLASH" ] && /usr/bin/grml-bootsplash "||||||||||">/dev/tty14
247
248 checkvalue $CONFIG_CONSOLE && config_console
249
250 checkvalue $CONFIG_SETKEYCODES && config_setkeycodes
251
252 checkvalue $CONFIG_BLINDSOUND && config_blindsound
253
254 checkvalue $CONFIG_WELCOME && config_welcome
255
256 checkvalue $CONFIG_FIX_UNIONFS && fix_unionfs
257
258 checkvalue $CONFIG_CREATE_MNT_DIRS && create_mnt_dirs
259
260 checkvalue $CONFIG_915RESOLUTION && config_915resolution
261
262 checkvalue $CONFIG_IPW3945 && config_ipw3945
263
264 checkvalue $CONFIG_AUTOMOUNT && config_automount
265
266 checkvalue $CONFIG_MYPATH && config_mypath
267
268 checkvalue $CONFIG_DISTCC && config_distcc
269
270 checkvalue $CONFIG_DISTRI && config_distri
271
272 checkvalue $CONFIG_BLANKING && config_blanking
273
274 if [ -n "$SPLASH" ] ; then
275    /usr/bin/grml-bootsplash "|||||||||||">/dev/tty14
276    chvt 1
277 fi
278
279 checkvalue $CONFIG_GRML2HD && config_grml2hd
280
281 checkvalue $CONFIG_DEBOOTSTRAP && config_debootstrap
282
283 checkvalue $CONFIG_XSTARTUP && config_x_startup
284 # }}}
285
286 # {{{ debug
287 if [ -z "$SPLASH" ] ; then
288    stage=6
289    rundebugshell
290 fi
291
292 if [ -n "$BOOTDEBUG" ] ; then
293    CMDLINE="$(cat /proc/cmdline)"
294    [ -d /cdrom/bootparams/ ] && CMDLINE="$CMDLINE $(cat /cdrom/bootparams/*)"
295    einfo "Bootoption debug detected. Printing kernel command line:"
296    echo "$CMDLINE"
297 fi
298 # }}}
299
300 # {{{ Re-enable signals
301 trap 2 3 11
302 # }}}
303
304 exit 0
305
306 ## END OF FILE #################################################################
307 # vim:foldmethod=marker