Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
retro-eclairage [Le 17/11/2017, 22:23] – [Modification de Grub] rectification d'une syntaxe absurde Roschanretro-eclairage [Le 23/08/2019, 05:30] (Version actuelle) – [Spécificité aux modèles Samsung N150/N210/N220] 90.33.239.168
Ligne 1: Ligne 1:
 +{{tag>Xenial matériel énergie personnalisation}}
  
 +-------------
 +
 +====== 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é. 
 +
 +[[:tutoriel:comment_installer_un_paquet|Installer le paquet]] **[[apt>xbacklight]]**.
 +
 +==== Utilisation ====
 +<code>
 +xbacklight =50    #règle la luminosité à 50 %.
 +xbacklight +10    #augmente la luminosité de 10 %.
 +xbacklight -10    #diminue la luminosité de 10 %.
 +</code>
 +Pour gérer finement et facilement l'éclairage, vous pouvez créer **2 raccourcis-clavier**, par exemple : **Ctrl ◄** pour diminuer la luminosité et** Ctrl ►** pour l'augmenter : \\
 +si vous utilisez l'environnement XFCE (Xubuntu), c'est le menu Paramètres > Clavier > Raccourcis d'applications > Ajouter : \\
 +- dans le champ "Commande", pour augmenter légèrement la luminosité, saisissez : **xbacklight +1** \\
 +- ensuite les touches de raccourcis : **Ctrl ►** \\
 +
 +Idem pour diminuer la luminosité : **xbacklight -1** associé à **Ctrl ◄** \\
 +
 +(NB : les symboles ◄ et ► représentent les touches "déplacement vers la gauche" et "déplacement vers la droite" de votre clavier) \\
 +==== 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é :
 +  * [[:tutoriel:comment_modifier_un_fichier|Créez le fichier]] **retroeclairage** dans le dossier **/usr/local/bin** avec les [[:sudo|droits superutilisateur]] dont le contenu est ci-dessous. Pour déplacer un fichier vous pouvez utiliser la commande [[:tutoriel:console_commandes_de_base#mv]].
 +<file bash /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</file>
 +  * Rendez-le [[:tutoriel:script_shell#executer_un_script|éxécutable]].
 +
 +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: <code>retroeclairage up
 +retroeclairage down</code>
 +
 +vous pouvez également émettre un son pour symboliser le maximum (ou le minimum) en ajoutant la ligne :
 +<file bash>aplay "/Chemin_vers_mon_fichier/mon_fichier.wav"</file>
 +juste après :
 +<file bash>echo "Rétroéclairage au maximum/minimum !"</file>
 +
 +
 +==== 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 [[#Utilisation|commande précédente]] dans les [[:tutoriel:application_demarrage|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 : <code>for vendor in $(ls /sys/class/backlight/); do
 +  printf "$vendor : "
 +  cat /sys/class/backlight/$vendor/brightness
 +done
 +</code>
 +    * 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.
 +  - [[:tutoriel:comment_modifier_un_fichier|Créer]] les différents scripts qui vont sauvegarder et restaurer la luminosité avec les [[:sudo|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 <file bash /etc/save_br_level.sh>
 +#!/bin/bash 
 +cat /sys/class/backlight/acpi_video0/brightness > /etc/brightness.save
 +exit 0
 +</file>
 +    * **/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
 +</file>
 +    * Positionner les droits d'exécution : <code>sudo chmod +x /etc/save_br_level.sh /etc/restore_br_level.sh</code>
 +  - 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 <code>
 +sudo ln -s /etc/save_br_level.sh /etc/rc0.d/S10brightness
 +sudo ln -s /etc/restore_br_level.sh /etc/rc6.d/S10brightness
 +</code>
 +    * **/etc/init/brightness.conf** pour la prise en compte au démarrage de la session graphique  : <file bash /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
 +</file>
 +
 +Méthode basée sur [[http://www.ercoppa.org/Linux-Restore-brightness-after-rebootwakeup-under-Ubuntu-nvidiabl-module.htm|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 ([[http://santanuchatterjee.blogspot.fr/2014/05/using-upstart-in-ubuntu-1204-to-set.html|inspiré par cette source]]): <file bash>
 +# Restore backlight after restart
 +#
 +
 +description "Restore backlight after restart"
 +author "Zarek"
 +
 +start on runlevel [2]
 +
 +script
 +    exec /etc/restore_br_level.sh
 +end script
 +</file>
 +
 +===== Modification de Grub =====
 +
 +[[:tutoriel:comment_modifier_un_fichier|Éditez le fichier]] **/etc/default/grub** et modifiez la ligne : <file>GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"</file>
 +en : <file>GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi=Linux acpi_backlight=vendor"</file>
 +Dans certains cas il suffit d'ajouter uniquement ''acpi_osi=Linux'', comme pour les EeePC 1005, EeePC 1001px
 +
 +Pour d'autres portables Asus avec igp intel il est possible de tester:
 +<file>GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi_osi= acpi_backlight=intel"</file>
 +(//Fonctionne pour le ux310ua sous ubuntu 16.04 à l'heure actuelle//).
 +
 +Puis exécuter la commande :
 +<code>sudo update-grub</code>
 +Redémarrer la machine et tester.
 +
 +===== Outils graphiques =====
 +Sous Unity installez [[:indicator-applications|indicator-brightness]] qui permet de réglet la luminosité depuis la barre d'état.\\
 +Sous [[:gnome-shell|Gnome 3.8+]] installez l'extension [[https://extensions.gnome.org/extension/231/brightness-control/|"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'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>spicctrl]]**[lien mort] pour activer la gestion de la luminosité.
 +
 +==== Solution 2 ====
 +
 +Pour la gamme de portable VPC. Informations prises du forum ubuntufourm.org [[http://ubuntuforums.org/archive/index.php/t-1541417.html|ici]]. Suivez cette procédure:
 +  - Configurez le pilote nvidia, dans le fichier **/etc/X11/xorg.conf** comme suit : <file>
 + Section "Device"
 + Identifier "Default Device"
 + Option "NoLogo" "True"
 + Option "RegistryDwords" "EnableBrightnessControl=1"
 + EndSection
 +</file>
 +  - Cherchez le code "vendor" utilisé par hal (à installer si nécessaire): <code>lshal | grep system.hardware.vendor
 +(E.g.: system.hardware.vendor = 'Sony Corporation )</code>
 +  - Cherchez le code "Product": <code>lshal | grep system.hardware.product
 +(E.g.: system.hardware.product = 'VPCF113FX' )</code>
 +  - [[:tutoriel:comment_modifier_un_fichier|Éditez le fichier]] **/usr/share/hal/fdi/information/10freedesktop/10-laptop-panel-hardware.fdi** avec [[:sudo|droits super-utilisateur]] pour y ajouter cette ligne : <file>
 +<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>
 +</file>
 +  - 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 [[:amd-ati|Radeon]] et à utiliser [[:Catalyst]] pour régler la luminosité.\\
 +La procédure est décrite ici pour un [[:installation-samsung-portable-ativ-lite-serie9#graphisme|Samsung ATIV série 9]], modèle NP905S3G.
 +
 +==== Spécificité aux modèles Samsung N150/N210/N220 ====
 +<note important>La méthode "voria" ne fonctionne que pour les machines dotées d'un BIOS, elle semble incompatible avec les machines récentes dotées d'un [[:uefi|UEFI]] en remplacement du BIOS.</note>
 +<note important>Le projet "voria" est à l'arrêt depuis 2014, la dernière version supportée est la version 14.04LTS. Pour 16.04 utiliser le dépôt trusty.</note>
 +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 :
 +  * [[:ppa#ajout_d_un_ppa_a_vos_sources_logicielles|Ajoutez le PPA]] **ppa:voria/ppa**((https://launchpad.net/~voria/+archive/ppa)) dans vos sources de logiciels,
 +  * Puis [[:tutoriel:comment_modifier_sources_maj#recharger_la_liste_des_paquets|rechargez la liste des paquets]],
 +  * [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>samsung-tools, samsung-backlight]]**,
 +  * Redémarrez votre ordinateur.
 +
 +Si cela ne fonctionne toujours pas :
 +  * [[:tutoriel:comment_modifier_un_fichier|Éditez]] avec les [[:sudo|droits super-utilisateur]] le fichier **/lib/udev/rules.d/95-keyboard-force-release.rules**
 +  * Recherchez la ligne avec ceci :<file>[sS][aA][mM][sS][uU][nN][gG]</file> 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 :
 +<file>
 +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*"
 +</file>
 +Faites la même opération pour le fichier **/lib/udev/rules.d/95-keymap.rules**.
 +
 +Votre rétro-éclairage est maintenant gérable.\\
 +
 +**Ces deux fichiers n'existent pas sous Ubuntu 16.04, voici ce qui fonctionne :**
 +
 +[[:tutoriel:comment_modifier_un_fichier|Créer le fichier]] ** /usr/share/X11/xorg.conf.d/20-intel.conf** [[:sudo|avec les droits d'administration]] et coller le texte qui suit :
 +<file>
 +   Section "Device"
 +        Driver "intel"
 +        Option "Backlight" "intel_backlight"
 +        Identifier "card0"
 +   EndSection
 +</file>
 +
 +Cette seule modification fonctionne parfaitement sur un **modèle NP-X420** avec Ubuntu 16.04 LTS. Elle ne fonctionne pas en 18.04 LTS.
 +
 +Dans certains cas, les touches fonction font planter l'ordinateur. Dans ce cas, utilisez [[:indicator-applications#Indicateurs additionnels|l'applet]] de luminosité pour régler le rétro-éclairage.
 +=====Asus=====
 +==== 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% : 
 +
 +<code> echo "18" | sudo tee  </code>
 +
 +<note tip>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".</note>
 +
 +==== 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
 +<code>ID MACHINE = NOPASSWD:  /usr/bin/tee /sys/class/backlight/intel_backlight/brightness</code>
 +
 +
 +  *  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
 +
 +
 +<file bash>
 +#!/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
 +</file>
 +
 +  *  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
 +</file>
 +FIXME pour ce qui suit sur le version récentes d'Ubuntu (info qui date d'Ubuntu 9.10)\\
 +
 +Ou encore, si vous avez l'impression bizarre que l'écran de votre pc portable est sombre, pas aussi lumineux que sous MS Windows™, la cause est simple, elle est due à la sonde de luminosité mal gérée. Le capteur se situe à gauche des diodes lumineuses. Sous Windows, ce capteur se désactive par "Fn + a ou q" suivant le clavier. :
 +* [[:tutoriel:comment_editer_un_fichier|Créer le fichier]] **''/etc/init.d/brightness''** avec les droits root, et le sauvegarder avec le contenu suivant : <file>
 +#!/bin/sh
 +echo 0 > /sys/devices/platform/asus-laptop/ls_switch</file>
 +  * Rendre le script exécutable : <code>sudo chmod +x /etc/init.d/brightness</code>
 +  * Permettre le lancement du script au démarrage : <code>sudo update-rc.d brightness defaults 90</code>
 +  * Redémarrer votre ordinateur, si vous n'avez pas envie tout de suite, entrer la commande suivante : 
 +<code>sudo -s
 +echo 0 > /sys/devices/platform/asus-laptop/ls_switch</code>
 +  * Voilà, l'écran devrait retrouver une luminosité normale. 
 +
 +
 + =====Configuration spécifique à Mate =====
 +Il est possible sous mate de définir la valeur du rétro éclairage (en %) sur secteur et sous batterie. C'est peut-être adapatable à d'autres environnements.
 +Par exemple si on veut qu'il soit par défaut éteint et ne l'allumer que lorsqu'on on le souhaite via les touches du clavier:
 +<code>gsettings set org.mate.power-manager kdb-brightness-dim-by-on-battery 100
 +</code>
 +ce qui configure mate pour qu'il réduise de 100% le rétroéclairage quand il est sur batterie (donc le met à 0)
 +<code>gsettings set org.mate.power-manager kdb-brightness-on-ac 0 </code>
 + ce qui dit à mate de mettre le rétroéclairage à 0% quand il est sur secteur.
 +
 +Ces valeurs sont à affiner selon les envies.
 +
 + =====Voir aussi =====
 +[[:Redshift]], logiciel permettant de de diminuer la luminosité avec des tons de couleurs qui s'adapte à votre position géographique.
 +
 +xrandr permet aussi de diminuer la luminosité si xbacklight ne marche pas (avec l'option -- brightness).
 +
 + =====Sources =====
 +  * [[http://forum.ubuntu-fr.org/viewtopic.php?pid=3560760|ce post du forum]],
 +  * [[http://forum.ubuntu-fr.org/viewtopic.php?pid=985007#p985007|et celui-ci]].
 +
 +-------------------
 +Contributeurs :
 +[[:utilisateurs:l_africain|L'Africain]]
 +hfarner