summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xabs/core/LinHES-config/xconfig.sh432
1 files changed, 102 insertions, 330 deletions
diff --git a/abs/core/LinHES-config/xconfig.sh b/abs/core/LinHES-config/xconfig.sh
index a601352..7024566 100755
--- a/abs/core/LinHES-config/xconfig.sh
+++ b/abs/core/LinHES-config/xconfig.sh
@@ -11,10 +11,8 @@ do
done
BASE=""
+MYTH_RUN_STATUS="1"
. /etc/profile
-NVIDIA_96XX="$TEMPLATES/xorg/96xx_supported.txt"
-NVIDIA_173="$TEMPLATES/xorg/173_supported.txt"
-NVIDIA_SUPPORTED="$TEMPLATES/xorg/nvidia_supported.txt"
MYTHHOME=$BASE/home/mythtv
@@ -32,163 +30,26 @@ function Xvalues {
CARDID=`lspci -n | grep "$VGAPCIID" | grep 10de | cut -d" " -f3 | cut -d: -f2`
VENDORID=`lspci -n | grep "$VGAPCIID" | grep 10de | cut -d" " -f3 | cut -d: -f1`
fi
-
echo "Detected $VGACARDTYPE as the video card type"
- #currentmode=`cat "$BASE/etc/X11/xorg.conf" | grep Modes | awk -Fs '{ print $2 }'`
}
function presetupX {
- if [ -f /etc/sysconfig/IGNORE_X ]
+
+ if [ "$XIgnoreConfig" = 1 ]
then
- echo "Will not run xconfig.sh due to presence of /etc/sysconfig/IGNORE_X"
- return 1
- else
- if [ "$XIgnoreConfig" = 1 ]
+ echo "Using User supplied X"
+ if [ -f "$MYTHHOME/templates/xorg.user" ]
then
- echo "Using User supplied X"
- if [ -f "$MYTHHOME/templates/xorg.user" ]
- then
- cp -f "$MYTHHOME/templates/xorg.user" "$XORG_CONF"
- else
- echo "Didn't find the file"
- echo "Copy your config file to $MYTHHOME/templates/xorg.user" > "$XORG_CONF"
- fi
+ cp -f "$MYTHHOME/templates/xorg.user" "$XORG_CONF"
else
- #if [ "$XUseAdvanced" = 1 ]
- #then
- # setupAdvancedX
- #else
- setupX
- #fi
+ echo "Didn't find the file"
+ echo "Copy your config file to $MYTHHOME/templates/xorg.user" > "$XORG_CONF"
fi
+ else
+ setupX
fi
-}
-
-function setupAdvancedX {
- echo "#Doing the advanced X setup" >> $LOGFILE
- #Xcategory=`echo "$Xresadvanced" | cut -d_ -f1`
- #Xres=`echo "$Xresadvanced" | cut -d_ -f2`
-
- Xcategory=`echo "$Xresadvanced" | cut -d_ -f1`
- Xres=${Xres}
- #echo "$Xcategory"
- #echo $Xres
- if [ "$Xcategory" = "Nvidia" ]
- 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
-
- case $Xcardtype in
- NVIDIA|nVidia|nvidia)
- nvidia_driver_install
- case $Xconnection in
- DVI) ConnectedMonitor=DFP ;;
- vga) ConnectedMonitor=CRT;;
- Auto) ConnectedMonitor=Auto;;
- TV) ConnectedMonitor=TV
- nvidia-xconfig -c /etc/X11/xorg.conf.d/20-automv.conf --tv-standard="$XTVstandard"
- nvidia-xconfig -c /etc/X11/xorg.conf.d/20-automv.conf --tv-out-format="$XTVconnection"
- # echo "Option \"TVStandard\" \"$XTVstandard\"" >>/tmp/options
- # echo "Option \"TVOutFormat\" \"$XTVconnection\"" >> /tmp/options
- ;;
- *) ConnectedMonitor=Auto;;
- esac
- if [ "$ConnectedMonitor" = Auto ]
- then
- echo "auto connection"
- else
- nvidia-xconfig -c /etc/X11/xorg.conf.d/20-automv.conf --connected-monitor="$ConnectedMonitor"
- #echo "Option \"ConnectedMonitor\" \"$ConnectedMonitor\"" >> /tmp/options
- #echo "Option \"FlatPanelProperties\" \"Scaling = centered, Dithering = enabled\"" >> /tmp/options
- #echo "Option \"DigitalVibrance\" \"0\"" >> /tmp/options
- fi
-#
-# if [ "$XignoreEDID" = 1 ]
-# 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.$Xcategory" \
-# -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"
-
- #nvidia-xconfig -c /etc/X11/xorg.conf.d/20-automv.conf --mode-list=\"${Xres}\"
- eval nvidia-xconfig -c /etc/X11/xorg.conf.d/20-automv.conf --mode-list=\"${Xres}\"
- ;;
-
- 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 [ "$XignoreEDID" = 1 ]
- 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.$Xcategory" \
- -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"
- ;;
-
-
-
- *)
- echo "unknown card type"
- ;;
- esac
}
function nvidia_prepare {
@@ -205,137 +66,81 @@ function nvidia_prepare {
}
-function nvidia_driver_install {
-
+function pkg_check () {
+ echo " Checking for $1 in cache or online"
+ pacman --noconfirm -Sw $1 >> $LOGFILE 2>&1
+ rc=$?
+ if [ $rc != 0 ]
+ then
+ echo " Couldn't find $1 for install, aborting"
+ echo " Couldn't find $1 for install, aborting" >> $LOGFILE 2>&1
+ exit 1
+ fi
- cp "$TEMPLATES/xorg/xorg.conf.nvidia" $BASE/etc/X11/xorg.conf.d/20-automv.conf
- installed=0
- if [ "$TESTMODE" != "test" ]
- then
+ }
- grep -qi "$CARDID" "$NVIDIA_SUPPORTED"
- if [ $? = 0 ]
- then
- #install latest drivers
- echo "Installing current nvidia drivers"
- nvidia_prepare
- pacman --noconfirm -S nvidia nvidia-utils >> $LOGFILE 2>&1
- installed=1
- fi
-
- if [ $installed = 0 ]
- then
- #nvidia check right here
- grep -qi "$CARDID" "$NVIDIA_96XX"
- if [ $? = 0 ]
- then
- #install 96xx drivers
- echo "Installing nvidia 96xx drivers"
- nvidia_prepare
- pacman --noconfirm -S nvidia-96xx nvidia-96xx-utils >> $LOGFILE 2>&1
- installed=1
- fi
- fi
-
- if [ $installed = 0 ]
- then
- grep -qi "$CARDID" "$NVIDIA_173"
- if [ $? = 0 ]
- then
- #install latest drivers
- echo "Installing 173 nvidia drivers"
- nvidia_prepare
- pacman --noconfirm -S nvidia-173xx nvidia-173xx-utils >> $LOGFILE 2>&1
- installed=1
- fi
- fi
-
- if [ $installed = 0 ]
- then
- #this is a failsafe, can't find the right driver, then use the latest'
- #install latest drivers
- echo "Couldn't find the card in the supported list"
- echo "Installing current nvidia drivers"
+function nvidia_driver_install {
- nvidia_prepare
- pacman --noconfirm -S nvidia nvidia-utils >> $LOGFILE 2>&1
- installed=1
- fi
+ cp "$TEMPLATES/xorg/xorg.conf.nvidia" $BASE/etc/X11/xorg.conf.d/20-automv.conf
+ #grep -qi "$CARDID" "$NVIDIA_SUPPORTED"
+ #if [ $? = 0 ]
+ #then
+ #install latest drivers
+ pkg_check nvidia-utils
+ echo "Installing current nvidia drivers"
+ nvidia_prepare
+ pacman --noconfirm -S nvidia nvidia-utils >> $LOGFILE 2>&1
+ installed=1
+ #fi
- fi
+ if [ \"$Xres\" = "Auto" ]
+ then
+ nvidia-xconfig -c /etc/X11/xorg.conf.d/20-automv.conf --mode-list="nvidia-auto-select"
+ else
+ #nvidia-xconfig -c /etc/X11/xorg.conf.d/20-automv.conf --mode-list=$Xres
+ eval nvidia-xconfig -c /etc/X11/xorg.conf.d/20-automv.conf --mode-list=\"${Xres}\"
+ fi
+ echo "/usr/lib/libXvMCNVIDIA_dynamic.so.1" > "$XVMC_CONFIG"
+}
- if [ \"$Xres\" = "Auto" ]
- then
- nvidia-xconfig -c /etc/X11/xorg.conf.d/20-automv.conf --mode-list="nvidia-auto-select"
- else
- #nvidia-xconfig -c /etc/X11/xorg.conf.d/20-automv.conf --mode-list=$Xres
- eval nvidia-xconfig -c /etc/X11/xorg.conf.d/20-automv.conf --mode-list=\"${Xres}\"
- fi
+# if [ "$Xcategory" = "Nvidia" ]
+# 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
- echo "/usr/lib/libXvMCNVIDIA_dynamic.so.1" > "$XVMC_CONFIG"
- #rm $BASE/etc/X11/xorg.conf.d/20-nvidia.conf
-}
function setupX {
Xvalues
- #echo "$currentmode ____ ${Xres}"
- #if [ "${currentmode}" != \"${Xres}\" ]
if [ x = x ]
then
case $VGACARDTYPE in
- nVidia)
+ NVIDIA|nVidia|nvidia)
nvidia_driver_install
;;
- # VMware)
- # sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$TEMPLATES/xorg/xorg.conf.vmware" > "$XORG_CONF"
- # ;;
-
- VIA|S3)
- # There are actually multiple options here
- # xf86-video-openchrome
- # xf86-video-unichrome
- # There is also a seperate driver for the Unichrome Pro
- if [ ${Xres} = Auto ]
- then
- sed -e "/^.*Modes.*$/d" "$TEMPLATES/xorg/xorg.conf.via" > "$XORG_CONF"
- else
- sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$TEMPLATES/xorg/xorg.conf.via" > "$XORG_CONF"
- fi
- if [ "$TESTMODE" != "test" ]
- then
- if [ "$OPENCHROME" = "1" ]
- then
- pacman --noconfirm -R nvidia nvidia-utils >> $LOGFILE 2>&1
- pacman --noconfirm -S libgl unichrome-dri xf86-video-openchrome >> $LOGFILE 2>&1
- else
- pacman --noconfirm -R nvidia nvidia-utils >> $LOGFILE 2>&1
- pacman --noconfirm -S libgl unichrome-dri xf86-video-unichrome >> $LOGFILE 2>&1
- fi
- fi
- # I'm making educated guesses here...
- if lspci | grep "VGA" | grep -qi "Unichrome Pro"
- then
- if [ -f "/usr/lib/libchromeXvMCPro.so.1" ]
- then
- echo "/usr/lib/libchromeXvMCPro.so.1" > "$XVMC_CONFIG"
- else
- echo "/usr/lib/libviaXvMCPro.so.1" > "$XVMC_CONFIG"
- fi
- else
- if [ -f "/usr/lib/libchromeXvMC.so.1" ]
- then
- echo "/usr/lib/libchromeXvMC.so.1" > "$XVMC_CONFIG"
- else
- echo "/usr/lib/libviaXvMC.so.1" > "$XVMC_CONFIG"
- fi
- fi
- ;;
+ VMware)
+ sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$TEMPLATES/xorg/xorg.conf.vmware" > "$XORG_CONF"
+ ;;
Intel|intel)
if [ ${Xres} = Auto ]
@@ -349,10 +154,11 @@ function setupX {
pacman --noconfirm -R nvidia-utils >> $LOGFILE 2>&1
pacman --noconfirm -S libgl >> $LOGFILE 2>&1
fi
- echo "/usr/lib/libIntelXvMC.so.1" > "$XVMC_CONFIG"
+ echo "/usr/lib/libIntelXvMC.so.1" > "$XVMC_CONFIG"
;;
- vesa|InnoTek)
+ vesa|InnoTek|*)
+ echo "Using the vesa driver"
if [ ${Xres} = Auto ]
then
sed -e "/^.*Modes.*$/d" "$TEMPLATES/xorg/xorg.conf.vesa" > "$XORG_CONF"
@@ -361,38 +167,13 @@ function setupX {
fi
;;
- *)
- XCONF=/root/xorg.conf.new
- XCONFB=/etc/X11/xorg.conf.install
- X -configure
- if [ -f "$XCONF" ]
- then
- echo "Using $XCONF"
- if [ ${Xres} = Auto ]
- then
- grep -v Modes "$XCONF" | sed -e 's/dev\/mouse/dev\/psaux/g'> "$XORG_CONF"
- else
- grep -v Modes "$XCONF" | sed -e "/Depth.*16/a Modes \"${Xres}\" " -e "/Depth.*24/a Modes \"${Xres}\"" -e 's/dev\/mouse/dev\/psaux/g'> "$XORG_CONF"
- fi
- elif [ -f "$XCONFB" ]
- then
- echo "Using $XCONFB"
- if [ ${Xres} = Auto ]
- then
- sed -e "/^.*Modes.*$/d" "$XCONFB" > "$XORG_CONF"
- else
- sed -e "s/^.*Modes.*$/\t Modes \"${Xres}\"/" "$XCONFB" > "$XORG_CONF"
- fi
- else
- echo "Xorg configuration failed"
- fi
- rm -f "$XCONF" >> $LOGFILE 2>&1
- ;;
esac
fi
}
+
+#---------------------------------------------------------------------------------
#MAIN
@@ -400,52 +181,43 @@ LINE=`grep -i xorg /etc/mythvantage.cfg|grep -q False`
rc=$?
if [ $rc = 0 ]
then
- echo "xorg configuration disabled in /etc/mythvantage.cfg"
- exit 0
+ echo "** xorg configuration disabled in /etc/mythvantage.cfg"
+ exit 1
fi
-TESTMODE="$1"
-if [ "$TESTMODE" = "test" ]
+if [ -f /etc/sysconfig/IGNORE_X ]
then
- XORG_CONF="/tmp/xorg.conf.test"
- XVMC_CONFIG="/tmp/XvMCConfig.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
- CMDLINE=$(cat /proc/cmdline)
- echo $CMDLINE | grep -q displayres
- if [ $? = 0 ]
- then
- TEMPVAR=${CMDLINE#*displayres=}
- DSR=${TEMPVAR%% *}
- fi
- if [ ! x$DSR = x ]
- then
- Xres=$DSR
- fi
- if [ ! x$DISPLAYRES = x ]
- then
- Xres=$DISPLAYRES
- fi
+ echo "** Will not run xconfig.sh due to presence of /etc/sysconfig/IGNORE_X"
+ exit 1
+fi
- XORG_CONF="/etc/X11/xorg.conf"
- XVMC_CONFIG="/etc/X11/XvMCConfig"
+if [ -f /etc/systemconfig ]
+then
+ . /etc/systemconfig
+else
+ Xres="800x600"
fi
+CMDLINE=$(cat /proc/cmdline)
+echo $CMDLINE | grep -q displayres
+if [ $? = 0 ]
+then
+ TEMPVAR=${CMDLINE#*displayres=}
+ DSR=${TEMPVAR%% *}
+fi
+if [ ! x$DSR = x ]
+then
+ Xres=$DSR
+fi
+if [ ! x$DISPLAYRES = x ]
+then
+ Xres=$DISPLAYRES
+fi
+
+
+
+XORG_CONF="/etc/X11/xorg.conf"
+XVMC_CONFIG="/etc/X11/XvMCConfig"
+
presetupX