Magellan Linux

Contents of /branches/unlabeled-1.1.1/magellan-initscripts/etc/rc.d/init.d/hwdetect

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2 - (show annotations) (download)
Mon Dec 13 22:52:07 2004 UTC (19 years, 3 months ago) by niro
File size: 12833 byte(s)
imported.

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
253 #vga
254 #to be safe
255 local XSERVER XMODULE XDESC
256
257 #get config
258 [ -f /etc/sysconfig/hwsetup/xserver ] && source /etc/sysconfig/hwsetup/xserver
259
260 echo '' >> ${xfconfig}
261 echo 'Section "Device"' >> ${xfconfig}
262 echo ' Identifier "vga0"' >> ${xfconfig}
263
264 if [ -n "${XMODULE}" ]
265 then
266 echo -e ${COLOREDSTAR}"Video: ${XDESC}"
267 echo -e ${COLOREDSTAR}"Video module: ${XMODULE}"
268 echo " Driver \"${XMODULE}\"" >> ${xfconfig}
269 else
270 echo -e ${COLOREDSTAR}"Video unknown, trying to use the standard 'vesa' module ..."
271 echo ' Driver "vesa"' >> ${xfconfig}
272 fi
273
274 #vnc server options
275 if [ "${HAS_VNC}" = "yes" ]
276 then
277 echo '' >> ${xfconfig}
278 echo ' # rfb options' >> ${xfconfig}
279 echo ' Option "rfbauth" "/root/.vnc/passwd"' >> ${xfconfig}
280 echo ' Option "rfbport" "5900"' >> ${xfconfig}
281 echo ' #Option "nevershared"' >> ${xfconfig}
282 echo ' Option "alwaysshared"' >> ${xfconfig}
283 echo ' Option "dontdisconnect"' >> ${xfconfig}
284 echo ' Option "httpdir" "/usr/share/vnc/classes"' >> ${xfconfig}
285 echo ' Option "httpport" "5800"' >> ${xfconfig}
286 echo ' # Option "useraccept"' >> ${xfconfig}
287 echo ' Option "usevnc"' >> ${xfconfig}
288 echo ' # Option "localhost"' >> ${xfconfig}
289 echo ' # Option "interface" "192.168.0.1"' >> ${xfconfig}
290 echo ' # Option "viewonly"' >> ${xfconfig}
291 echo ' # Option "loginauth"' >> ${xfconfig}
292 echo '' >> ${xfconfig}
293 fi
294
295 echo 'EndSection' >> ${xfconfig}
296 #to be safe
297 unset XSERVER XMODULE XDESC
298
299
300 #screens
301 echo '' >> ${xfconfig}
302 echo 'Section "Screen"' >> ${xfconfig}
303 echo ' Identifier "Screen 1"' >> ${xfconfig}
304 echo ' Device "vga0"' >> ${xfconfig}
305 echo ' Monitor "mon0"' >> ${xfconfig}
306 echo ' DefaultDepth 16' >> ${xfconfig}
307 echo ' Subsection "Display"' >> ${xfconfig}
308 echo ' Depth 8' >> ${xfconfig}
309 echo ' Modes "1024x768"' >> ${xfconfig}
310 echo ' ViewPort 0 0' >> ${xfconfig}
311 echo ' EndSubsection' >> ${xfconfig}
312 echo ' Subsection "Display"' >> ${xfconfig}
313 echo ' Depth 16' >> ${xfconfig}
314 echo ' Modes "1024x768"' >> ${xfconfig}
315 echo ' ViewPort 0 0' >> ${xfconfig}
316 echo ' EndSubsection' >> ${xfconfig}
317 echo ' Subsection "Display"' >> ${xfconfig}
318 echo ' Depth 24' >> ${xfconfig}
319 echo ' Modes "1024x768"' >> ${xfconfig}
320 echo ' ViewPort 0 0' >> ${xfconfig}
321 echo ' EndSubsection' >> ${xfconfig}
322 echo 'EndSection' >> ${xfconfig}
323
324
325 #server layout
326 echo '' >> ${xfconfig}
327 echo 'Section "ServerLayout"' >> ${xfconfig}
328 echo ' Identifier "Simple Layout"' >> ${xfconfig}
329 echo ' Screen "Screen 1"' >> ${xfconfig}
330 echo ' InputDevice "Mouse1" "CorePointer"' >> ${xfconfig}
331 echo ' InputDevice "Keyboard1" "CoreKeyboard"' >> ${xfconfig}
332
333 #load vnc keyboard && mouse
334 if [ "${HAS_VNC}" = "yes" ]
335 then
336 echo ' InputDevice "vncMouse" "ExtraPointer"' >> ${xfconfig}
337 echo ' InputDevice "vncKeyboard" "ExtraKeyboard"' >> ${xfconfig}
338 fi
339
340 echo 'EndSection' >> ${xfconfig}
341
342
343 #dri (here disabled, use default of xserver)
344 echo '' >> ${xfconfig}
345 echo '# Section "DRI"' >> ${xfconfig}
346 echo '# Mode 0666' >> ${xfconfig}
347 echo '# EndSection' >> ${xfconfig}
348 }
349
350
351 run_hwdetection() {
352 echo -e ${COLOREDSTAR}"Hardware Autodetection started ..."
353 echo -e ${COLOREDSTAR}"Prozessor: $(cat /proc/cpuinfo |grep "model name" | sed -e 's:model\ name*.*\: ::')"
354
355
356 #cleaning up old data-crap
357 if [ -e /etc/sysconfig/hwsetup ]
358 then
359 echo -e ${COLOREDSTAR}"Cleaning up old data ..."
360 rm -f /etc/sysconfig/hwsetup/*
361 fi
362
363 echo -en "${COLOREDSTAR}";hwsetup -p > /dev/null
364
365 #clean up modules
366 if [ -f /etc/modules.autoload.d/kernel-$(kernel_major_version) ]
367 then
368 echo -e ${COLOREDSTAR}"Cleaning up /etc/modules.autoload.d/kernel-$(kernel_major_version) ..."
369 echo > /etc/modules.autoload.d/kernel-$(kernel_major_version)
370 evaluate_retval
371 fi
372
373 #load module for parallel printing if exists
374 if [ -e /lib/modules/`uname -r`/kernel/drivers/char/lp.o ]
375 then
376 echo "lp" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
377 fi
378
379 #get what hwsetup has found
380 if [ -f /etc/sysconfig/hwsetup/knoppix ]
381 then
382 source /etc/sysconfig/hwsetup/knoppix
383 fi
384
385 #network setup (dhcp)
386 #for i in $(cat /proc/net/dev|grep eth.|cut -d ':' -f1)
387 #do
388 # echo -e ${COLOREDSTAR}"Network ${i}: ${NETCARD_FULLNAME}"
389 if [ -n "${NETCARD_DRIVER}" ]
390 then
391 echo -e ${COLOREDSTAR}"Network eth0: ${NETCARD_FULLNAME}"
392 echo -e ${COLOREDSTAR}"Network module: ${NETCARD_DRIVER}"
393 echo "${NETCARD_DRIVER}" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
394 evaluate_retval
395 fi
396 #done
397
398 #sound setup
399 if [ -n "${SOUND_DRIVER}" ]
400 then
401 echo -e ${COLOREDSTAR}"Sound (${SOUND_FULLNAME}) found"
402 echo -e ${COLOREDSTAR}"Sound module: ${SOUND_DRIVER}"
403 echo "${SOUND_DRIVER}" >> /etc/modules.autoload.d/kernel-$(kernel_major_version)
404 evaluate_retval
405 fi
406
407 #write default xfree-config
408 echo -e ${COLOREDSTAR}"Generating x11 configuration ..."
409 write_x11_config
410 evaluate_retval
411 }
412
413 ########### main part starts here ##############
414
415 source /etc/sysconfig/rc
416 source $rc_functions
417
418 case $1 in
419 start)
420 #we wouldn't start hwdetection if settings where imported (alx-only)
421 if [ ! -e /etc/alx-config/imported ]
422 then
423 run_hwdetection
424 fi
425
426 update_svcstatus $1
427 splash svc_started "$(basename $0)" 0
428 ;;
429
430 restart)
431 $0 start
432 ;;
433
434 *)
435 echo "Usage: $0 {start|restart}"
436 exit 1
437 ;;
438 esac

Properties

Name Value
svn:executable *