aboutsummaryrefslogtreecommitdiffstats
path: root/packages/xserver-kdrive-common/xserver-kdrive-common/Xserver
blob: cd58624ce07b171b93aa8e9651ee75f3763888e2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/bin/sh
#

# note xinit needs full server path
XSERVER=/usr/bin/Xipaq
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
if [ -f /usr/bin/Xomap ]; then
  XSERVER=/usr/bin/Xomap
fi
if [ -f /usr/bin/Xw100 ]; then
  XSERVER=Xw100
fi
if [ -f /usr/bin/Ximageon ]; then
   XSERVER=Ximageon
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}"
}

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

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
        "HP iPAQ H3100" | "HP iPAQ H3800")
                ARGS="$ARGS -dpi 100 -rgba vrgb -screen 320x240@90" ;;
        "HP iPAQ H3600" | "HP iPAQ H3700" | "HP iPAQ H3900")
                ARGS="$ARGS -dpi 100 -rgba vbgr -screen 320x240@270" ;;
        "HP iPAQ H5400" | "HP iPAQ H2200")
                ARGS="$ARGS -dpi 100 -rgba rgb" ;;
        "HP iPAQ HX4700")
                ARGS="$ARGS -dpi 200" ;;
        "Ramses")
                # What is this "vt2" in aid of?
                ARGS="$ARGS -dpi 100 -rgba vrgb -screen 320x240@90 vt2" ;;
        # both 'Sharp-Collie' and just 'Collie' have been reported
        *Poodle)
                ARGS="$ARGS -dpi 100 -rgba vrgb -screen 320x240@270" ;;
        *Collie)
                ARGS="$ARGS -dpi 100 -rgba vrgb -screen 320x240@270" ;;
        "SHARP Shepherd" | "SHARP Husky" | "SHARP Corgi")
                ARGS="$ARGS -dpi 200 -rgba rgb" ;;
        "SHARP Spitz" | "SHARP Akita" | "SHARP Borzoi")
                ARGS="$ARGS -dpi 200 -rgba rgb -screen 480x640@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 240x320,10,1" ;;
        "HTC Magician")
                ARGS="$ARGS -dpi 142" ;;
        "HTC Universal")
                ARGS="$ARGS -dpi 225 -screen 480x640@270" ;;
        "ARM-IntegratorCP" | "ARM-Versatile PB")
                ARGS="$ARGS -rgba vrgb" ;;
        "Compulab CM-x270")
                modprobe mbxfb
	            ARGS="$ARGS -fb /dev/fb1" ;;
        "GTA01" | "GTA02")
                ARGS="$ARGS -dpi 285 -screen 480x640" ;;
        "Nokia N800")
                ARGS="$ARGS -dpi 225 -screen 800x480x16 -mouse tslib" ;;
        "Motorola Ezx Platform")
                ARGS="$ARGS -dpi 170 -screen 240x320" ;;
	*)
		# 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=`fallback_screen_arg`
		ARGS="$ARGS -screen $S" ;;
esac

DISPLAY=':0'

exec xinit /etc/X11/Xsession -- $XSERVER $DISPLAY $ARGS $*