Pourquoi le contrôle de luminosité de mon Thinkpad saute-t-il les étapes?


15

Le problème: il y a 16 niveaux de luminosité sur mon ordinateur portable, mais en appuyant sur les raccourcis clavier Fn+Home, on Fn+Endajuste la luminosité 3 étapes à la fois (par exemple de 0 à 3, ou de 15 à 12).

Je trouve important de noter qu'à l'écran de connexion, les raccourcis clavier fonctionnent correctement . Mais après la connexion, ce comportement étrange apparaît.

De plus, si je donne le focus à un menu (par exemple, cliquez sur le menu Fichier dans Firefox), les raccourcis fonctionnent correctement .

xdotool key XF86MonBrightnessDownfonctionne bien, en ajustant la luminosité en 1 étape (vérifié avec cat /sys/devices/pci0000:00/0000:00:02.0/backlight/acpi_video0/brightness).

J'ai également installé indicator-brightness- il montre 16 leves (0-15).

J'ai essayé de définir acpi_backlight=vendordans grub (inspiré par ce sujet: http://ubuntuforums.org/showthread.php?t=1909184 avec un problème similaire). Cela a fonctionné en ce que les raccourcis clavier fonctionnaient bien. Mais des problèmes avec la notification OSD, xdotool et l'indicateur de luminosité sont apparus. Je pense donc que ce n'est pas une bonne solution.

Il semble qu'après la connexion, quelque chose interfère dans le schéma de traitement des raccourcis clavier. Des idées?

Modifier (informations supplémentaires)

  • J'ai observé que les raccourcis clavier fonctionnent au niveau matériel - je peux régler la luminosité immédiatement après avoir allumé mon ordinateur portable (par exemple sur l'écran du BIOS).

  • Après les $ killall gnome-settings-daemonraccourcis clavier, réglez la luminosité d'une étape, mais aucune notification n'apparaît. Récupère gnome-settings-daemonrapidement et retourne le problème en trois étapes.

  • acpi_listen donne la sortie suivante (les deux touches séquentiellement):

    $ acpi_listen
    ibm/hotkey HKEY 00000080 00001010
    video LCD0 00000086 00000000
    ibm/hotkey HKEY 00000080 00001011
    video LCD0 00000087 00000000
    

    À ce stade, je pensais que (1) les raccourcis clavier fonctionnent au niveau matériel; (2) ibm/hotkeys'occupe des raccourcis clavier; (3) videoprend également soin. Ainsi, un problème de triple étape apparaît.

    J'ai essayé de mettre la vidéo sur liste noire (je m'attendais à ce que cela conduise à un comportement en double étape), mais rien n'a changé.

Pour contourner ce problème, j'ai créé mes propres raccourcis clavier dans le Gestionnaire de paramètres CompizConfig - comme décrit ici , mais avec un --clearmodifiersargument:

xdotool key --clearmodifiers XF86MonBrightnessUp
xdotool key --clearmodifiers XF86MonBrightnessDown

Alors maintenant, je peux utiliser des raccourcis clavier initiaux ou de nouveaux pour des ajustements plus fins.

Questions ouvertes

Il y avait déjà une discussion pour le cas avec double étape: Lenovo ThinkPads, les touches de fonction de luminosité effectuent deux étapes au lieu d'une, à la recherche d'une solution :

le matériel le fait et envoie également un signal indiquant que le bouton a été enfoncé. Peut-être pourriez-vous annuler le raccourci dans Système -> Préférences -> Raccourcis clavier pour cette action?

Mais j'ai hâte de savoir,

  1. Pourquoi ai-je un problème de triple étape?
  2. Comment puis-je annuler le traitement de ces raccourcis clavier?

Je serais très reconnaissant si quelqu'un l'expliquait.

Réponses:


14

D'où viennent les 3 étapes pour 1 pression de touche?

