#!/bin/bash BASE="" . /etc/profile NVIDIA_96XX="$TEMPLATES/xorg/96xx_supported.txt" #TEMPLATES="/usr/share/templates" function Xvalues { CMDLINE=$(cat /proc/cmdline) echo $CMDLINE |grep -q forceXvesa if [ $? = 0 ] then VGACARDTYPE=vesa else VGACARDTYPE=`lspci|grep -i vga|sort -r|head -n 1| cut -d: -f3|cut -d" " -f 2` CARDID=`lspci -n |grep 10de | cut -d" " -f3 |cut -d: -f2 ` VENDORID=`lspci -n |grep 10de | cut -d" " -f3 |cut -d: -f1` fi echo $VGACARDTYPE currentmode=`cat $BASE/etc/X11/xorg.conf |grep Modes|awk -Fs ' { print $2 } '` } function presetupX { if [ x$XUseAdvanced = x1 ] then if [ x$XIgnoreConfig = x1 ] then echo "Using User supplied X" if [ -f $BASE/data/home/mythtv/templates/xorg.user ] then cp -f $BASE/data/home/mythtv/templates/xorg.user $XORG_CONF else echo "Didn't find the file" echo "Copy your config file to $BASE/data/home/mythtv/templates/xorg.use " >> $XORG_CONF fi else setupAdvancedX fi else if [ -f /etc/sysconfig/IGNORE_X ] then echo "Will not run xconfig.sh due to presence of /etc/sysconfig/IGNORE_X" else setupX fi fi } function setupAdvancedX { echo "#doing the advanced" > /tmp/options Xcatagory=` echo $Xresadvanced |cut -d_ -f1` Xres=` echo $Xresadvanced |cut -d_ -f2` echo $Xcatagory if [ x$Xcatagory = "xNvidia" ] then Xres="" if [ $XnVidia1080p = "1" ] then Xres="${Xres} \"1920x1080_60\"" fi if [ $XnVidia1080i = "1" ] then Xres="${Xres} \"1920x1080_60i\"" fi if [ $XnVidia720p = "1" ] then Xres="${Xres} \"1280x720_60\"" fi if [ $XnVidia480p = "1" ] then Xres="${Xres} \"720x480_60\"" fi ML="\t Modes ${Xres}" else ML="\t Modes \"${Xres}\"" fi # echo $ML case $Xcardtype in NVIDIA|nVidia ) case $Xconnection in DVI) ConnectedMonitor=DFP ;; vga) ConnectedMonitor=CRT;; Auto) ConnectedMonitor=Auto;; TV) ConnectedMonitor=TV echo "Option \"TVStandard\" \"$XTVstandard\"" >>/tmp/options echo "Option \"TVOutFormat\" \"$XTVconnection\"" >> /tmp/options ;; esac if [ $ConnectedMonitor = Auto ] then echo "auto connection" else echo "Option \"ConnectedMonitor\" \"$ConnectedMonitor\"" >> /tmp/options echo "Option \"FlatPanelProperties\" \"Scaling = centered, Dithering = enabled\"" >> /tmp/options echo "Option \"DigitalVibrance\" \"0\"" >> /tmp/options fi if [ x$XignoreEDID = x1 ] then EDIDvalue=true EDIDFREQ=false DS=" DisplaySize $XDisplaysize" HS=" HorizSync $XHsync" VR=" VertRefresh $XVrefresh" else EDIDvalue=false EDIDFREQ=true DS="# Display size edid used " HS="#Hsync edid used " VR="#Vertrefresh edid used " fi echo "Option \"UseEdidFreqs\" \"$EDIDFREQ\"" >> /tmp/options echo "Option \"IgnoreEDID\" \"$EDIDvalue\"" >> /tmp/options sed -e "s/^.*Modes.*$/${ML}/" \ -e "/INSERT MODELINE/r $TEMPLATES/xorg/modeline.$Xcatagory" \ -e "s/^.*DisplaySize.*$/ $DS/" \ -e "s/^#.*HorizSync.*$/ $HS/g" \ -e "s/^#.*VertRefresh.*$/ $VR/g" \ -e "/INSERT HERE/r /tmp/options" $TEMPLATES/xorg/xorg.conf.nvidia > $XORG_CONF ;; ati|ATI) case $Xconnection in DVI) ConnectedMonitor="tmds1,nocrt1,notv";; VGA) ConnectedMonitor="crt1,notmds1,notv" ;; TV) ConnectedMonitor="tv,nocrt1,notmds1" echo "Option \"TVStandard\" \"$XTVstandard\"" >>/tmp/options echo "Option \"TVFormat\" \"$XTVconnection\"" >> /tmp/options ;; esac if [ x$XignoreEDID = x1 ] then DS=" DisplaySize $XDisplaysize" HS=" HorizSync $XHsync" VR=" VertRefresh $XVrefresh" else DS="# Display size edid used " HS="#Hsync edid used " VR="#Vertrefresh edid used " fi echo "Option \"ForceMonitors\" \"$ConnectedMonitor\"" >> /tmp/options sed -e "s/^.*Modes.*$/\t $ML/" \ -e "/INSERT MODELINE/r $TEMPLATES/xorg/modeline.$Xcatagory" \ -e "s/^.*DisplaySize.*$/ $DS/" \ -e "s/^#.*HorizSync.*$/ $HS/g" \ -e "s/^#.*VertRefresh.*$/ $VR/g" \ -e "/INSERT HERE/r /tmp/options" $TEMPLATES/xorg/xorg.conf.ati > $XORG_CONF ;; via|VIA|Via) echo "no via here" ;; *) echo "unknown card type" ;; esac } function setupX { Xvalues #echo "$currentmode ____ ${Xres}" #if [ ! x${currentmode} = x\"${Xres}\" ] if [ x = x ] then case $VGACARDTYPE in nVidia ) sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" $TEMPLATES/xorg/xorg.conf.nvidia > $XORG_CONF if [ ! x$TESTMODE = "xtest" ] then #nvidia check right here grep -q $CARDID $NVIDIA_96XX if [ $? = 0 ] then #install 96xx drivers echo "installing nvidia 96xx drivers" pacman --noconfirm -R libgl-dri > /dev/null 2>&1 pacman --noconfirm -S nvidia-96xx nvidia-96xx-utils > /dev/null 2>&1 else #install latest drivers pacman --noconfirm -R libgl-dri > /dev/null 2>&1 pacman --noconfirm -S nvidia nvidia-utils > /dev/null 2>&1 fi fi ;; VMware ) sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" $TEMPLATES/xorg/xorg.conf.vmware > $XORG_CONF ;; VIA ) sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" $TEMPLATES/xorg/xorg.conf.via > $XORG_CONF if [ ! x$TESTMODE = "xtest" ] then pacman --noconfirm -R nvidia nvidia-utils > /dev/null 2>&1 pacman --noconfirm -S libgl-dri > /dev/null 2>&1 fi ;; Intel) sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" $TEMPLATES/xorg/xorg.conf.intel > $XORG_CONF if [ ! x$TESTMODE = "xtest" ] then pacman --noconfirm -R nvidia-utils > /dev/null 2>&1 pacman --noconfirm -S libgl-dri > /dev/null 2>&1 fi ;; vesa) sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" $TEMPLATES/xorg/xorg.conf.vesa > $XORG_CONF ;; *) XCONF=/root/xorg.conf.new X -configure grep -v Modes $XCONF | sed -e '/Depth.*16/a Modes "800x600"' -e '/Depth.*24/a Modes "800x600"' -e 's/dev\/mouse/dev\/psaux/g'> $XORG_CONF rm -f $XCONF 2>&1 > /dev/null ;; esac fi } #MAIN TESTMODE=$1 if [ x$TESTMODE = "xtest" ] then XORG_CONF="/tmp/xorg.conf.test" XUseAdvanced="1" XIgnoreConfig="${2}" Xcardtype="${3}" XIgnoreEDID="${4}" Xconnection="${5}" XHsync="${6}" XVrefresh="${7}" Xresadvanced="${8}" XTVstandard="${9}" XTVconnection="${10}" XDisplaysize="${11}" else if [ -f /etc/systemconfig ] then . /etc/systemconfig else Xres="800x600" fi XORG_CONF="/etc/X11/xorg.conf" fi presetupX