home *** CD-ROM | disk | FTP | other *** search
/ Enter 2006 October / Enter 10 2006.iso / boot / isolinux / initrd / in / usr / lib / setup / SeTXorg < prev    next >
Encoding:
Text File  |  2006-06-01  |  4.8 KB  |  148 lines

  1. #!/bin/sh
  2. TMP=/var/log/setup/tmp
  3. export TEXTDOMAIN=SeTXorg
  4. dialog --title "`gettext "X server configuration"`" \
  5. --yesno "`gettext "Would you like to autoconfigure your X server? \
  6. Your monitor will be ddc probed, it may cause hang on some hardware."`" \
  7. 7 70
  8. if [ ! $? = 0 ] ; then
  9. exit
  10. fi
  11. umask 022
  12. TMPFILE="/tmp/mkxorgconf-$$"
  13. MONITORTMP="$TMPFILE-monitor"
  14. DRIVERTMP="$TMPFILE-driver"
  15. rm -rf "$TMPFILE" "$MONITORTMP" "$DRIVERTMP"
  16.  
  17. MONITOR=""
  18. COMPLETE=""
  19. RC=""
  20.  
  21. MONITOR="$(ddcxinfo -monitor)"
  22. RC="$?"
  23. COMPLETE="`awk '/EndSection/{print}' <<EOF
  24. $MONITOR
  25. EOF`"
  26.  
  27. if [ "$RC" != "0" -o -z "$MONITOR" -o -z "$COMPLETE" ]; then
  28. MONITOR='
  29. Section "Monitor"
  30.     Identifier   "Monitor0"
  31.     ModelName    "Old Monitor (no DDC)"
  32. #    HorizSync    28.0 - 78.0 # Warning: This may fry very old Monitors
  33. #    HorizSync    28.0 - 96.0 # Warning: This may fry old Monitors
  34.     HorizSync    28.0 - 65.0 # Should be safe with monitors bought 5 years ago
  35.     VertRefresh  50.0 - 76.0 # Very conservative. May flicker.
  36. # These are some Modelines that happen to work on many systems
  37. # Especially the "1024x768" has been thoroughly tested, even on Laptops
  38.     Modeline "640x480"     25.175 640  664  760  800   480  491  493  525 #60Hz
  39.     Modeline "800x600"     40.12  800  848  968 1056   600  601  605  628 #60Hz
  40.     Modeline "1024x768"    85    1024 1056 1152 1360   768  784  787  823
  41.     Modeline "1152x864"    92    1152 1208 1368 1474   864  865  875  895
  42.     Modeline "1152x864"   110    1152 1240 1324 1552   864  864  876  908
  43.     Modeline "1152x864"   135    1152 1464 1592 1776   864  864  876  908
  44.     Modeline "1152x864"   137.65 1152 1184 1312 1536   864  866  885  902 -HSync -VSync
  45.     Modeline "1280x1024"   80    1280 1296 1512 1568  1024 1025 1037 1165 Interlace
  46.     Modeline "1280x1024"  110    1280 1328 1512 1712  1024 1025 1028 1054
  47.     Modeline "1280x1024"  126.5  1280 1312 1472 1696  1024 1032 1040 1068 -HSync -VSync
  48.     Modeline "1280x1024"  135    1280 1312 1456 1712  1024 1027 1030 1064
  49.     Modeline "1280x1024"  135    1280 1312 1416 1664  1024 1027 1030 1064
  50.     Modeline "1280x1024"  157.5  1280 1344 1504 1728  1024 1025 1028 1072 +HSync +VSync
  51.     Modeline "1280x1024"  181.75 1280 1312 1440 1696  1024 1031 1046 1072 -HSync -VSync
  52.     Modeline "1600x1200"  162    1600 1664 1856 2160  1200 1201 1204 1250 +HSync +VSync
  53.     Modeline "1600x1200"  189    1600 1664 1856 2160  1200 1201 1204 1250 -HSync -VSync
  54.     Modeline "1600x1200"  202.5  1600 1664 1856 2160  1200 1201 1204 1250 +HSync +VSync
  55.     Modeline "1600x1200"  220    1600 1616 1808 2080  1200 1204 1207 1244 +HSync +VSync
  56.     ModeLine "1800x1440"  230    1800 1896 2088 2392  1440 1441 1444 1490 +HSync +VSync
  57.     ModeLine "1800x1440"  250    1800 1896 2088 2392  1440 1441 1444 1490 +HSync +VSync
  58. EndSection
  59. '
  60. fi
  61.  
  62. # Extract values for display
  63. MODEL="`awk '/^[     ]*ModelName/{print;exit}'<<EOF
  64. $MONITOR
  65. EOF
  66. `"
  67.  
  68. MODEL="${MODEL#*\"}"
  69. MODEL="${MODEL%\"*}"
  70.  
  71. HREFRESH="`awk '/^[     ]*HorizSync/{print $2 $3 $4; exit}'<<EOF
  72. $MONITOR
  73. EOF
  74. `"
  75.  
  76. VREFRESH="`awk '/^[     ]*VertRefresh/{print $2 $3 $4; exit}'<<EOF
  77. $MONITOR
  78. EOF
  79. `"
  80.  
  81. # Build line of allowed modes
  82. ADDMODE=""
  83. MODES="$(ddcxinfo -modes $ADDMODE)"
  84. WHEEL=''
  85. DEPTH='DefaultDepth 24'
  86. # Write Monitor data now
  87. rm -rf "$MONITORTMP"
  88. echo "$MONITOR" >"$MONITORTMP"
  89.  
  90. (
  91. # Here we try to detect vga card and change "device" section in Xorg file.
  92. CARD="`lspci | grep VGA`"
  93.  
  94. if echo $CARD | grep -i nvidia 1>/dev/null 2>/dev/null ; then
  95. echo " Driver    \"nv\"" > "$DRIVERTMP"
  96. exit 0;
  97. fi
  98.  
  99. if echo $CARD | grep -i riva 1>/dev/null 2>/dev/null ; then
  100. echo " Driver    \"nv\"" > "$DRIVERTMP"
  101. exit 0;
  102. fi
  103.  
  104. if echo $CARD | grep -i geforce 1>/dev/null 2>/dev/null ; then
  105. echo " Driver    \"nv\"" > "$DRIVERTMP"
  106. exit 0;
  107. fi
  108. echo " Driver    \"vesa\"" > "$DRIVERTMP"
  109. )
  110. DRIVER=`cat $DRIVERTMP`
  111.  
  112. dialog --title "`gettext "Mouse setup"`" \
  113. --yesno "`gettext "Do you have mouse with ONE wheel?"`" \
  114. 6 50
  115. if [ ! $? = 0 ] ; then
  116. true
  117. else
  118. WHEEL=" Option \"ZaxisMapping\" \"4 5\""
  119. fi
  120. rm -rf /mnt/etc/X11/xorg.conf 
  121. sed -e '/@@MONITOR@@/r '"$MONITORTMP" \
  122.     -e 's|@@MONITOR@@||g' \
  123.     -e 's|@@MODES@@|'"$MODES"'|g' \
  124.     -e 's|@@WHEEL@@|'"$WHEEL"'|g' \
  125.     -e 's|@@DRIVER@@|'"$DRIVER"'|g' \
  126.     -e 's|@@DEPTH@@|'"$DEPTH"'|g;' \
  127.     /usr/lib/setup/xorg.conf.in > /mnt/etc/X11/xorg.conf
  128.  
  129.  
  130. rm -rf "$TMPFILE" "$MONITORTMP" 
  131. (
  132. rm -rf $TMP/tempmsg 
  133. # Print info about selected X-Server
  134. echo "`gettext "Detected hardware:"`" >> $TMP/tempmsg
  135. echo >> $TMP/tempmsg
  136. echo -n " `gettext "Monitor is"` ${MODEL:-Generic Monitor}" >> $TMP/tempmsg
  137. echo " H:${HREFRESH}kHz," >> $TMP/tempmsg 
  138. echo " V:${VREFRESH}Hz." >> $TMP/tempmsg 
  139. echo " `gettext "Using Modes"` ${MODES##Modes }. " >> $TMP/tempmsg
  140. echo " `gettext "Using"` `echo "${DEPTH}" | cut --delimiter=' ' --field=2` `gettext "bit color depth"`. " >> $TMP/tempmsg
  141. echo " `gettext "Using Xorg"` `echo "${DRIVER}" | cut --delimiter='"' --field=2`." >> $TMP/tempmsg
  142. dialog --title "`gettext "DONE"`" \
  143. --exit-label OK \
  144. --textbox $TMP/tempmsg 12 50
  145. rm -rf $TMP/tempmsg
  146. )
  147.  
  148.