--- /dev/null
+#!/bin/sh -e
+
+install_driver() {
+ DRIVER=$1
+ OPTS=$2
+
+ modprobe $DRIVER $OPTS
+ maj=$(awk "\$2==\"${DRIVER}\" { print \$1; }" /proc/devices)
+
+ rm -f /dev/${DRIVER}
+
+ mknod /dev/${DRIVER} c $maj 0
+ chmod 600 /dev/${DRIVER}
+}
+
+start() {
+ echo "mali: starting driver"
+
+ BITSPERPIXEL="$(fbset | awk '/geom/ {print $6}')"
+ YRES="$(fbset | awk '/geom/ {print $3}')"
+ # Set RGBA ordering to something the drivers like
+ if [ "$BITSPERPIXEL" = "32" ] ; then
+ fbset -rgba 8/16,8/8,8/0,8/24
+ fi
+ # Try to enable triple buffering when there's enough VRAM
+ fbset -vyres $(( YRES*3 ))
+
+ install_driver mali
+ install_driver ump
+}
+
+stop() {
+ echo "mali: stopping driver"
+
+ rmmod ump
+ rmmod mali
+}
+
+case "$1" in
+start)
+ start
+;;
+stop)
+ stop
+;;
+restart)
+ stop
+ start
+;;
+*)
+ echo "mali: Please use start, stop, or restart."
+ exit 1
+;;
+esac