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