Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 221 - (hide annotations) (download)
Wed Aug 31 21:46:24 2005 UTC (18 years, 8 months ago) by niro
File size: 13435 byte(s)
added a fix for i810 x11 drivers -> load intel-agp module if needed

1 niro 2 #!/bin/bash
2 niro 221 # $Header: /home/cvsd/magellan-cvs/magellan-src/magellan-initscripts/etc/rc.d/init.d/hwdetect,v 1.5 2005-08-31 21:46:24 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 niro 221 [[ ${XMODULE} = vmware ]] && XMODULE="vesa"
277    
278     # i810 needs the intel-agp kernel module to run probably
279     [[ ${XMODULE} = i810 ]] && \
280     [ -f /lib/modules/$(uname -r)/kernel/drivers/char/agp/intel-agp.ko ] && \
281     echo "intel-agp" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
282    
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 niro 148 # vnc server options
292     if [[ ${HAS_VNC} = yes ]]
293 niro 2 then
294     echo '' >> ${xfconfig}
295     echo ' # rfb options' >> ${xfconfig}
296     echo ' Option "rfbauth" "/root/.vnc/passwd"' >> ${xfconfig}
297     echo ' Option "rfbport" "5900"' >> ${xfconfig}
298 niro 148 echo ' # Option "nevershared"' >> ${xfconfig}
299 niro 2 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 niro 148 # to be safe
314 niro 2 unset XSERVER XMODULE XDESC
315 niro 71
316    
317 niro 148 # screens
318 niro 2 echo '' >> ${xfconfig}
319     echo 'Section "Screen"' >> ${xfconfig}
320     echo ' Identifier "Screen 1"' >> ${xfconfig}
321     echo ' Device "vga0"' >> ${xfconfig}
322 niro 11 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 niro 71
341    
342 niro 148 # server layout
343 niro 2 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 niro 148 # load vnc keyboard && mouse
351     if [[ ${HAS_VNC} = yes ]]
352 niro 2 then
353     echo ' InputDevice "vncMouse" "ExtraPointer"' >> ${xfconfig}
354     echo ' InputDevice "vncKeyboard" "ExtraKeyboard"' >> ${xfconfig}
355     fi
356    
357     echo 'EndSection' >> ${xfconfig}
358 niro 71
359    
360 niro 148 # dri (here disabled, use default of xserver)
361 niro 2 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 niro 148 # cleaning up old data-crap
374 niro 2 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 niro 148 # clean up modules
383 niro 2 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 niro 148 # load module for parallel printing if exists
391     if [ -e /lib/modules/$(uname -r)/kernel/drivers/char/lp.o ]
392 niro 2 then
393     echo "lp" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
394 niro 221 fi
395 niro 2
396 niro 148 # get what hwsetup has found
397 niro 2 if [ -f /etc/sysconfig/hwsetup/knoppix ]
398     then
399     source /etc/sysconfig/hwsetup/knoppix
400     fi
401    
402 niro 148 # network setup (dhcp)
403 niro 2 if [ -n "${NETCARD_DRIVER}" ]
404     then
405     echo -e ${COLOREDSTAR}"Network eth0: ${NETCARD_FULLNAME}"
406     echo -e ${COLOREDSTAR}"Network module: ${NETCARD_DRIVER}"
407     echo "${NETCARD_DRIVER}" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
408     evaluate_retval
409     fi
410    
411 niro 148 # sound setup
412 niro 2 if [ -n "${SOUND_DRIVER}" ]
413     then
414     echo -e ${COLOREDSTAR}"Sound (${SOUND_FULLNAME}) found"
415     echo -e ${COLOREDSTAR}"Sound module: ${SOUND_DRIVER}"
416     echo "${SOUND_DRIVER}" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
417     evaluate_retval
418     fi
419    
420 niro 148 # write default xfree-config
421 niro 2 echo -e ${COLOREDSTAR}"Generating x11 configuration ..."
422     write_x11_config
423     evaluate_retval
424     }
425    
426     ########### main part starts here ##############
427    
428     source /etc/sysconfig/rc
429     source $rc_functions
430    
431     case $1 in
432     start)
433 niro 148 # we wouldn't start hwdetection if settings where imported (alx-only)
434 niro 2 if [ ! -e /etc/alx-config/imported ]
435     then
436     run_hwdetection
437     fi
438    
439     update_svcstatus $1
440     splash svc_started "$(basename $0)" 0
441     ;;
442 niro 148
443 niro 2 restart)
444     $0 start
445     ;;
446 niro 148
447 niro 2 *)
448     echo "Usage: $0 {start|restart}"
449     exit 1
450     ;;
451     esac

Properties

Name Value
svn:executable *