Yo ya conseguí poder modular el brillo de la pantalla del mac book pro usando las teclas tal y como expliqué en: Modular brillo pantalla en Mac Book Pro. Pero si recordáis bien esto es cuando se está usando la tarjeta nvidia. Y conseguí, por defecto, usar la tarjeta intel como expliqué en: Usar tarjeta intel integrada en Debian Unstable para MacBook Pro 6,2 .
Con esta última configuración el slider del monitor de batería ya me dejaba cambiar el brillo. Pero la modulación via teclas no me funcionaba. ¿Por qué? Pues porque yo ya la había programado manualmente para usar el script de nvidia.
Hasta ahora no había tocado este tema porque no me había hecho falta. El otro día me dí cuenta de que la opción de bloquear la pantalla no me funcionaba. Simplemente le das a bloquear pantalla y la pantalla sigue bloqueada. No podía ser esto.
Así es que para solventar este problema he instaldo el paquete xlock. Me he hecho un lanzador que lo ejecute y voila ya tienes la pantalla protegida cuando quieras.
No obstante esto tiene un inconveniente, al cabo de, digamos unos 20 minutos, el brillo de la pantalla baja a mínimos. Tan a mínimos que parece que está apagada. Y entonces es cuándo no me van las teclas por lo que he comentado más arriba. Si estoy conectado a otro monitor puedo desbloquear con la contraseña y ver el escritorio arriba dónde en un mi kde añado un widget de batería y ahí puedo modular el brillo.
Pero no quiero ir andando haciendo esto. Así que quiero hacerlo con las teclas, pero, claro, que me pueda servir también arranque en el modo nvidia, o consiga poder hacer switch en el momento.
Para ello por un lado el script para nvidia que ya tenía se renombra a:
custom-backlight-macbookpro_nvidia
. Y por otro lado creo un script muy parecido pero para Intel que copio y pego a continuación:
#!/bin/bash # Adapted from http://www.linuxquestions.org/questions/linux-laptop-and-netbook-25/script-to-set-up-brightness-of-backlight-in-xfce-903704/ # Script for changing backlight brightness in /sys/class/backlight/acpi_video0/brightness # can take values 0-15, in real (my notebook) works only values 2-15 #IMPORTANT: you must have writing rights to /sys/.../brightness (I must solute it with visudo or something like that...) #IMPORTANT: for proper work after reboot must exist directory .bright in your home directory and file last_bright in .bright directory #reads content of brightness and save it into variable BRIGHTNESS_FILE="/sys/devices/virtual/backlight/acpi_video0/brightness" BRIGHT_CONF_DIR="$HOME/.brightintel" LAST_BRIGHT_FILE="${BRIGHT_CONF_DIR}/last_bright" BRIGHT=$(cat ${BRIGHTNESS_FILE}) while getopts "pmlhc" optname do case "$optname" in "p") #Add more brightness #BRIGHT++ BRIGHT=$(($BRIGHT+8800)) #protect mechanism (BRIGHT must be lower or equal to 15) if (($BRIGHT>132000)) then BRIGHT=$((132000)) fi ;; "m") #decrease brightness #BRIGHT-- BRIGHT=$(($BRIGHT-8800)) #protect mechanism (BRIGHT must be bigger or equal to 2) if (($BRIGHT<17600)) then BRIGHT=$((17600)) fi ;; "l") echo "Loading last value of brightness." #Load last value, saved in file last_bright BRIGHT=$(cat ${LAST_BRIGHT_FILE}) echo "Last value of brightness was: $BRIGHT" ;; "h") echo "Help: " echo "-p Increase brightness" echo "-m Decrease brightness" echo "-l Load last brightness value" echo "-c N Set to custom value" echo "-h This help" echo "Programmed by: ElectricZero" echo "Improved by: adrian15" exit 0; ;; "c") BRIGHT=$2 if (($BRIGHT>132000)) then BRIGHT=$((132000)) fi if (($BRIGHT<17600)) then BRIGHT=$((17600)) fi ;; "?") echo "Unknown argument, try bright -h for help" exit 1; ;; *) # Should not occur echo "Unknown error while processing options" exit 2; ;; esac done echo "Brightness set on $BRIGHT" #Save variable BRIGHT into file brightness echo $BRIGHT > ${BRIGHTNESS_FILE} #Save variable BRIGHT into file last_bright if [ ! -d ${BRIGHT_CONF_DIR} ] ; then mkdir ${BRIGHT_CONF_DIR} ; fi echo $BRIGHT > ${LAST_BRIGHT_FILE}
Y he hecho un wrapper que me llama a los dos scripts para sólo tener que interactuar con uno. No comprueba qué script ha de ejecutar pero me da igual. A este script lo he llamado:
custom-backlight-macbookpro_both
y aquí os pongo el código:
#!/bin/bash NVIDIA_BL_BINARY="/usr/local/bin/custom-backlight-macbookpro_nvidia" INTEL_BL_BINARY="/usr/local/bin/custom-backlight-macbookpro_intel" while getopts "pmlhc" optname do case "$optname" in "p") #Add more brightness ${NVIDIA_BL_BINARY} -p ${INTEL_BL_BINARY} -p ;; "m") #decrease brightness ${NVIDIA_BL_BINARY} -m ${INTEL_BL_BINARY} -m ;; "l") echo "Loading last value of brightness." ${NVIDIA_BL_BINARY} -l ${INTEL_BL_BINARY} -l ;; "h") echo "Help: " echo "-p Increase brightness" echo "-m Decrease brightness" echo "-l Load last brightness value" echo "-c N Set to custom value" echo "-h This help" echo "Programmed by: ElectricZero" echo "Improved by: adrian15" exit 0; ;; "c") BRIGHT=$2 if (($BRIGHT>15)) then BRIGHT=$((15)) fi if (($BRIGHT<2)) then BRIGHT=$((2)) fi let INTELBRIGHT=${BRIGHT}*8800 ${NVIDIA_BL_BINARY} -c ${BRIGHT} ${INTEL_BL_BINARY} -c ${INTELBRIGHT} ;; "?") echo "Unknown argument, try bright -h for help" exit 1; ;; *) # Should not occur echo "Unknown error while processing options" exit 2; ;; esac done
Pues básicamente es eso. Sólo falta editar el archivo /etc/sudoers para habilitar el script que termina en both en lugar del antiguo (miraros el artículo del brillo de la nvidia) y ya lo tenemos.
Y ahora voy a ver si me funciona o no el suspender en modo tarjeta intel que igual en todo este tiempo lo que ha pasado es que volvía a la vida pero con el brillo mínimo y aparentaba no funcionar.
Etiquetas: brillo, intel, mac book pro
julio 28, 2013 a las 12:04 pm |
[…] As you might know I’m trying to make work my Mac Book Pro 6,2 with Linux 3.10. One thing that didn’t work was screen brightness. I had already dealt with this settings when booting using Nvidia only and when booting with Intel in the Linux 3.2 days. […]