Contents of /tags/init-0_3_3-r4/magellan-initscripts/etc/rc.d/init.d/hwdetect
Parent Directory | Revision Log
Revision 18 -
(show annotations)
(download)
Tue Dec 14 01:17:23 2004 UTC (19 years, 9 months ago) by (unknown author)
Original Path: branches/init-0_3_3-r1/magellan-initscripts/etc/rc.d/init.d/hwdetect
File size: 13472 byte(s)
Tue Dec 14 01:17:23 2004 UTC (19 years, 9 months ago) by (unknown author)
Original Path: branches/init-0_3_3-r1/magellan-initscripts/etc/rc.d/init.d/hwdetect
File size: 13472 byte(s)
This commit was manufactured by cvs2svn to create branch 'init-0_3_3-r1'.
1 | #!/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 | echo " Unkown xserver. aborting." |
32 | 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 | # 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 | |
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 | # vmware module has some probs with fb consoles |
280 | # very dirty glyphes appear, so we use vesa instead |
281 | [ "${XMODULE}" = "vmware" ] && XMODULE="vesa" |
282 | 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 | #echo ' Monitor "mon0"' >> ${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 | #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 | * |