summaryrefslogtreecommitdiffstats
path: root/initramfs
diff options
context:
space:
mode:
authorDirk von Suchodoletz2007-12-05 22:25:18 +0100
committerDirk von Suchodoletz2007-12-05 22:25:18 +0100
commit2c740d6397ea127832b94abff9522eac7df68ec8 (patch)
treec08ad7c6d2dc0fb9239faa88eda44bcfd4f50dc9 /initramfs
parentA little cleanup of tools. Source and version of ddcprobe should be (diff)
downloadcore-2c740d6397ea127832b94abff9522eac7df68ec8.tar.gz
core-2c740d6397ea127832b94abff9522eac7df68ec8.tar.xz
core-2c740d6397ea127832b94abff9522eac7df68ec8.zip
Starting new configuration line for Xorg setup ...
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1421 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'initramfs')
-rwxr-xr-xinitramfs/initrd-stuff/bin/xconfig172
1 files changed, 172 insertions, 0 deletions
diff --git a/initramfs/initrd-stuff/bin/xconfig b/initramfs/initrd-stuff/bin/xconfig
new file mode 100755
index 00000000..dce2a68f
--- /dev/null
+++ b/initramfs/initrd-stuff/bin/xconfig
@@ -0,0 +1,172 @@
+#!/bin/ash
+iscrt () {
+local dim=$1
+local year=$2
+local crt="CRT Generic"
+# sub 17" displays
+if [ $dim -lt 750 ] ; then
+ # modern crt should have a size of 17"+
+ if [ $year -gt 1998 ] ; then crt="TFT 4:3 <17inch" ; fi
+# 17" crt displays, little bit smaller than tfts
+elif [ $dim -lt 900 ] ; then
+ crt="CRT 17inch"
+ echo "1280x1024\n1152x864" > /tmp/res
+# 19" crt / sub 19" tft
+elif [ $dim -lt 1000 ] ; then
+ if [ $year -lt 2001 ] ; then
+ crt="CRT 19inch"
+ echo "1400x1050\n1280x1024\n1152x864" > /tmp/res
+ else
+ crt="TFT 4:3 17inch"
+ fi
+# 18/19" tft displays (available after 2001)
+elif [ $dim -lt 1200 ] ; then
+ if [ $year -ge 2002 ] ; then
+ crt="TFT 4:3 18+inch"
+ else
+ crt="CRT 20inch"
+ echo "1400x1050\n1280x1024\n1152x864" > /tmp/res
+ fi
+# sub 22" displays are crts if older than 2004 :)
+elif [ $dim -lt 1300 ] ; then
+ if [ $year -ge 2004 ] ; then
+ crt="TFT 4:3 19+inch"
+ else
+ crt="CRT 20+inch"
+ echo "1600x1200\n1400x1050\n1280x1024\n1152x864" > /tmp/res
+ fi
+# any bigger display is most probably a tft
+elif [ $year -ge 2004 ] ; then
+ crt="TFT 4:3 22+inch"
+fi
+echo "$crt"
+}
+xfc=xorg
+echo -e '
+Section "Files"
+EndSection
+Section "Module"
+ Load "i2c"
+ Load "bitmap"
+ Load "ddc"
+ Load "extmod"
+ Load "freetype"
+ Load "int10"
+ Load "vbe"
+EndSection
+Section "InputDevice"
+ Identifier "Generic Keyboard"
+ Driver "kbd"
+ Option "CoreKeyboard"
+ Option "XkbRules" "xorg"
+ Option "XkbModel" "pc105"
+ Option "XkbLayout" "de"
+ Option "XkbVariant" "nodeadkeys"
+EndSection
+Section "InputDevice"
+ Identifier "Generic Mouse"
+ Driver "mouse"
+ Option "CorePointer"
+ Option "Device" "/dev/input/mice"
+ Option "Protocol" "ImPS/2"
+ Option "ZAxisMapping" "4 5"
+ Option "Emulate3Buttons" "true"
+EndSection
+Section "InputDevice"
+ Driver "wacom"
+ Identifier "stylus"
+ Option "Device" "/dev/input/wacom"
+ Option "Type" "stylus"
+ Option "ForceDevice" "ISDV4" # Tablet PC ONLY
+EndSection
+Section "InputDevice"
+ Driver "wacom"
+ Identifier "eraser"
+ Option "Device" "/dev/input/wacom"
+ Option "Type" "eraser"
+ Option "ForceDevice" "ISDV4" # Tablet PC ONLY
+EndSection
+Section "InputDevice"
+ Driver "wacom"
+ Identifier "cursor"
+ Option "Device" "/dev/input/wacom"
+ Option "Type" "cursor"
+ Option "ForceDevice" "ISDV4" # Tablet PC ONLY
+EndSection
+Section "Device"
+ Identifier "Generic Video Card"
+ Driver "vesa"
+EndSection
+Section "Monitor"
+ Identifier "Generic Display"
+ Option "DPMS"
+EndSection
+Section "Screen"
+ Identifier "Default Screen"
+ Device "Generic Video Card"
+ Monitor "Generic Display"
+ DefaultDepth 24
+ SubSection "Display"
+ Depth 24
+ Modes "1024x768" "800x600"
+ EndSubSection
+EndSection
+Section "ServerLayout"
+ Identifier "Default Layout"
+ Screen "Default Screen"
+ InputDevice "Generic Keyboard"
+ InputDevice "Configured Mouse"
+ InputDevice "stylus" "SendCoreEvents"
+ InputDevice "cursor" "SendCoreEvents"
+ InputDevice "eraser" "SendCoreEvents"
+EndSection
+Section "DRI"
+ Mode 0666
+EndSection
+'> /tmp/$xfc
+
+rm /tmp/res
+cat $1|sed "/mode: /d"|while read line ; do
+ case $line in
+ ctiming*|dtiming*)
+ Res=$(echo $line|sed "s/.*:\ //;s/@.*//")
+ Width=${Res%%x*}
+ Height=${Res##*x}
+ # we need exact resolutions for tft displays only
+ [ "${IsCrt%% *}" = "TFT" -a $((${Width}00 / ${Height})) -ge 125 ] && echo $Res >> /tmp/res
+ [ "x${VendorName}" = "x" ] && VendorName="No vendor string detected"
+ grep ModelName /tmp/$xfc 2>&1 >/dev/null || \
+ sed -e "/Section \"Monitor\"/a\ \ ModelName \"Display - ${IsCrt}\"" \
+ -e "/Section \"Device\"/a\ \ VendorName \"${VendorName}\"" \
+ -i /tmp/$xfc
+ ;;
+ monitorname*|monitorid*)
+ [ "x${line##monitor*:}" = "x" ] || sed "s/Display - /${line##monitor*: } - /" -i /tmp/$xfc
+ ;;
+ product*)
+ [ "$line" != "product:" ] && \
+ sed "/Section \"Device\"/a\ \ BoardName \"${line##product: }\"" \
+ -i /tmp/$xfc
+ ;;
+ oem*|vendor*)
+ [ "x${line##?e*:}" = "x" ] || VendorName="${line##?e*: }"
+ ;;
+ manufacture*)
+ Year=${line##* }
+ ;;
+ screensize*)
+ Dim=${line##screensize: }
+ Width=${Dim%% *}
+ Height=${Dim##* }
+ Dim=$(($Width * $Height))
+ # check for geometry - no crt if no 4:3 ratio
+ if [ $((${Width}00 / $((${Height} + 1 )))) -lt 140 ] ; then
+ IsCrt="$(iscrt $Dim $Year)"
+ else
+ IsCrt="TFT WideScreen"
+ fi
+ ;;
+ esac
+done
+for line in `sort -run /tmp/res` ; do Modes="$Modes \"$line\""; done
+sed "s/Modes \"/Modes ${Modes} \"/" -i /tmp/$xfc