Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 221 - (show 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 #!/bin/bash
2 # $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
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
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 echo " Unkown xserver. aborting."
32 exit 1
33 ;;
34 esac
35
36 # have we vnc support ?
37 if [ -f /usr/X11R6/lib/modules/vnc.so ] || \
38 [ -f /usr/X11R6/lib/modules/extensions/vnc.so ]
39 then
40 HAS_VNC="yes"
41 else
42 HAS_VNC="no"
43 fi
44
45 # show which xserver we going to 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
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 # xserver 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
247 # using knoppix ddcxinfo
248 if [ -x "/sbin/ddcxinfo-knoppix" ]
249 then
250 ddcxinfo-knoppix -monitor >> ${xfconfig}
251 else
252 # some conservative default values
253 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
261 # vga
262 # to be safe
263 local XSERVER XMODULE XDESC
264
265 # get config
266 [ -f /etc/sysconfig/hwsetup/xserver ] && source /etc/sysconfig/hwsetup/xserver
267
268 echo '' >> ${xfconfig}
269 echo 'Section "Device"' >> ${xfconfig}
270 echo ' Identifier "vga0"' >> ${xfconfig}
271
272 if [ -n "${XMODULE}" ]
273 then
274 # vmware module has some probs with fb consoles
275 # very dirty glyphes appear, so we use vesa instead
276 [[ ${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 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 "Monitor0"' >> ${xfconfig}
323 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 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 # sound setup
412 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 # write default xfree-config
421 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 # we wouldn't start hwdetection if settings where imported (alx-only)
434 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
443 restart)
444 $0 start
445 ;;
446
447 *)
448 echo "Usage: $0 {start|restart}"
449 exit 1
450 ;;
451 esac

Properties

Name Value
svn:executable *