Vous obtenez trois niveaux de luminosité pour une touche, car:

  1. Le pilote ACPI / vidéo standard ajuste l' étape 1
  2. Le thinkpad_acpipilote dit au BIOS d'ajuster l' étape 2 mais transmet toujours l'événement de pression de touche
  3. Le démon d'alimentation GNOME intercepte cette pression de touche et indique à ACPI de s'ajuster à nouveau étape 3

1. Désactivez le pilote vidéo de régler la luminosité de son propre chef

Cela supprime l'une des trois étapes (étape 1) ci-dessus.

  • Ouvrez le terminal
  • Type sudo sh -c 'echo -n 0 > /sys/module/video/parameters/brightness_switch_enabled'
  • Testez, vous devriez maintenant avoir un contrôle de la luminosité par étapes de deux
  • Pour désactiver automatiquement cela au démarrage, ouvrez /etc/rc.localdans votre éditeur préféré, et avant la dernière ligne ( exit 0), ajoutez:

    echo -n 0> / sys / module / video / parameters / luminosité_switch_enabled

2. Recompilez le thinkpad_acpimodule pour résoudre le problème de la double pression

  • Nous devons arrêter thinkpad_acpid'ajuster la luminosité via le BIOS et de ne faire suivre la touche à GNOME, de sorte que GNOME fasse la seule étape de réglage
  • Il s'agit d'un bug connu qui a été corrigé dans le noyau 3.4+
  • Pour le corriger pour Ubuntu 12.04 / Precise, nous allons corriger sa version de thinkpad_acpiet le recompiler:

    1. Installez les en-têtes du noyau: sudo apt-get install linux-headers-$(uname -r)
    2. Installer des outils de construction sudo apt-get install build-essential
    3. Créez un répertoire temporaire et changez-le:
      mkdir ~ / tpacpi-bright && cd ~ / tpacpi-bright
    4. Téléchargez et corrigez le fichier source à thinkpad_acpi.cpartir du référentiel git du noyau Ubuntu:

      wget -O- "http: //kernel.ubuntu.com/git? p = ubuntu / ubuntu-precise.git; \
      a = blob_plain; f = drivers / platform / x86 / thinkpad_acpi.c; hb = HEAD "\
      | sed -e 's / tp_features.bright_acpimode && acpi_video / acpi_video / g' \
      > thinkpad_acpi.c
    5. Dans le même dossier où thinkpad_acpi.ca été téléchargé, vous aurez besoin d'un "Makefile". Vous pouvez le télécharger directement depuis cette Pastebin , en utilisant:

      wget -OMakefile http://pastebin.com/raw.php?i=ybpnxeUT

    OU collez ce qui suit dans un fichier appelé Makefile:

    obj-m + = thinkpad_acpi.o
    tout: make -C / lib / modules / $ (shell uname -r) / build M = $ (PWD) modules
    nettoyer: make -C / lib / modules / $ (shell uname -r) / build M = $ (PWD) clean
    1. Tapez maintenant makepour créer le module; vous verrez un thinkpad_acpi.kofichier dans le dossier une fois terminé.
  • Testez le module corrigé après l'avoir chargé avec:

    sudo rmmod thinkpad_acpi && sudo lsmod thinkpad_acpi.ko
  • Si la luminosité est maintenant fixe et vous donne un contrôle total, remplacez le module d'origine par le module patché:

    TPDIR = / lib / modules / $ (uname -r) / kernel / drivers / platform / x86
    sudo mv $ TPDIR / thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko.stock
    sudo mv ~ / tpacpi-bright / thinkpad_acpi.ko $ TPDIR / thinkpad_acpi.ko
    
  • Vous pouvez nettoyer le dossier de construction avec make clean; gardez-le autour pour les futures mises à niveau du noyau!


merci pour votre réponse! Votre solution a complètement fonctionné pour moi. Le seul problème - le contrôle de la luminosité ne fonctionne pas maintenant sur l'écran de connexion (je semble comprendre pourquoi - parce que le nouveau thinkpad_acpiest utilisé, mais le démon d'alimentation GNOME est encore en panne).
Andrey

