Contenu | Rechercher | Menus

Gestion du rétro-éclairage

La plupart des ordinateurs portables utilisent des écrans à dalle rétro-éclairante que l'on peut le plus souvent gérer avec des touches prévues à cet effet ou via une interface tel que l'Applet de luminosité de gnome. Malheureusement il arrive que cette fonctionnalité bien que présente reste inutilisable, voici donc des pistes pour régler ce petit désagrément.

Xbacklight

Xbacklight est un ensemble de commandes permettant la gestion de la luminosité.

Installer le paquet xbacklight.

Utilisation

xbacklight =50    #règle la luminosité à 50 %.
xbacklight +10    #augmente la luminosité de 10 %.
xbacklight -10    #diminue la luminosité de 10 %.

Exemple de script

Souvent on peut éteindre l'écran grâce au contrôle (en passant à 0) ce qui n'est pas agréable. De plus la différence entre xbacklight =30 et xbacklight =80 est souvent beaucoup plus petite que dans les valeurs extrêmes. Ce script permet de contrôler de manière plus agréable la luminosité :

/usr/local/bin/retroeclairage
#!/bin/bash
 
error="Usage: $0 up | $0 down"
xbl=`xbacklight`
limite1=2
limite2=10
limite3=40
limite4=100
 
if [ "$#" -eq 1 ]
	then
	if [ $1 = "up" ]
		then
		# Augmenter le rétroéclairage
		if [ $(echo "$xbl == $limite4"|bc) -eq 1 ]
				then
				echo "Rétroéclairage au maximum !"
				xbacklight = 100
			else
			if [ $(echo "$xbl < $limite2"|bc) -eq 1 ]
					then
					xbacklight +1
				else
				if [ $(echo "$xbl < $limite3"|bc) -eq 1 ]
						then
						xbacklight +10
					else
					xbacklight +20
				fi
			fi
		fi
	elif [ $1 = "down" ]
		then
		# Diminuer le rétroéclairage
		if [ $(echo "$xbl < $limite1"|bc) -eq 1 ]
				then
				echo "Rétroéclairage au minimum !"
				xbacklight =1
			else
			if [ $(echo "$xbl < $limite2"|bc) -eq 1 ]
					then
					xbacklight -1
				else  
				if [ $(echo "$xbl < $limite3"|bc) -eq 1 ]
						then
						xbacklight -10
					else
					xbacklight -20
				fi
			fi
		fi
		else
		echo $error
	fi
	else
	echo $error
fi
exit
  • Rendez-le éxécutable :
    sudo chmod +x /usr/local/bin/retroeclairage

Pour l'utiliser, il suffit alors d'entrer l'une des deux commandes suivantes dans un terminal, ou de les assigner à une combinaison de touche:

retroeclairage up
retroeclairage down

vous pouvez également émettre un son pour symboliser le maximum (ou le minimum) en ajoutant la ligne :

aplay "/Chemin_vers_mon_fichier/mon_fichier.wav"

juste après :

echo "Rétroéclairage au maximum/minimum !"

Réglage de la luminosité au démarrage

Au démarrage, en particulier sur un portable on peut effectuer le réglage de la luminosité en insérant la commande précédente dans les applications au démarrage. En fixant par exemple la luminosité à 10 on aura un écran très peu éclairé.

Conserver la luminosité au redémarrage

L'environnement Gnome ou Unity ne conserve pas la luminosité de la dernière session au redémarrage. Voici une solution pour contourner cette limite. Elle est à construire en suivant les différentes étapes ci-dessous (nécessite des connaissances en script shell).

  • Déterminer l'interface qui contrôle la luminosité en copiant/collant le code suivant dans un terminal, et le lancer une fois :
    for vendor in $(ls /sys/class/backlight/); do
      printf "$vendor : "
      cat /sys/class/backlight/$vendor/brightness
    done
    • Modifier la luminosité (au clavier ou via le réglage de luminosité du système)
    • Rappeler le code précédent, et noter alors le nom de la ligne dont la valeur a changé. Cette valeur contrôle la luminosité de l'écran.
  1. Créer les différents scripts qui vont sauvegarder et restaurer la luminosité avec les droits super-utilisateur :
    • /etc/save_br_level.sh, en remplaçant acpi_video0 par le nom que vous avez trouvé à l'étape précédente
      /etc/save_br_level.sh
      #!/bin/bash 
      cat /sys/class/backlight/acpi_video0/brightness > /etc/brightness.save
      exit 0
      </code>
          * **/etc/restore_br_level.sh**, en remplaçant acpi_video0 par le nom que vous avez trouvé à l'étape précédente <file bash /etc/restore_br_level.sh>
      #!/bin/bash 
      cat /etc/brightness.save > /sys/class/backlight/acpi_video0/brightness
      exit 0
    • Positionner les droits d'exécution :
      sudo chmod +x /etc/save_br_level.sh /etc/restore_br_level.sh
  2. Créer les différents fichiers qui vont appeler les scripts précédents au démarrage/arrêt/mise en veille de l'ordinateur :
    • liens symboliques pour l'arrêt / redémarrage
      sudo ln -s /etc/save_br_level.sh /etc/rc0.d/S10brightness
      sudo ln -s /etc/save_br_level.sh /etc/rc6.d/S10brightness
    • /etc/init/brightness.conf pour la prise en compte au démarrage de la session graphique :
      /etc/init/brightness.conf
      # Restore backlight after restart
      #
       
      description	"Restore backlight after restart"
      author		"Id2ndR"
       
      start on ((filesystem
                 and runlevel [!06]
                 and started dbus
                 and login-session-start)
                or runlevel PREVLEVEL=S)
       
      stop on runlevel [016]
       
      script
          exec /etc/restore_br_level.sh
      end script

