summaryrefslogtreecommitdiffstats
path: root/os-plugins/plugins/xserver/XX_xserver.sh
diff options
context:
space:
mode:
Diffstat (limited to 'os-plugins/plugins/xserver/XX_xserver.sh')
-rw-r--r--os-plugins/plugins/xserver/XX_xserver.sh351
1 files changed, 0 insertions, 351 deletions
diff --git a/os-plugins/plugins/xserver/XX_xserver.sh b/os-plugins/plugins/xserver/XX_xserver.sh
deleted file mode 100644
index 1b757901..00000000
--- a/os-plugins/plugins/xserver/XX_xserver.sh
+++ /dev/null
@@ -1,351 +0,0 @@
-# Copyright (c) 2008 - RZ Uni Freiburg
-# Copyright (c) 2008..2010 - OpenSLX GmbH
-#
-# This program/file is free software distributed under the GPL version 2.
-# See http://openslx.org/COPYING
-#
-# If you have any feedback please consult http://openslx.org/feedback and
-# send your feedback to feedback@openslx.org
-#
-# General information about OpenSLX can be found at http://openslx.org
-#
-# stage3 part of 'xserver' plugin - the runlevel script setting up the Xorg
-# configuration and checking for 3D capabilities and non-gpl drivers
-#
-# script is included from init via the "." load function - thus it has all
-# variables and functions available
-
-# defining a set of stanard configuration blocks
-x_modpath='Section "Files"
-# ModulePath "/usr/lib/xorg/modules/,/usr/lib64/xorg/modules/"
-EndSection'
-x_srvflags='Section "ServerFlags"
- Option "AllowMouseOpenFail"
- Option "AllowEmptyInput" "false"
- Option "blank time" "5"
- Option "standby time" "10"
- Option "suspend time" "15"
- Option "off time" "20"
-EndSection'
-x_modules='Section "Module"
- Load "i2c"
- Load "bitmap"
- Load "ddc"
- Load "extmod"
- Load "freetype"
- Load "int10"
- Load "vbe"
- Load "glx"
- Load "dri"
-EndSection'
-x_mouse='Section "InputDevice"
- Identifier "Generic Mouse"
- Driver "mouse"
-# Option "Device" "/dev/input/mice"
-# Option "Protocol" "ImPS/2"
-# Option "ZAxisMapping" "4 5"
-# Option "Emulate3Buttons" "true"
- Option "CorePointer"
-EndSection'
-x_keyboard='Section "InputDevice"
- Identifier "Generic Keyboard"
- Driver "evdev"
- Option "CoreKeyboard"
- Option "XkbRules" "xorg"
- Option "XkbModel" "pc105"
- Option "XkbLayout" "us"
-EndSection'
-x_videocard='Section "Device"
- Identifier "Generic Video Card"
- Driver "vesa"
-# BusID "PCI:xx" #especially needed for fglrx
-EndSection'
-x_monitor='Section "Monitor"
- Identifier "Generic Display"
- Option "DPMS"
-# Modelname "could be enabled via xserver::ddcinfo attribute"
-# Vertrefresh ...
-# Horizsync ...
-# DisplaySize ...
-EndSection'
-x_screen='Section "Screen"
- Identifier "Default Screen"
- Device "Generic Video Card"
- Monitor "Generic Display"
- DefaultDepth 24
-# SubSection "Display"
-# Depth 24
-# Modes "1024x768" "800x600"
-# EndSubSection
-EndSection'
-x_srvlayout='Section "ServerLayout"
- Identifier "Default Layout"
- Screen "Default Screen"
- InputDevice "Generic Keyboard"
- InputDevice "Generic Mouse"
-EndSection'
-x_dri='Section "DRI"
- Mode 0666
-EndSection'
-# Xorg configuration file location
-xfc="/mnt/etc/X11/xorg.conf"
-
-# read the central configuration file (fixme: should the keyboard layout
-# defined within the xserver plugin settings - probably not, dvs)
-if [ -e /initramfs/machine-setup ] ; then
- . /initramfs/machine-setup
-else
- error " The central configuration file 'machine-setup' (produced by the \
-slxconfig-demuxer\n and transported via fileget) is not present" nonfatal
-fi
-
-if [ -e /etc/slxsystem.conf ]; then
- . /etc/slxsystem.conf
-fi
-
-# directory for libGL, DRI library links to point to proper library set
-# depending on the hardware environment
-glliblinks="/mnt/var/X11R6/lib/"
-testmkd ${glliblinks}
-
-# check for the existance of plugin configuration and non-existance of an
-# admin provided config file in ConfTGZ
-if [ -e /initramfs/plugin-conf/xserver.conf -a \
- ! -f /rootfs/etc/X11/xorg.conf ]; then
- . /initramfs/plugin-conf/xserver.conf
- # check if driver set via xserver_driver
- # if so check for xserver_prefnongpl and xserver_driver because you want to
- # force driver even if xserver_prefnongpl=0
- # eg: [ -n "$xserver_driver" -o "$xserver_prefnongpl" -eq 1 ]
- if [ -n "$xserver_driver" ]; then
- if `grep -qi "Server Module" /etc/hwinfo.gfxcard`; then
- sed -i "s,XFree86.*,FORCED XFree86 v4 Server Module: ${xserver_driver}," \
- /etc/hwinfo.gfxcard
- echo -e "\n# File modified by $1" >> /etc/hwinfo.gfxcard
- echo "# Reason: attribute server_driver set to ${xserver_driver}" \
- >> /etc/hwinfo.gfxcard
- else
- echo -e "\n# File modified by $1" >> /etc/hwinfo.gfxcard
- echo "# Reason: attribute server_driver set to ${xserver_driver}" \
- >> /etc/hwinfo.gfxcard
- echo "FORCED XFree86 v4 Server Module: ${xserver_driver}" >> /etc/hwinfo.gfxcard
- fi
- fi
- # do not start any configuration if the admin provided a preconfigured
- # xorg.conf in /rootfs/etc/X11/xorg.conf
- if [ $xserver_active -ne 0 -a ! -f /rootfs/${xfc#/mnt} ]; then
- [ $DEBUGLEVEL -gt 0 ] && echo "executing the 'xserver' os-plugin ...";
- xmodule=$(grep -i -m 1 "XFree86 v4 Server Module" /etc/hwinfo.gfxcard | \
- sed "s/.*v4 Server Module: //")
- # proprietary ATI/NVidia modules listed a different way with hwinfo
- [ -z "$xmodule" ] || error "${hcfg_hwsetup}" nonfatal
-
- ######################################################################
- # begin proprietary drivers section (xorg.conf part)
- ######################################################################
-
- if $(grep -iq -m 1 'Module: fglrx' /etc/hwinfo.gfxcard) && \
- [ -n "$xserver_driver" -o "$xserver_prefnongpl" -eq 1 ]
- then
- # we have an ati card here
- PLUGIN_ROOTFS="/opt/openslx/plugin-repo/xserver/ati"
- if [ -f /mnt${PLUGIN_ROOTFS}/usr/X11R6/lib/dri/fglrx_dri.so -o \
- -f /mnt${PLUGIN_ROOTFS}/usr/lib/dri/fglrx_dri.so ]; then
-
- # this will be written before standard module path into xorg.conf
- MODULE_PATH="${PLUGIN_ROOTFS}/usr/lib/xorg/modules/\,\
-${PLUGIN_ROOTFS}/usr/X11R6/lib/modules/\,"
- xmodule="fglrx"
- PLUGIN_PATH="/mnt/${PLUGIN_ROOTFS}"
-
- # impossible to load it directly via stage3 insmod - yes, somehow this is too big
- chroot /mnt /sbin/insmod ${PLUGIN_ROOTFS}/modules/fglrx.ko
-
- # workaround for bug #453 (for some ati graphics cards)
- if [ $? -gt 0 -a "${slxconf_distro_name}" = "ubuntu" ]; then
- xmodule="radeon"
- MODULE_PATH="/usr/lib/xorg/modules/,/usr/X11R6/lib/xorg/modules/"
- else
-
- # we need some database for driver initialization
- cp -r "${PLUGIN_PATH}/etc/ati" /mnt/etc
-
- if [ "${slxconf_distro_name}" = "ubuntu" ]; then
- echo "${PLUGIN_ROOTFS}/usr/lib/libGL.so.1" >> /mnt/etc/ld.so.preload
- fi
-
- # if fglrx_dri.so is linked wrong -> we have to link it here
- if [ "1" -eq "$( ls -l /mnt/usr/lib/dri/fglrx_dri.so \
- | grep -o "/var/X11R6.*so$" | wc -l )" ]; then
- ln -s ${PLUGIN_ROOTFS}/usr/lib/dri/fglrx_dri.so \
- ${glliblinks}dri/fglrx_dri.so
- fi
- BUSID=$(grep -m1 -i " SysFS BusID: .*" /etc/hwinfo.gfxcard | \
- awk -F':' '{print "PCI:"$3":"$4}' | sed -e 's,\.,:,g')
- echo -e "\t${PLUGIN_ROOTFS}/usr/bin/aticonfig --initial &>/dev/null"\
- >> /mnt/etc/init.d/boot.slx
- ATI=1
- fi # if kernel module not loaded properly
- fi
- elif $(grep -iq -m 1 'Module: nvidia' /etc/hwinfo.gfxcard) && \
- [ -n "$xserver_driver" -o "$xserver_prefnongpl" -eq 1 ]
- then
- # we have an nvidia card here
- NVIDIA=1
- PLUGIN_ROOTFS="/opt/openslx/plugin-repo/xserver/nvidia"
- MODULE_PATH="${PLUGIN_ROOTFS}/usr/lib/xorg/modules/\,\
-${PLUGIN_ROOTFS}/usr/X11R6/lib/modules/\,"
- xmodule="nvidia"
- PLUGIN_PATH="/mnt${PLUGIN_ROOTFS}"
-
- # if we can't find the nongpl kernel module, use gpl xorg
- # nvidia driver
- if [ -e ${PLUGIN_PATH}/modules/nvidia.ko ]; then
- # sometimes the kernel module needs agpgart
- modprobe agpgart
- # insert kernel driver
- chroot /mnt /sbin/insmod ${PLUGIN_ROOTFS}/modules/nvidia.ko
-
-
- # workaround for bug #453 (Xorg does not start with ld.so.preload)
- if [ "${slxconf_distro_name}" = "ubuntu" -a "${xmodule}" != "nvidia" ]; then
- echo "${PLUGIN_ROOTFS}/usr/lib/libGL.so.1" >> /mnt/etc/ld.so.preload
- fi
-
- else
- xmodule="nv"
- fi
-
- fi
-
- ######################################################################
- # end proprietary drivers xorg.conf section
- ######################################################################
-
- # write the xorg.conf completely or in files needed (depending on
- # distro version)
- # determine keyboard setup (fill XKEYBOARD)
- localization "${country}"
-
- # run distro specific generated stage3 script which uses variables
- # defined in the beginning of this script like ${x_*}, ${xfc}
- [ -e /mnt/opt/openslx/plugin-repo/xserver/xserver.sh ] && \
- . /mnt/opt/openslx/plugin-repo/xserver/xserver.sh
-
- # set nodeadkeys for special layouts
- if [ ${XKEYBOARD} = "de" ]; then
- sed -e '/\"XkbLayout\"/a\\ \ Option "XkbVariant" "nodeadkeys"' \
- -i ${xfc}
- fi
- # if a synaptic touchpad is present, add it to the device list
- if grep -q -E "ynaptics" /etc/hwinfo.mouse || \
- dmesg | grep -q -E "ynaptics" ; then
- sed -e '/\"CorePointer\"/ {
-a\
-EndSection\
-Section "InputDevice"\
- Identifier "Synaptics TP"\
- Driver "synaptics"\
- Option "Device" "/dev/input/mice"\
- Option "SendCoreEvents" "true"
-}' -e '/Device "Generic Mouse"/ {
-a\ \ InputDevice\ \ "Synaptics TP"\ \ \ \ \ \ "SendCoreEvents"
-}' -i ${xfc}
- fi
-
- # ModulePath for proprietary drivers (otherwise disabled)
- if [ -n "$xserver_driver" -o "$xserver_prefnongpl" -eq "1" ]; then
- sed -e "s,# ModulePath \", ModulePath \"${MODULE_PATH},g" \
- -i ${xfc}
- fi
-
- ############################################
- # Copy the appropriate ld.so.cache file
- ############################################
- if [ "${xmodule}" = "fglrx" -o "${xmodule}" = "nvidia" ]; then
- cp ${PLUGIN_PATH}/ld.so.cache /mnt/etc/ld.so.cache
-
- # just in case somebody needs to run ldconfig - insert GL-Libs at the beginning
- sed -e "1s,^,include ${PLUGIN_ROOTFS}/ld.so.conf\n,g" -i /mnt/etc/ld.so.conf
-
- if [ "${xmodule}" = "nvidia" ]; then
- sed -i "s,\(Driver.*\"nvidia\"\),\1\n Option \"NoLogo\" \"True\"," ${xfc}
- fi
- fi
-
- # check if tablet hardware available, read device information from file
- if [ -e /etc/tablet.conf ]; then
- . /etc/tablet.conf
- echo -e '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 "Pad"
- Option "Device" "/dev/input/wacom"
- Option "Type" "pad"
- 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' >> ${xfc}
- sed -e "s,/dev/input/wacom,/dev/${wacomdev}," \
- -e '/e \"Generic Mouse\"/a\\ \ InputDevice "Stylus" "SendCoreEvents"' \
- -e '/e \"Generic Mouse\"/a\\ \ InputDevice "Pad" "SendCoreEvents"' \
- -e '/e \"Generic Mouse\"/a\\ \ InputDevice "Cursor" "SendCoreEvents"' \
- -e '/e \"Generic Mouse\"/a\\ \ InputDevice "Eraser" "SendCoreEvents"' \
- -i ${xfc}
- fi
-
- # some configurations produce no proper screen resolution without
- # Horizsync and Vertrefresh set (more enhancements might be needed for
- # really old displays like CRTs)
- if [ $xserver_ddcinfo -ne 0 ] ; then
- # read /etc/hwinfo.display started at "runinithook '00-started'"
- vert=$(grep -m 1 "Vert.*Range:" /etc/hwinfo.display | \
- sed 's|.*Range:\ ||;s|\ Hz||')
- horz=$(grep -m 1 "Hor.*Range:" /etc/hwinfo.display | \
- sed 's|.*Range:\ ||;s|\ kHz||')
- modl=$(grep -m 1 " Model: " /etc/hwinfo.display | \
- sed 's|.*Model:\ ||;s|"||g')
- size="$(grep -m 1 " Size: " /etc/hwinfo.display | \
- sed 's|.*ize:\ ||;s|\ mm||;s|x|\ |')"
- modes=$(grep -i "Resolution: .*@" /etc/hwinfo.display | \
- awk '{print $2}'| sort -unr| awk -F '@' '{print "\"" $1 "\""}'|\
- tr "\n" " ")
- [ -n "$vert" -a -n "$horz" ] && \
- sed -e "s|# Horizsync.*| Horizsync $horz|;\
- s|# Vertrefre.*| Vertrefresh $vert|;\
- s|# Modelname.*| Modelname \"$modl\"|" -i ${xfc}
- [ -n "$size" ] && \
- sed -e "s|# DisplaySi.*| DisplaySize $size|" -i ${xfc}
- [ -n "$modes" ] && \
- sed -e "s|# SubSection.*| SubSection \"Display\"|;\
- s|# Depth 24.*| Depth 24|;\
- s|# Modes.*| Modes $modes|;\
- s|# EndSubSection.*| EndSubSection|;" -i ${xfc}
-
- fi
-
- [ $DEBUGLEVEL -gt 0 ] && echo "done with 'xserver' os-plugin ..."
-
- fi
-elif [ ! -e /initramfs/plugin-conf/xserver.conf ]; then
- [ $DEBUGLEVEL -gt 2 ] && \
- echo "No configuration file found for xserver plugin."
-fi