Magellan Linux

Contents of /trunk/magellan-initscripts/etc/rc.d/init.d/hwdetect

Parent Directory Parent Directory | Revision Log Revision Log


Revision 71 - (show annotations) (download)
Tue Mar 15 19:07:56 2005 UTC (19 years, 2 months ago) by niro
File size: 13552 byte(s)
updated header and fixed whitespaces

1 #!/bin/bash
2 # $Header: /home/cvsd/magellan-cvs/magellan-src/magellan-initscripts/etc/rc.d/init.d/hwdetect,v 1.3 2005-03-15 19:07:56 niro Exp $
3
4 # note: must be startet before /etc/rc.d/init.d/modules !!!
5
6 #%rlevels: 7:s
7 #%start: 52
8 #%stop:
9
10 #deps
11 #%needs:
12 #%before:
13 #%after:
14
15 write_x11_config() {
16
17 local xserver
18 local xfconfig
19 local HAS_VNC
20
21 #xfree or xorg ?
22 xserver="$(readlink /usr/X11R6/bin/X)"
23
24 case ${xserver} in
25 Xorg)
26 xfconfig=/etc/X11/xorg.conf
27 ;;
28 XFree86)
29 xfconfig=/etc/X11/XF86Config
30 ;;
31 *)
32 echo " Unkown xserver. aborting."
33 exit 1
34 ;;
35 esac
36
37 #got we vnc support ?
38 if [ -f /usr/X11R6/lib/modules/vnc.so ]
39 then
40 HAS_VNC="yes"
41 else
42 HAS_VNC="no"
43 fi
44
45
46 #show which server we use
47 echo -en ${COLOREDSTAR}"Using '${xserver}' as x11-server "
48
49 #show if we have vnc
50 if [ "${HAS_VNC}" = "yes" ]
51 then
52 echo "with vnc enabled ..."
53 else
54 echo "..."
55 fi
56
57 #create a new clear xfconfig file
58 echo '# Generated with hwdetect, part of Magellan-Linux initscripts.' > ${xfconfig}
59 echo '' >> ${xfconfig}
60
61 #write modules
62 echo '' >> ${xfconfig}
63 echo 'Section "Module"' >> ${xfconfig}
64 echo ' Load "dbe"' >> ${xfconfig}
65 echo ' SubSection "extmod"' >> ${xfconfig}
66 echo ' Option "omit xfree86-dga"' >> ${xfconfig}
67 echo ' EndSubSection' >> ${xfconfig}
68 echo ' Load "type1"' >> ${xfconfig}
69 echo ' Load "speedo"' >> ${xfconfig}
70 echo ' Load "freetype"' >> ${xfconfig}
71 echo '# Load "xtt"' >> ${xfconfig}
72 echo '# Load "glx"' >> ${xfconfig}
73 echo ' Load "dri"' >> ${xfconfig}
74
75 [ "${HAS_VNC}" = "yes" ] && echo ' Load "vnc"' >> ${xfconfig}
76
77 echo 'EndSection' >> ${xfconfig}
78
79
80 #fonts
81 echo '' >> ${xfconfig}
82 echo 'Section "Files"' >> ${xfconfig}
83 echo ' RgbPath "/usr/X11R6/lib/X11/rgb"' >> ${xfconfig}
84
85 case ${xserver} in
86 Xorg)
87 echo ' FontPath "/usr/share/fonts/local/"' >> ${xfconfig}
88 echo ' FontPath "/usr/share/fonts/misc/"' >> ${xfconfig}
89 echo ' FontPath "/usr/share/fonts/75dpi/:unscaled"' >> ${xfconfig}
90 echo ' FontPath "/usr/share/fonts/100dpi/:unscaled"' >> ${xfconfig}
91 echo ' #prevents slow startup when disabled -> speedo, type1' >> ${xfconfig}
92 echo ' #FontPath "/usr/share/fonts/Speedo/"' >> ${xfconfig}
93 echo ' #FontPath "/usr/share/fonts/Type1/"' >> ${xfconfig}
94 echo ' FontPath "/usr/share/fonts/TrueType/"' >> ${xfconfig}
95 echo ' FontPath "/usr/share/fonts/freefont/"' >> ${xfconfig}
96 echo ' FontPath "/usr/share/fonts/75dpi/"' >> ${xfconfig}
97 echo ' FontPath "/usr/share/fonts/100dpi/"' >> ${xfconfig}
98 ;;
99 XFree86)
100 echo ' FontPath "/usr/X11R6/lib/X11/fonts/local/"' >> ${xfconfig}
101 echo ' FontPath "/usr/X11R6/lib/X11/fonts/misc/"' >> ${xfconfig}
102 echo ' FontPath "/usr/X11R6/lib/X11/fonts/75dpi/:unscaled"' >> ${xfconfig}
103 echo ' FontPath "/usr/X11R6/lib/X11/fonts/100dpi/:unscaled"' >> ${xfconfig}
104 echo ' #prevents slow startup when disabled -> speedo, type1' >> ${xfconfig}
105 echo ' #FontPath "/usr/X11R6/lib/X11/fonts/Speedo/"' >> ${xfconfig}
106 echo ' #FontPath "/usr/X11R6/lib/X11/fonts/Type1/"' >> ${xfconfig}
107 echo ' FontPath "/usr/X11R6/lib/X11/fonts/TrueType/"' >> ${xfconfig}
108 echo ' FontPath "/usr/X11R6/lib/X11/fonts/freefont/"' >> ${xfconfig}
109 echo ' FontPath "/usr/X11R6/lib/X11/fonts/75dpi/"' >> ${xfconfig}
110 echo ' FontPath "/usr/X11R6/lib/X11/fonts/100dpi/"' >> ${xfconfig}
111 ;;
112 esac
113
114 echo '# ModulePath "/usr/X11R6/lib/modules"' >> ${xfconfig}
115 echo 'EndSection' >> ${xfconfig}
116
117
118 #server flags
119 echo '' >> ${xfconfig}
120 echo 'Section "ServerFlags"' >> ${xfconfig}
121 echo '# Option "DontVTSwitch"' >> ${xfconfig}
122 echo '# Option "DontZap"' >> ${xfconfig}
123 echo '# Option "Dont Zoom"' >> ${xfconfig}
124 echo 'EndSection' >> ${xfconfig}
125
126
127 #keyboard
128 echo '' >> ${xfconfig}
129 echo 'Section "InputDevice"' >> ${xfconfig}
130 echo ' Identifier "Keyboard1"' >> ${xfconfig}
131
132 case ${xserver} in
133 Xorg)
134 echo ' Driver "kbd"' >> ${xfconfig}
135 ;;
136 XFree86)
137 echo ' Driver "Keyboard"' >> ${xfconfig}
138 ;;
139 esac
140
141 echo ' Option "AutoRepeat" "500 30"' >> ${xfconfig}
142 echo '# Option "Xleds" "1 2 3"' >> ${xfconfig}
143
144 case ${xserver} in
145 Xorg)
146 echo ' Option "XkbRules" "xorg"' >> ${xfconfig}
147 ;;
148 XFree86)
149 echo ' Option "XkbRules" "xfree86"' >> ${xfconfig}
150 ;;
151 esac
152
153 echo ' Option "XkbModel" "pc104"' >> ${xfconfig}
154 echo ' Option "XkbLayout" "de"' >> ${xfconfig}
155 echo 'EndSection' >> ${xfconfig}
156
157
158 #mouse
159 #to be safe
160 local MOUSETYPE XMOUSETYPE FULLNAME DEVICE
161 #get config
162 [ -f /etc/sysconfig/hwsetup/mouse ] && source /etc/sysconfig/hwsetup/mouse
163
164 echo '' >> ${xfconfig}
165 echo 'Section "InputDevice"' >> ${xfconfig}
166 echo ' Identifier "Mouse1"' >> ${xfconfig}
167 echo ' Driver "mouse"' >> ${xfconfig}
168
169 if [ -n "${XMOUSETYPE}" ]
170 then
171 echo " Option \"Protocol\" \"${XMOUSETYPE}\"" >> ${xfconfig}
172 else
173 echo ' Option "Protocol" "PS/2"' >> ${xfconfig}
174 fi
175
176 if [ -n "${DEVICE}" ]
177 then
178 #show what we got
179 echo -e ${COLOREDSTAR}"Mouse (${MOUSE_FULLNAME} found at ${MOUSE_DEVICE}"
180
181 #is there any mouse module than try to load it
182 if [ "${MOUSETYPE}" = "ps2" ]
183 then
184 #kernel 2.6
185 if [ -f /lib/modules/$(uname -r)/kernel/drivers/input/mouse/psmouse.ko ]
186 then
187 echo -e ${COLOREDSTAR}"Loading kernel-module 'psmouse' ..."
188 echo "psmouse" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
189 fi
190
191 #kernel 2.4
192 #if [ -f /lib/modules/$(uname -r)/kernel/drivers/input/mouse/psmouse.ko ]
193 #then
194 # echo -e ${COLOREDSTAR}"Loading kernel-module 'psmouse' ..."
195 # echo "psmouse" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
196 #fi
197 else
198 #kernel 2.6
199 if [ -a /lib/modules/$(uname -r)/kernel/drivers/input/mouse/sermouse.ko ]
200 then
201 echo -e ${COLOREDSTAR}"Loading kernel-module 'sermouse' ..."
202 echo "sermouse" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
203 fi
204
205 #kernel 2.4
206 #if [ -f /lib/modules/$(uname -r)/kernel/drivers/input/mouse/psmouse.ko ]
207 #then
208 # echo -e ${COLOREDSTAR}"Loading kernel-module 'psmouse' ..."
209 # echo "psmouse" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
210 #fi
211 fi
212 echo " Option \"Device\" \"${DEVICE}\"" >> ${xfconfig}
213 else
214 echo ' Option "Device" "/dev/mouse"' >> ${xfconfig}
215 fi
216
217 echo ' Option "Resolution" "1200"' >> ${xfconfig}
218
219 [ "${XMOUSETYPE}" = "IMPS/2" ] && echo ' Option "ZAxisMapping" "4 5"' >> ${xfconfig}
220
221 echo 'EndSection' >> ${xfconfig}
222
223 #to be safe
224 unset MOUSETYPE XMOUSETYPE FULLNAME DEVICE
225
226
227 #vnc keyboard && mouse
228 if [ "${HAS_VNC}" = "yes" ]
229 then
230 echo '' >> ${xfconfig}
231 echo 'Section "InputDevice"' >> ${xfconfig}
232 echo ' Identifier "vncKeyboard"' >> ${xfconfig}
233 echo ' Driver "rfbkeyb"' >> ${xfconfig}
234 echo 'EndSection' >> ${xfconfig}
235
236 echo '' >> ${xfconfig}
237 echo 'Section "InputDevice"' >> ${xfconfig}
238 echo ' Identifier "vncMouse"' >> ${xfconfig}
239 echo ' Driver "rfbmouse"' >> ${xfconfig}
240 echo 'EndSection' >> ${xfconfig}
241 fi
242
243
244 #monitor
245 echo '' >> ${xfconfig}
246 # echo 'Section "Monitor"' >> ${xfconfig}
247 # echo ' Identifier "mon0"' >> ${xfconfig}
248 # echo ' HorizSync 28 - 96' >> ${xfconfig}
249 # echo ' VertRefresh 50-60' >> ${xfconfig}
250 # echo ' Option "DPMS"' >> ${xfconfig}
251 # echo 'EndSection' >> ${xfconfig}
252
253 #test; using knoppix ddcxinfo
254 if [ -x "/sbin/ddcxinfo-knoppix" ]
255 then
256 ddcxinfo-knoppix -monitor >> ${xfconfig}
257 else
258 #some conservative default values
259 echo 'Section "Monitor"' >> ${xfconfig}
260 echo ' Identifier "mon0"' >> ${xfconfig}
261 echo ' HorizSync 28 - 96' >> ${xfconfig}
262 echo ' VertRefresh 50-60' >> ${xfconfig}
263 echo ' Option "DPMS"' >> ${xfconfig}
264 echo 'EndSection' >> ${xfconfig}
265 fi
266
267 #vga
268 #to be safe
269 local XSERVER XMODULE XDESC
270
271 #get config
272 [ -f /etc/sysconfig/hwsetup/xserver ] && source /etc/sysconfig/hwsetup/xserver
273
274 echo '' >> ${xfconfig}
275 echo 'Section "Device"' >> ${xfconfig}
276 echo ' Identifier "vga0"' >> ${xfconfig}
277
278 if [ -n "${XMODULE}" ]
279 then
280 # vmware module has some probs with fb consoles
281 # very dirty glyphes appear, so we use vesa instead
282 [ "${XMODULE}" = "vmware" ] && XMODULE="vesa"
283 echo -e ${COLOREDSTAR}"Video: ${XDESC}"
284 echo -e ${COLOREDSTAR}"Video module: ${XMODULE}"
285 echo " Driver \"${XMODULE}\"" >> ${xfconfig}
286 else
287 echo -e ${COLOREDSTAR}"Video unknown, trying to use the standard 'vesa' module ..."
288 echo ' Driver "vesa"' >> ${xfconfig}
289 fi
290
291 #vnc server options
292 if [ "${HAS_VNC}" = "yes" ]
293 then
294 echo '' >> ${xfconfig}
295 echo ' # rfb options' >> ${xfconfig}
296 echo ' Option "rfbauth" "/root/.vnc/passwd"' >> ${xfconfig}
297 echo ' Option "rfbport" "5900"' >> ${xfconfig}
298 echo ' #Option "nevershared"' >> ${xfconfig}
299 echo ' Option "alwaysshared"' >> ${xfconfig}
300 echo ' Option "dontdisconnect"' >> ${xfconfig}
301 echo ' Option "httpdir" "/usr/share/vnc/classes"' >> ${xfconfig}
302 echo ' Option "httpport" "5800"' >> ${xfconfig}
303 echo ' # Option "useraccept"' >> ${xfconfig}
304 echo ' Option "usevnc"' >> ${xfconfig}
305 echo ' # Option "localhost"' >> ${xfconfig}
306 echo ' # Option "interface" "192.168.0.1"' >> ${xfconfig}
307 echo ' # Option "viewonly"' >> ${xfconfig}
308 echo ' # Option "loginauth"' >> ${xfconfig}
309 echo '' >> ${xfconfig}
310 fi
311
312 echo 'EndSection' >> ${xfconfig}
313 #to be safe
314 unset XSERVER XMODULE XDESC
315
316
317 #screens
318 echo '' >> ${xfconfig}
319 echo 'Section "Screen"' >> ${xfconfig}
320 echo ' Identifier "Screen 1"' >> ${xfconfig}
321 echo ' Device "vga0"' >> ${xfconfig}
322 #echo ' Monitor "mon0"' >> ${xfconfig}
323 echo ' Monitor "Monitor0"' >> ${xfconfig}
324 echo ' DefaultDepth 16' >> ${xfconfig}
325 echo ' Subsection "Display"' >> ${xfconfig}
326 echo ' Depth 8' >> ${xfconfig}
327 echo ' Modes "1024x768"' >> ${xfconfig}
328 echo ' ViewPort 0 0' >> ${xfconfig}
329 echo ' EndSubsection' >> ${xfconfig}
330 echo ' Subsection "Display"' >> ${xfconfig}
331 echo ' Depth 16' >> ${xfconfig}
332 echo ' Modes "1024x768"' >> ${xfconfig}
333 echo ' ViewPort 0 0' >> ${xfconfig}
334 echo ' EndSubsection' >> ${xfconfig}
335 echo ' Subsection "Display"' >> ${xfconfig}
336 echo ' Depth 24' >> ${xfconfig}
337 echo ' Modes "1024x768"' >> ${xfconfig}
338 echo ' ViewPort 0 0' >> ${xfconfig}
339 echo ' EndSubsection' >> ${xfconfig}
340 echo 'EndSection' >> ${xfconfig}
341
342
343 #server layout
344 echo '' >> ${xfconfig}
345 echo 'Section "ServerLayout"' >> ${xfconfig}
346 echo ' Identifier "Simple Layout"' >> ${xfconfig}
347 echo ' Screen "Screen 1"' >> ${xfconfig}
348 echo ' InputDevice "Mouse1" "CorePointer"' >> ${xfconfig}
349 echo ' InputDevice "Keyboard1" "CoreKeyboard"' >> ${xfconfig}
350
351 #load vnc keyboard && mouse
352 if [ "${HAS_VNC}" = "yes" ]
353 then
354 echo ' InputDevice "vncMouse" "ExtraPointer"' >> ${xfconfig}
355 echo ' InputDevice "vncKeyboard" "ExtraKeyboard"' >> ${xfconfig}
356 fi
357
358 echo 'EndSection' >> ${xfconfig}
359
360
361 #dri (here disabled, use default of xserver)
362 echo '' >> ${xfconfig}
363 echo '# Section "DRI"' >> ${xfconfig}
364 echo '# Mode 0666' >> ${xfconfig}
365 echo '# EndSection' >> ${xfconfig}
366 }
367
368
369 run_hwdetection() {
370 echo -e ${COLOREDSTAR}"Hardware Autodetection started ..."
371 echo -e ${COLOREDSTAR}"Prozessor: $(cat /proc/cpuinfo |grep "model name" | sed -e 's:model\ name*.*\: ::')"
372
373
374 #cleaning up old data-crap
375 if [ -e /etc/sysconfig/hwsetup ]
376 then
377 echo -e ${COLOREDSTAR}"Cleaning up old data ..."
378 rm -f /etc/sysconfig/hwsetup/*
379 fi
380
381 echo -en "${COLOREDSTAR}";hwsetup -p > /dev/null
382
383 #clean up modules
384 if [ -f /etc/modules.autoload.d/kernel-$(kernel_major_version) ]
385 then
386 echo -e ${COLOREDSTAR}"Cleaning up /etc/modules.autoload.d/kernel-$(kernel_major_version) ..."
387 echo > /etc/modules.autoload.d/kernel-$(kernel_major_version)
388 evaluate_retval
389 fi
390
391 #load module for parallel printing if exists
392 if [ -e /lib/modules/`uname -r`/kernel/drivers/char/lp.o ]
393 then
394 echo "lp" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
395 fi
396
397 #get what hwsetup has found
398 if [ -f /etc/sysconfig/hwsetup/knoppix ]
399 then
400 source /etc/sysconfig/hwsetup/knoppix
401 fi
402
403 #network setup (dhcp)
404 #for i in $(cat /proc/net/dev|grep eth.|cut -d ':' -f1)
405 #do
406 # echo -e ${COLOREDSTAR}"Network ${i}: ${NETCARD_FULLNAME}"
407 if [ -n "${NETCARD_DRIVER}" ]
408 then
409 echo -e ${COLOREDSTAR}"Network eth0: ${NETCARD_FULLNAME}"
410 echo -e ${COLOREDSTAR}"Network module: ${NETCARD_DRIVER}"
411 echo "${NETCARD_DRIVER}" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
412 evaluate_retval
413 fi
414 #done
415
416 #sound setup
417 if [ -n "${SOUND_DRIVER}" ]
418 then
419 echo -e ${COLOREDSTAR}"Sound (${SOUND_FULLNAME}) found"
420 echo -e ${COLOREDSTAR}"Sound module: ${SOUND_DRIVER}"
421 echo "${SOUND_DRIVER}" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
422 evaluate_retval
423 fi
424
425 #write default xfree-config
426 echo -e ${COLOREDSTAR}"Generating x11 configuration ..."
427 write_x11_config
428 evaluate_retval
429 }
430
431 ########### main part starts here ##############
432
433 source /etc/sysconfig/rc
434 source $rc_functions
435
436 case $1 in
437 start)
438 #we wouldn't start hwdetection if settings where imported (alx-only)
439 if [ ! -e /etc/alx-config/imported ]
440 then
441 run_hwdetection
442 fi
443
444 update_svcstatus $1
445 splash svc_started "$(basename $0)" 0
446 ;;
447
448 restart)
449 $0 start
450 ;;
451
452 *)
453 echo "Usage: $0 {start|restart}"
454 exit 1
455 ;;
456 esac

Properties

Name Value
svn:executable *