Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 148 - (hide annotations) (download)
Sun Jul 3 21:31:27 2005 UTC (18 years, 10 months ago) by niro
File size: 13191 byte(s)
cosmetics and fixed vnc

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

Properties

Name Value
svn:executable *