summaryrefslogtreecommitdiffstats
path: root/initramfs
diff options
context:
space:
mode:
authorMichael Janczyk2008-06-02 15:34:03 +0200
committerMichael Janczyk2008-06-02 15:34:03 +0200
commit83c1e07afcf5f4173c28ceee77875a3a96f223ff (patch)
treeee184ade2350e0a763389eee367469174d1ec20b /initramfs
parent* bumped DB-schema version in order to cleanup potential problems after (diff)
downloadcore-83c1e07afcf5f4173c28ceee77875a3a96f223ff.tar.gz
core-83c1e07afcf5f4173c28ceee77875a3a96f223ff.tar.xz
core-83c1e07afcf5f4173c28ceee77875a3a96f223ff.zip
Maybe we should keep start_x for a while, since we need a configuration for terminals...
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1833 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'initramfs')
-rwxr-xr-xinitramfs/initrd-stuff/bin/servconfig96
1 files changed, 96 insertions, 0 deletions
diff --git a/initramfs/initrd-stuff/bin/servconfig b/initramfs/initrd-stuff/bin/servconfig
index 48b65a0a..824f9870 100755
--- a/initramfs/initrd-stuff/bin/servconfig
+++ b/initramfs/initrd-stuff/bin/servconfig
@@ -322,6 +322,102 @@ if [ -n "$scratch" -a -z "$tmpisdisk" ] ; then
esac
fi
+#############################################################################
+# X11/GUI stuff
+if [ "x$start_x" != "xno" ] ; then
+ # creating directories commonly needed for X11 in all distros
+ # rest should be done via config_x11 function (distro specific)
+ for i in /var/lib/xkb/compiled \
+ /etc/X11/xdm \
+ /etc/X11/sessions \
+ /var/X11R6/bin \
+ /var/run/xdmctl \
+ /tmp/.ICE-unix \
+ /tmp/.X11-unix ; do testmkd /mnt/$i; done
+ chmod 1777 /mnt/tmp/.ICE-unix /mnt/tmp/.X11-unix
+ chown 0:0 /mnt/tmp/.ICE-unix /mnt/tmp/.X11-unix
+ echo "# file emtied by $0 during initramfs" > /mnt/etc/X11/xdm/Xservers
+ # define additional sessions offered to the user (via dhcp/ldap config)
+ # descsession -> deprecated by new vmware integration concept
+ # write available X display manager to /etc/X11/xdm/Xaccess
+ [ -n "$x_display_manager" ] && \
+ echo -e "# /etc/X11/xdm/Xaccess - file generated by $0: \
+$date\n*\n%hostlist\t$x_display_manager\n*\t\tCHOOSER %hostlist"\
+ >/mnt/etc/X11/xdm/Xaccess
+
+ # define type of X session
+ dsx="no"
+ case "$start_x" in
+ yes|YES|direct|DIRECT|query|QUERY)
+ # direct connection onto the own displaymanager, which
+ # should be enabled then
+# [ "x$start_xdmcp" = "xno" ] && $start_xdmcp="yes"
+ init=""
+ dsx="yes"
+ xdmcp="false"
+ echo -e "# /etc/X11/Xservers - file generated by \
+$0: $date\n:0 local X :0 vt07\n" >/mnt/etc/X11/xdm/Xservers
+ ;;
+ broadcast|BROADCAST)
+ # the client will XDMCP broadcast and choose first available
+ # X11 server
+ [ "x$start_xdmcp" = "xgdm" ] || \
+ init="7:5:respawn:${D_XORGBIN} vt7 -quiet -broadcast"
+ ;;
+ indirect|INDIRECT)
+ # the client will try to XDMCP connect list of X11 servers
+ if [ "x$start_xdmcp" = "xgdm" ] ; then
+ init=""
+ else
+ init="7:5:respawn:${D_XORGBIN} vt7 -quiet -indirect $host_name"
+ fi
+ [ "x$start_xdmcp" = "xno" ] && start_xdmcp="yes"
+ xdmcp="true"
+ ;;
+ *)
+ # no display manager needed in kiosk mode
+ # in this mode you have to provide the type of X session to start
+ [ x$start_xdmcp != "x" ] || start_xdmcp="no";
+ init="7:5:respawn:/var/X11R6/bin/kiosk /dev/tty7"
+ # nobody can halt pc
+ echo 'nobody ALL=NOPASSWD:/sbin/halt, /sbin/shutdown' >>/mnt/etc/sudoers
+ echo -e "#!/bin/sh\n# /var/X11R6/bin/kiosk - file generated by $0: $date
+ while ps aux|grep -i kiosk|grep -v \"grep\" &>/dev/null; do
+ test -f /var/run/kiosk || break; sleep 3;
+ done
+ touch /var/run/kiosk
+ for((i=0;\$i<=120;i=\$((\$i+1)))); do
+ [ -e /var/run/resmgr.pid ] && break
+ [ \$i = 120 ] && exit 1
+ sleep 1
+ done
+ resmgr login nobody tty8 \\
+ && resmgr grant nobody desktop \\
+ && chown -R nobody:nogroup /var/lib/nobody \\
+ && (su -c '(sleep 10; amixer -q sset Master 28 unmute; \\
+ amixer -q sset PCM 28 unmute) &
+ xinit /var/X11R6/bin/startgui $start_x \\
+ -- vt7 -quiet' -l nobody &>/dev/null)
+ rm /var/run/kiosk
+ resmgr revoke nobody
+ resmgr logout tty7
+ killall X" >/mnt/var/X11R6/bin/kiosk
+ # early start of kiosk session
+ echo -e "\t# kiosk start added by $0\n\t\
+/var/X11R6/bin/kiosk &>/dev/null &" >>/mnt/etc/${D_INITDIR}/boot.slx
+ cp /etc/startgui /mnt/var/X11R6/bin
+ chmod a+x /mnt/var/X11R6/bin/kiosk /mnt/var/X11R6/bin/startgui
+ rm /mnt/var/run/kiosk 2>/dev/null
+ ;;
+ esac
+ echo -e "# entry made by $0 $date\n$init" >> /mnt/etc/inittab
+ # most probably not needed any longer
+ if [ -n ${D_XORGBIN} ] ; then
+ testmkd /mnt/var/X11R6/bin
+ ln -sf ${D_XORGBIN} /mnt/var/X11R6/bin/X
+ fi
+fi
+
# script run timer
[ $DEBUGLEVEL -eq 8 ] && echo "** SW setup finished at $(sysup)"