Acabo de instalar Ubuntu en mi computadora portátil (GTX 960M / I7-6700HQ - Intel HD530) y no me dejó pasar la pantalla de bloqueo hasta que reinstalé el controlador nvidia (instaló el controlador 370, solo usé la instalación automática de controladores de ubuntu).
Después de instalar el controlador nvidia, mi sistema ahora funciona, pero tengo una pantalla que se rompe terriblemente incluso cuando simplemente muevo las ventanas y cuando me desplazo por las páginas web, es aún peor.
Cosas que he probado hasta ahora:
- Cambiar la GPU para usar en la configuración de NVidia XServer
- Agregar "TearFree" "true" al
xorg.confdispositivo Intel
¿Qué más puedo probar?
Respuesta1
He codificado un script que cambia entre la tarjeta de video Intel y NVIDIA. Además de cambiar entre ellos, también CORRIGE el desgarro de video/pantalla cuando se usa una tarjeta de video INTEL. La tarjeta de video NVIDIA todavía muestra problemas de desgarro de video/pantalla para los cuales no he encontrado una solución hasta ahora.
Aquí está el guión en GitHub
#!/bin/bash
# -------------------------------------------------------
# A shell script that fixes screen tearing on intel video cards and switches between nvidia and intel graphic cards
# Written by: Bruno Assis
# Created on: 25/03/2017
# -------------------------------------------------------
#asks for sudo if the user uid != 0 then calls the script again with the current user name
(( EUID != 0 )) && exec sudo -- "$0" "$@$USER"
#-----------------
#----Settings-----
#-----------------
PREVIOUS_USER=$1
SCRIPT_NAME="20-intel.conf"
CONF_BASE_PATH="/etc/X11/"
CONF_BASE_DIR="xorg.conf.d"
CONF_PATH="/etc/X11/$CONF_BASE_DIR/"
CONF_FILE_PATH="$CONF_PATH$SCRIPT_NAME"
CURRENT_VIDEO_CARD=""
#-----------------
#----Functions----
#-----------------
#creates the config file.
function CreateTearingFreeFile {
echo 'Section "Device"' >> $1
echo ' Identifier "Intel Graphics"' >> $1
echo ' Driver "intel"' >> $1
echo ' Option "TearFree" "true"' >> $1
echo "EndSection" >> $1
}
#switches the environment to use nvidia graphics card
function SwitchToNvdia {
echo -e "\n Switching to nvidia."
rm $CONF_FILE_PATH
prime-select nvidia
}
#switches the environment to use intel's graphics card
function SwitchToIntel {
echo -e "\n Switching to Intel."
cd $CONF_PATH
CreateTearingFreeFile $SCRIPT_NAME
prime-select intel
}
function LogoutFromCurrentSession {
echo -e "\n You'll need to logout in order to changes take effect."
echo -e "\n Do you wish to logout now? (y | n)"
read -n 1 option
if [[ "$option" = "y" || "$option" = "Y" ]]; then
#log out from the current session for the current user
su -c "kill -9 -1" "$PREVIOUS_USER"
fi
}
function SetupEnvironment {
if [ ! -d "$CONF_BASE_PATH" ]; then
echo -e "\n error: could not find $CONF_BASE_PATH."
exit 1
else
if [ ! -d "$CONF_PATH" ]; then
echo -e "\n could not find $CONF_BASE_DIR."
echo -e "\n trying to create it."
cd $CONF_BASE_PATH
mkdir $CONF_BASE_DIR
if [ ! -d "$CONF_PATH" ]; then
echo -e "\n could not create $CONF_BASE_DIR folder."
exit 1
else
echo -e "\n $CONF_BASE_DIR folder created successfully."
fi
fi
fi
}
function CheckForCurrentVideoCardInUse {
local _VIDEO_CARD=`glxinfo|egrep "OpenGL vendor|OpenGL renderer*"`
if [[ $_VIDEO_CARD == *"NVIDIA"* && $_VIDEO_CARD == *"GeForce"* ]]; then
CURRENT_VIDEO_CARD="NVIDIA"
elif [[ $_VIDEO_CARD == *"Intel"* && $_VIDEO_CARD == *"Intel"* ]]; then
CURRENT_VIDEO_CARD="INTEL"
else
ErrorHandler
fi
}
function ErrorHandler {
echo -e "\n Could not find your video card"
echo -e "\n Please use glxinfo to check if the name is correct or if you are using NVIDIA's or Intel's card"
exit 1
}
#------------------
#--Program Flow ---
#------------------
#Setups the environment if it hasn't already been set.
CheckForCurrentVideoCardInUse
SetupEnvironment
echo -e " current video card in use: $CURRENT_VIDEO_CARD"
#If the file exists then we should delete it and start nvidia
if [ $CURRENT_VIDEO_CARD == "INTEL" ]; then
echo -e "\n Switch graphics card to NVIDIA? (y | n)"
read -n 1 option
if [[ "$option" == "y" || "$option" == "Y" ]]; then
SwitchToNvdia
LogoutFromCurrentSession
fi
elif [ $CURRENT_VIDEO_CARD == "NVIDIA" ]; then
echo -e "\n Switch graphics card to INTEL? (y | n)"
read -n 1 option
if [[ "$option" == "y" || "$option" == "Y" ]]; then
SwitchToIntel
LogoutFromCurrentSession
fi
else
ErrorHandler
fi


