Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 71 - (hide 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 niro 2 #!/bin/bash
2 niro 71 # $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 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    
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 niro 11 echo " Unkown xserver. aborting."
33 niro 2 exit 1
34     ;;
35     esac
36 niro 71
37 niro 2 #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 niro 71
45    
46 niro 2 #show which server we use
47     echo -en ${COLOREDSTAR}"Using '${xserver}' as x11-server "
48 niro 71
49 niro 2 #show if we have vnc
50     if [ "${HAS_VNC}" = "yes" ]
51     then
52     echo "with vnc enabled ..."
53     else
54     echo "..."
55     fi
56 niro 71
57 niro 2 #create a new clear xfconfig file
58     echo '# Generated with hwdetect, part of Magellan-Linux initscripts.' > ${xfconfig}
59     echo '' >> ${xfconfig}
60 niro 71
61 niro 2 #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 niro 71
75 niro 2 [ "${HAS_VNC}" = "yes" ] && echo ' Load "vnc"' >> ${xfconfig}
76 niro 71
77 niro 2 echo 'EndSection' >> ${xfconfig}
78 niro 71
79    
80 niro 2 #fonts
81     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 2 #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 niro 71
126    
127 niro 2 #keyboard
128     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 2 #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 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     #show what we got
179     echo -e ${COLOREDSTAR}"Mouse (${MOUSE_FULLNAME} found at ${MOUSE_DEVICE}"
180 niro 71
181 niro 2 #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 niro 71
191 niro 2 #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 niro 71
205 niro 2 #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 niro 71
217 niro 2 echo ' Option "Resolution" "1200"' >> ${xfconfig}
218 niro 71
219 niro 2 [ "${XMOUSETYPE}" = "IMPS/2" ] && echo ' Option "ZAxisMapping" "4 5"' >> ${xfconfig}
220 niro 71
221 niro 2 echo 'EndSection' >> ${xfconfig}
222 niro 71
223 niro 2 #to be safe
224     unset MOUSETYPE XMOUSETYPE FULLNAME DEVICE
225 niro 71
226    
227 niro 2 #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 niro 71
244 niro 2 #monitor
245     echo '' >> ${xfconfig}
246 niro 11 # 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 niro 71
267 niro 2 #vga
268     #to be safe
269     local XSERVER XMODULE XDESC
270 niro 71
271 niro 2 #get config
272     [ -f /etc/sysconfig/hwsetup/xserver ] && source /etc/sysconfig/hwsetup/xserver
273 niro 71
274 niro 2 echo '' >> ${xfconfig}
275     echo 'Section "Device"' >> ${xfconfig}
276     echo ' Identifier "vga0"' >> ${xfconfig}
277 niro 71
278 niro 2 if [ -n "${XMODULE}" ]
279     then
280 niro 11 # vmware module has some probs with fb consoles
281     # very dirty glyphes appear, so we use vesa instead
282     [ "${XMODULE}" = "vmware" ] && XMODULE="vesa"
283 niro 2 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 niro 71
316    
317 niro 2 #screens
318     echo '' >> ${xfconfig}
319     echo 'Section "Screen"' >> ${xfconfig}
320     echo ' Identifier "Screen 1"' >> ${xfconfig}
321     echo ' Device "vga0"' >> ${xfconfig}
322 niro 11 #echo ' Monitor "mon0"' >> ${xfconfig}
323     echo ' Monitor "Monitor0"' >> ${xfconfig}
324 niro 2 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 niro 71
342    
343 niro 2 #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 niro 71
360    
361 niro 2 #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 niro 71
452 niro 2 *)
453     echo "Usage: $0 {start|restart}"
454     exit 1
455     ;;
456     esac

Properties

Name Value
svn:executable *