Pour des raisons d'apprentissage, pourriez-vous me dire s'il existe un moyen de dire au démon d'alimentation GNOME de ne pas traiter les raccourcis clavier de luminosité, comme nous l'avons fait avec le videopilote? Ubuntu fournit une interface graphique ( All Settings -> Keyboard -> Shortcuts) pour personnaliser les touches de raccourci audio (Volume haut / bas, Muet), mais je n'ai pas trouvé où je pouvais changer ou désactiver les touches de luminosité.
Andrey

@Andrey: vous êtes les bienvenus! J'ai un Thinkpad T520, c'était donc une bonne occasion de résoudre le problème. En ce qui concerne l'écran de connexion, je pense que la façon de résoudre ce problème consiste à mettre le désactiver non pas dans rc.localmais dans ~/.profile, afin qu'il ne s'active qu'après votre connexion. S'il existe un moyen simple de désactiver le démon d'alimentation GNOME du traitement des raccourcis clavier de luminosité, cela désactivera également l'OSD (comme backlight=vendor); le faire correctement peut nécessiter de modifier le code source ... J'essaierai d'y jeter un œil. Quoi qu'il en soit, une fois la version 12.10 publiée, ils publieront le noyau rétroporté fixe pour la version 12.04, donc cela fonctionnera alors.
ish

2

J'avais exactement le même problème que vous et mon système démarrait toujours avec l'écran éteint.

Je tiens à vous remercier de m'avoir indiqué dans la bonne direction, a acpi_backlight=vendorfait l'affaire pour moi sans aucun des problèmes que vous avez rencontrés. J'utilise un HP G7 1116sg avec des graphismes hybrides (Intel HD3000 (actuellement uniquement en utilisant Intel en raison de problèmes hybrides dans ubuntu. Je dis cela uniquement parce que le X220 est répertorié comme ayant le même adaptateur graphique) / Radeon HD6870) et Ubuntu 12.04.

Je voulais juste dire que les changements de grub ont fonctionné pour moi sans aucun problème apparent.

Bonne chance pour trouver une solution.


Heureux que cela ait fonctionné pour vous!
Andrey

0

La définition de /sys/module/video/parameters/brightness_switch_enabledto 0me rend incapable de contrôler la luminosité sur mon Thinkpad X230 via des touches de raccourci, à la fois en tty et en xfce 4.10. J'ai dû dire au xfce4-power-manager de ne pas modifier la luminosité des événements clés. Vous pouvez le faire en définissant l'une des deux clés de configuration masquées. Le premier est:

xfconf-query -c xfce4-power-manager -n -t bool -p /xfce4-power-manager/change-brightness-on-key-events -s false

Et le second:

xfconf-query -c xfce4-power-manager -n -t bool -p /xfce4-power-manager/show-brightness-popup -s false

Remarque: ces deux paramètres désactivent l'écran contextuel de luminosité sur mon système, mais au moins, je récupère tous les 16 niveaux de luminosité!

Vous pouvez en savoir plus sur ce problème sur cette page et au bas de cette page .


0

Dans mon ordinateur portable Lenovo S205, j'ai eu ce problème où le pilote vidéo et le gnome ont ajusté la luminosité.

Mais mon expérience en désactivant la brightness_switch_enabledpropriété est que gnome est lent et semble racé lors de la mise à jour du rétro-éclairage --- par exemple, si je laisse les touches enfoncées pendant quelques secondes et que je les lâche, gnome prend toujours 5 à 10 secondes pour traiter les événements.

Je préfère donc laisser le pilote vidéo faire les ajustements et empêcher gnome de les faire.

sudo chmod -x /usr/lib/gnome-settings-daemon/gsd-backlight-helper

Désactiver le gsd-backlight-helperfait l'affaire pour moi. J'ai exploré les internets et il ne semble pas y avoir d'option visible par l'utilisateur pour faire de même.

J'ai perdu l'OSD de luminosité mais maintenant les changements de luminosité sont traités instantanément, et en bonus j'ai toujours le contrôle de luminosité sur le tty.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.