Magellan Linux

Annotation of /branches/init-0_3_3-r1/magellan-initscripts/etc/rc.d/init.d/hwdetect

Parent Directory Parent Directory | Revision Log Revision Log


Revision 11 - (hide annotations) (download)
Mon Dec 13 23:30:33 2004 UTC (19 years, 5 months ago) by niro
Original Path: trunk/magellan-initscripts/etc/rc.d/init.d/hwdetect
File size: 13472 byte(s)
updated with hwdetect-0.3 and some little fixes; will later have its own package

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

Properties

Name Value
svn:executable *