summaryrefslogtreecommitdiffstats
path: root/recipes/xserver-kdrive-common/xserver-kdrive-common/Xserver
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/xserver-kdrive-common/xserver-kdrive-common/Xserver')
-rw-r--r--recipes/xserver-kdrive-common/xserver-kdrive-common/Xserver155
1 files changed, 155 insertions, 0 deletions
diff --git a/recipes/xserver-kdrive-common/xserver-kdrive-common/Xserver b/recipes/xserver-kdrive-common/xserver-kdrive-common/Xserver
new file mode 100644
index 0000000000..76a09b51dc
--- /dev/null
+++ b/recipes/xserver-kdrive-common/xserver-kdrive-common/Xserver
@@ -0,0 +1,155 @@
+#!/bin/sh
+#
+
+# note xinit needs full server path
+if [ -f /usr/bin/Xfbdev ]; then
+ XSERVER=/usr/bin/Xfbdev
+fi
+if [ -f /usr/bin/Xepson ]; then
+ XSERVER=/usr/bin/Xepson
+fi
+if [ -f /usr/bin/Xorg ]; then
+ XSERVER=/usr/bin/Xorg
+fi
+
+. /etc/profile
+
+fallback_screen_arg() {
+ geom=`fbset | grep geometry`
+ w=`echo $geom | awk '{ print $2 }'`
+ h=`echo $geom | awk '{ print $3 }'`
+ b=`echo $geom | awk '{ print $6 }'`
+ echo -n "${w}x${h}x${b}"
+}
+
+screen_width() {
+ geom=`fbset | grep geometry`
+ w=`echo $geom | awk '{ print $2 }'`
+ echo -n "${w}"
+}
+
+
+module_id() {
+ ## used to read from assets, but sometimes assets is corrupted
+ # grep "Module ID" /proc/hal/assets | sed "s/.*://"
+ ## used to read from /proc/hal/model, but that is removed in 2.6
+ # echo ' iPAQ' `cat /proc/hal/model`
+ awk 'BEGIN { FS=": " } /Hardware/ { print $2 } ' </proc/cpuinfo
+}
+
+export USER=root
+
+SCREEN_SIZE=`fallback_screen_arg`
+
+ARGS=" -br -pn"
+
+# use ucb 1x00 touchscreen if present
+if [ -z "$TSLIB_TSDEVICE" ] && [ -e /dev/touchscreen/ucb1x00 ]; then
+ ARGS="$ARGS -mouse /dev/touchscreen/ucb1x00"
+fi
+
+# use usb mouse if present
+# Xorg doesn't support "-mouse" option, and uses /dev/input/mice automatically
+if [ -z "$TSLIB_TSDEVICE" ] && [ -e /dev/input/mice ] && [ "$XSERVER" != "Xorg" ]; then
+ ARGS="$ARGS -mouse /dev/input/mice"
+fi
+
+# start off server in conventional location.
+case `module_id` in
+ "AML M8050")
+ ARGS="$ARGS -dpi 100 -screen 320x240@270" ;;
+ "HP iPAQ H3100" | "HP iPAQ H3800")
+ ARGS="$ARGS -dpi 100 -rgba vrgb -screen ${SCREEN_SIZE}@90" ;;
+ "HP iPAQ H3600" | "HP iPAQ H3700" | "HP iPAQ H3900")
+ ARGS="$ARGS -dpi 100 -rgba vbgr -screen ${SCREEN_SIZE}@270" ;;
+ "HP iPAQ H5400" | "HP iPAQ H2200")
+ ARGS="$ARGS -dpi 100 -rgba rgb" ;;
+ "HP iPAQ HX4700")
+ ARGS="$ARGS -dpi 200"
+ IMAGEON="w3220"
+ ;;
+ "Ramses")
+ # What is this "vt2" in aid of?
+ ARGS="$ARGS -dpi 100 -rgba vrgb -screen ${SCREEN_SIZE}@90 vt2" ;;
+ # both 'Sharp-Collie' and just 'Collie' have been reported
+ *Poodle)
+ ARGS="$ARGS -dpi 100 -rgba vrgb -screen ${SCREEN_SIZE}@270" ;;
+ *Collie)
+ ARGS="$ARGS -dpi 100 -rgba vrgb -screen ${SCREEN_SIZE}@270" ;;
+ "SHARP Shepherd" | "SHARP Husky" | "SHARP Corgi")
+ if [ `screen_width` -gt 330 ] ; then
+ DPI=200
+ else
+ DPI=100
+ fi
+ ARGS="$ARGS -dpi ${DPI} -rgba rgb"
+ IMAGEON="w100"
+ ;;
+ "SHARP Spitz" | "SHARP Akita" | "SHARP Borzoi")
+ ARGS="$ARGS -dpi 200 -rgba rgb -screen ${SCREEN_SIZE}@270" ;;
+ "Simpad")
+ ARGS="$ARGS -dpi 100 -rgba rgb" ;;
+ "Generic OMAP1510/1610/1710")
+ ARGS="$ARGS -dpi 220 -mouse /dev/input/event0" ;;
+ "Cellon C8000 Board")
+ ARGS="$ARGS -dpi 100 -screen ${SCREEN_SIZE},10,1" ;;
+ "HTC Magician")
+ ARGS="$ARGS -dpi 142" ;;
+ "HTC Universal")
+ ARGS="$ARGS -dpi 225 -screen ${SCREEN_SIZE}@270" ;;
+ "ARM-IntegratorCP" | "ARM-Versatile PB")
+ ARGS="$ARGS -rgba vrgb" ;;
+ "Compulab CM-x270")
+ modprobe mbxfb
+ ARGS="$ARGS -fb /dev/fb1" ;;
+ "GTA01")
+ if [ `screen_width` -gt 330 ] ; then
+ DPI=285
+ else
+ DPI=140
+ fi
+ ARGS="$ARGS -dpi ${DPI} -screen ${SCREEN_SIZE} -mouse tslib" ;;
+ "GTA02")
+ if [ `screen_width` -gt 330 ] ; then
+ DPI=285
+ else
+ DPI=140
+ fi
+ ARGS="$ARGS -dpi ${DPI} -screen ${SCREEN_SIZE} -mouse tslib"
+ XSERVER=/usr/bin/Xglamo
+ ;;
+ "Nokia N770")
+ ARGS="$ARGS -dpi 225 -screen ${SCREEN_SIZE} -mouse tslib"
+ XSERVER=/usr/bin/Xomap ;;
+ "Nokia N800")
+ ARGS="$ARGS -dpi 225 -screen ${SCREEN_SIZE} -mouse tslib"
+ XSERVER=/usr/bin/Xomap ;;
+ "Palm Treo 650")
+ ARGS="$ARGS -dpi 181 -screen 320x320 -hide-cursor" ;;
+ "Motorola Ezx Platform")
+ ARGS="$ARGS -dpi 170 -screen ${SCREEN_SIZE}" ;;
+ "Glofiish M800")
+ ARGS="$ARGS -dpi 285 -screen ${SCREEN_SIZE} -mouse tslib -hide-cursor" ;;
+ "Freescale MX21ADS")
+ # That's what /proc/cpuinfo shows as hardware on the chumby
+ ARGS="$ARGS -dpi 121 -screen 320x240 -hide-cursor -mouse tslib" ;;
+ *)
+ # It is a device we do not know about, in which case we force
+ # kdrive to use the current framebuffer geometry -- otherwise
+ # it will default to trying to achieve 1024x768
+ S=${SCREEN_SIZE}
+ ARGS="$ARGS -screen $S" ;;
+esac
+
+if [ ! -z "$IMAGEON" ]; then
+ if [ -f /usr/bin/Xw100 ]; then
+ XSERVER=/usr/bin/Xw100
+ fi
+ if [ -f /usr/bin/Ximageon ]; then
+ XSERVER=/usr/bin/Ximageon
+ fi
+fi
+
+DISPLAY=':0'
+
+exec xinit /etc/X11/Xsession -- $XSERVER $DISPLAY $ARGS $* >/tmp/x.log 2>&1