#1 Le 09/02/2012, à 22:25
- rsuinux
luminosité portable revient toujours au maximum
bonjour;
Suite à divers problèmes de carte video sur portable, traités sur ce forum dans la conversation concernant les cartes sous optimus, (http://forum.ubuntu-fr.org/viewtopic.php?id=565321&p=49 message 1211 entre autre, et suivant) je redémarre une discution pour ceux que cela interessent, et qui, peut être, ont une solution.
Rappel des faits, (chez moi):
portable asus x53s carte video intel + nvidia, gestion optimus par bumblebee 3.0 sans soucis particulier, ubuntu 11.10 sous xfce.
Quand je baisse la luminosité de l'écran au minimum, au bout de quelques secondes, celle ci repasse à 50% 'comme si elle était encore à 100%'
Le constat: 3 fichiers donnent des indications ->
root@unimatrice0:/home/remi/bin# cat /sys/class/backlight/intel_backlight/actual_brightness
4882
root@unimatrice0:/home/remi/bin# cat /sys/class/backlight/acpi_video0/actual_brightness
10
root@unimatrice0:/home/remi/bin# cat /sys/class/backlight/acpi_video1/actual_brightness
10
Ce sont les valeurs par defaut. Pour les modifier, il faut faire comme ceci:
echo 1220 > /sys/class/backlight/intel_backlight/brightness
echo 5 > /sys/class/acpi_video0/brightness
la carte video1 est la carte nvidia, tant qu'on ne l'utilise pas, pas la peine de modifier la valeur.
J'ai tenté de faire ces modifications à la main, mais au bout de 30 secondes (environ) d'inactivité, la valeur dans /sys/class/backlight/intel_backlight/actual_brightness repasse à 4482 . Mais les autres ne change pas!
Je me suis donc résolu à faire un script et une tache cron sous root pour remettre toujours les valeurs à 1220 mais ca marche moyen (cron nelance la tache QUE toutes les munites au minimum...)
Voila la ligne crontab:
*/1 * * * * /usr/local/sbin/brightness.sh
et voila le script /usr/local/sbin/brightness.sh
#!/bin/bash
# --------------------------------------
# R. Suinot Le 09 fev 2012
# --------------------------------------
ROOT=0
if [[ $EUID -ne $ROOT ]]; then
echo "This script must be run as root" 1>&2
exit 1
fi
INTEL=1220
VIDEO0=5
actual_intel=$(cat /sys/class/backlight/intel_backlight/actual_brightness)
actual_video0=$(cat /sys/class/backlight/acpi_video0/actual_brightness)
echo "video0= $actual_video0"
echo "intel= $actual_intel"
if [ $actual_video0 -ne $VIDEO0 ]
then
# echo "video0 plus grand que $VIDEO0"
echo "$VIDEO0" > /sys/class/backlight/acpi_video0/brightness
fi
if [ $actual_intel -ne $INTEL ]
then
# echo "intel plus grand que $INTEL"
echo "$INTEL" > /sys/class/backlight/intel_backlight/brightness
fi
exit 0
C'est pas optimisé, c'est pas documenté, mais c'est pas compliqué non plus...
Si quelqu'un a une meilleur idée, je suis preneur, en attendant de faire un module noyau si vraiment ça marche pas assez bien!
R.Suinot
Dernière modification par rsuinux (Le 09/02/2012, à 22:30)
Si tu ne sais pas: demande; si tu sais: partage!
Hors ligne