Méthode basée sur cette source.

Si la méthode précédente ne fonctionne pas, cela peut venir du fichier /etc/init/brightness.conf. Voici donc une version plus simple de ce fichier qui peut résoudre le problème (inspiré par cette source):

# Restore backlight after restart
#
 
description	"Restore backlight after restart"
author		"Zarek"
 
start on runlevel [2]
 
script
    exec /etc/restore_br_level.sh
end script

Modification de Grub

Éditez le fichier /etc/default/grub et modifiez la ligne :

**GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"**

en :

**GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor"**

Dans certains cas il suffit d'ajouter uniquement acpi_osi=Linux, comme pour les EeePC 1005, EeePC 1001px

Puis exécuter la commande :

sudo update-grub

Redémarrer la machine et tester.

Outils graphiques

Sous Unity installez indicator-brightness qui permet de réglet la luminosité depuis la barre d'état.
Sous Gnome 3.8+ installez l'extension "Brightness Control". Cliquer sur l'icône dans la barre des tâches et régler la luminosité comme vous le souhaitez. Au prochain redémarrage, la préférence de luminosité sera mémorisée !

Sony Vaio

Solution 1

Un petit cas particulier, il semblerait que pour les ordinateurs de la marque Sony Vaio il suffit d'installer le paquet spicctrl pour activer la gestion de la luminosité.

Solution 2

Pour la gamme de portable VPC. Informations prises du forum ubuntufourm.org ici. Suivez cette procédure:

  1. Configurez le pilote nvidia, dans le fichier /etc/X11/xorg.conf comme suit :
    	Section "Device"
    		Identifier	"Default Device"
    		Option	"NoLogo"	"True"
    		Option "RegistryDwords" "EnableBrightnessControl=1"
    	EndSection
  2. Cherchez le code "vendor" utilisé par hal (à installer si nécessaire):
    lshal | grep system.hardware.vendor
    (E.g.: system.hardware.vendor = 'Sony Corporation )
  3. Cherchez le code "Product":
    lshal | grep system.hardware.product
    (E.g.: system.hardware.product = 'VPCF113FX' )
  4. Éditez le fichier /usr/share/hal/fdi/information/10freedesktop/10-laptop-panel-hardware.fdi avec droits super-utilisateur pour y ajouter cette ligne :
    <match key="/org/freedesktop/Hal/devices/computer:system.hardware.vendor" string="Sony Corporation">
    <match key="/org/freedesktop/Hal/devices/computer:system.hardware.product" contains_outof="VPCF113FX">
    <!-- needed since the acpi video module reports it handle the events, but it don't work on this machines-->
    <merge key="laptop_panel.brightness_in_hardware" type="bool">false</merge>
    </match>
    </match>
  5. Redémarrez votre ordinateur.

Samsung

Concernant les touche Fn, logiquement cette installation devrait les activer.

Modèles récents

Sur la gamme récente ATIV série 9, les touches de réglage de luminosité ont certes pour effet de déplacer un curseur virtuel de luminosité, mais pas de modifier réellement celle-ci.
Ce ne sont donc pas les touches de fonction qui posent problème mais bien leur prise en compte par le noyau ou le driver générique ATI.
Il en est de même pour le module xbacklight décrit ci-dessus: il est inopérant.
La solution à ce problème consiste à installer les drivers propriétaires Radeon et à utiliser Catalyst pour régler la luminosité.
La procédure est décrite ici pour un Samsung ATIV série 9, modèle NP905S3G.

Spécificité aux modèles Samsung N150/N210/N220

La raison de ce problème est connue, les modèles Samsung N150/N210/N220 n'ont pas été intégrés aux règles udev. Pour résoudre cela :

Si cela ne fonctionne toujours pas :

  • Éditez avec les droits super-utilisateur le fichier /lib/udev/rules.d/95-keyboard-force-release.rules
  • Recherchez la ligne avec ceci :
    [sS][aA][mM][sS][uU][nN][gG]

    Elle représente la liste des modèles Samsung pris en compte,

  • En ajoutant "|*N150/N210/N220*" (ou le modèle de votre ordinateur) à la partie "produit" des règles pour Samsung dans le fichier on active les touches Fn (pensez à relancer udev ou à redémarrer le pc pour que les changements soient pris en compte). La nouvelle section Product ressemble alors à ceci :
ENV{DMI_VENDOR}=="[sS][aA][mM][sS][uU][nN][gG]*", ATTR{[dmi/id]product_name}=="*NC10*|*NC20*|*N130*|*SP55S*|*SQ45S70S*|*SX60P*|*SX22S*|*SX30S*|*R59P/R60P/R61P*|*SR70S/SR71S*|*Q210*|*Q310*|*X05*|*P560*|*R560*|*N150/N210/N220*"

Faites la même opération pour le fichier /lib/udev/rules.d/95-keymap.rules.

Votre rétro-éclairage est maintenant gérable.

Dans certains cas, les touches fonction font planter l'ordinateur. Dans ce cas, utilisez l'applet de luminosité pour régler le rétro-éclairage.

Asus Eee PC 1101 et consorts

Si les touches Fn n'influencent pas la luminosité, suivez ces indications:
Le fichier /sys/class/backlight/*/brightness contient un nombre compris entre 1 et 100 qui règle la luminosité. La commande suivante propose par exemple une luminosité à 18% :

 echo "18" | sudo tee  

Cette procédure est aussi valable sur d'autres portables ASUS, mais le nombre à entrer peut être alors entre 0 et 10 inclus, les autres valeurs donnant l'erreur "Argument invalide".

Pour portable Asus

  • En mode root création d'un code visudo créer le fichier set_brightness dans /etc/sudoers.d/

ou ID est votre id et MACHINE le nom de votre PC ceci vous autorisera sur votre machine à utiliser la commande dans les scripts ci-dessous qui ont besoin de "sudo" sans mot de passe

ID MACHINE = NOPASSWD:  /usr/bin/tee /sys/class/backlight/intel_backlight/brightness
  • Création d'un fichier script qui va modifier la valeur dans /sys/class/backlight/*/brightness avec comme paramètres inc ou dec

source /opt/asus-brightness-master/bin/asus-brightness

à adapter ici c'est intel_backlight valeur comprise entre 500 et 5000

#!/bin/sh
if [ "$1" = "inc" ]; then
  cd /sys/class/backlight/intel_backlight/
  CURRENT=`cat /sys/class/backlight/intel_backlight/actual_brightness`
  TO=`expr ${CURRENT} + 500`
  echo "${CURRENT} + 500 = ${TO}"
  echo "${TO}" | sudo /usr/bin/tee /sys/class/backlight/intel_backlight/brightne
ss
elif [ "$1" = "dec" ]; then
  echo dec
  cd /sys/class/backlight/intel_backlight/
  CURRENT=`cat /sys/class/backlight/intel_backlight/actual_brightness`
  TO=`expr ${CURRENT} - 500`
  echo "${CURRENT} - 500 = ${TO}"
  echo "${TO}" | sudo /usr/bin/tee /sys/class/backlight/intel_backlight/brightne
ss
elif [ "${1}" = "set" ]; then
  echo "set ${2}"
  cd /sys/class/backlight/intel_backlight/
  CURRENT=`cat /sys/class/backlight/intel_backlight/actual_brightness`
  echo "${CURRENT} -> ${2}"
  echo "${2}" | sudo /usr/bin/tee /sys/class/backlight/intel_backlight/brightnes
s
else
  echo 'give me inc or dec'
fi
</code>
 
  *  Donner les droit d'exécution  
chmod +x /opt/asus-brightness-master/bin/asus-brightness 
 
 
  *  raccourcis clavier
<note tip>création de raccourci clavier en remplacement de fn+f5 fn+f6</note>
alt+f5 /opt/asus-brightness-master/bin/asus-brightness dec \\
alt+f6 /opt/asus-brightness-master/bin/asus-brightness inc \\
 
  *  Gestion de branchement alimentation et sur batterie
 dans /etc/pm/power.d création du fichier **00-brightness** LES VALEUR MIN ET MAX en fonction de configuration
 
<file bash>
#!/bin/bash
 
case $1 in
    true)
        echo "Enable screen power saving"
 
        echo  "VALEUR MIN" | sudo /usr/bin/tee /sys/class/backlight/intel_backlight/brightness
    ;;
    false)
 
        echo "Disable screen power saving"
        echo "VALEUR MAX" | sudo /usr/bin/tee /sys/class/backlight/intel_backlight/brightness
    ;;
 
esac

Voir aussi

Redshift, logiciel permettant de de diminuer la luminosité avec des tons de couleurs qui s'adapte à votre position géographique.

Sources


Contributeurs : L'Africain hfarner



Le contenu de ce wiki est sous licence : CC BY-SA v3.0