web-dev-qa-db-fra.com

Clés de luminosité Lenovo ideapad ne générant aucun événement dans Ubuntu 16.04.1

J'ai un nouveau Lenovo Ideapad 500S avec un nouvel Ubuntu 16.04.1 en cours d'exécution. Malheureusement, les touches de luminosité haut/bas ne fonctionnent pas. (Ils fonctionnent bien sous Windows.)

Lancer acpi_listen affiche les événements générés pour les touches d'augmentation/de diminution du volume, mais pas pour les augmentations/diminutions de luminosité. Lancer xev ne m’a pas non plus généré de sortie pour les touches d’augmentation/diminution de la luminosité.

Après avoir modifié plusieurs fois la ligne GRUB_CMDLINE_LINUX_DEFAULT dans /etc/default/grub avec des options telles que acpi_backlight=vendor, video.use_native_backlight=1, acpi_osi=Linux et acpi_osi=, je peux confirmer que cela change. les liens symboliques dans /sys/class/backlight/ et je n'ai actuellement que intel_backlight ici.

Exécuter echo <NUM> | Sudo tee /sys/class/backlight/intel_backlight/brightness fonctionne correctement et modifie la luminosité, de même que la modification de Settings > Brightness and Lock.

Rien dans Ubuntu ne semble pouvoir détecter ces clés, je ne suis donc pas sûr que toute modification de la configuration de Grub importera du tout.

S'il vous plaît laissez-moi savoir si quelqu'un sait comment résoudre ce problème et également si des informations supplémentaires seront utiles dans le débogage de ce problème.

Mise à jour:

Ajouter acpi_osi=Linux acpi_backlight=intel_backlight à la ligne dans grub semble rendre la touche de luminosité baissée générer quelque chose dans xev (bien que rien dans acpi_listen encore). La sortie est:

KeyPress event, serial 37, synthetic NO, window 0x3c00001,
    root 0xd3, subw 0x0, time 391361, (728,884), root:(793,936),
    state 0x0, keycode 120 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 37, synthetic NO, window 0x3c00001,
    root 0xd3, subw 0x0, time 391368, (728,884), root:(793,936),
    state 0x0, keycode 120 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

sorties supplémentaires:

$ lspci -nnk | grep -iA2 vga
00:02.0 VGA compatible controller [0300]: Intel Corporation Sky Lake Integrated Graphics [8086:1916] (rev 07)
    Subsystem: Lenovo Skylake Integrated Graphics [17aa:3828]
    Kernel driver in use: i915_bpo
3
Vivek Ghaisas

J'ai finalement résolu ce problème en utilisant quelques solutions de contournement.

La première étape consistait à rendre les clés détectables. J'avais un ordinateur portable d'un modèle similaire (Lenovo Z400) et j'ai examiné quels codes clés avaient été générés. Sur cette base, je mets ceci dans mon /etc/rc.local/:

setkeycodes e054 225 # Brightness up -> brightness up
setkeycodes e04c 224 # Brightness down -> brightness down

La deuxième étape consistait à faire en sorte que les touches modifient la luminosité. J'ai d'abord remarqué que l'exécution de xdotool key 232 et de xdotool key 233 augmentait et diminuait parfaitement la luminosité (y compris la notification de modification dans Unity). Ensuite, j'ai essayé deux choses pour que la luminosité fonctionne.

Tout d'abord, j'ai remarqué que xev me montrait maintenant les événements XF86MonBrightnessUp et XF86MonBrightnessDown pour les deux clés, ce qui signifie que tout fonctionnait bien au niveau X. J'ai donc simplement utilisé le gestionnaire de raccourcis d'Ubuntu et enregistré les deux clés (qui étaient lues comme leurs équivalents XF86) dans les commandes xdotool. Cela a très bien fonctionné!

Cependant, quelques semaines plus tard, en raison de certains packages/pilotes que j'ai modifiés, xev cessa de signaler les événements XF86. La méthode ci-dessus ne fonctionnait donc pas. Cependant, acpi_listen a montré que les événements video/brightnessdown et video/brightnessup étaient générés. Ainsi, après quelques recherches sur Google, j'ai ajouté ce qui suit dans un nouveau fichier, /etc/acpi/events/ideapad-monitor-brightness-up:

# same event as reported by acpi_listen
event=video/brightnessup BRTUP 00000086 00000000 K
action=su vivek -c "export DISPLAY=:0.0; xdotool getactivewindow && xdotool key 233 2>&1 > /tmp/log"
# The redirection into /tmp/log probably doesn't make any difference

et aussi un fichier équivalent ideapad-monitor-brightness-down avec xdotool key 232 et qui a résolu le problème. Je n'ai pas eu de problèmes depuis. :)

1
Vivek Ghaisas

Je n'ai plus eu de problèmes avec les touches de luminosité depuis 2012 avec mon ancien ordinateur portable (Toshiba Satellite Core 2 Duo) sous Ubuntu 14.04, mais il semble que de nombreux utilisateurs l'aient fait. La solution la plus populaire consiste à créer le fichier en tapant:

Sudo touch /usr/share/X11/xorg.conf.d/20-intel.conf

puis éditez le fichier en utilisant:

gksu gedit /usr/share/X11/xorg.conf.d/20-intel.conf

then remplit le fichier avec:

Section "Device"
        Identifier  "card0"
        Driver      "intel"
        Option      "Backlight"  "intel_backlight"
        BusID       "PCI:0:2:0"
EndSection

Enregistrez et redémarrez .

Remarque La BusID doit correspondre au résultat de:

lspci -nnk | grep -iA2 vga

Remplacez également intel_backlight ci-dessus par ce qui apparaît dans la commande lspci si différent.

Une autre option à essayer est de changer la ligne de commande grub avec acpi_backlight=vendor.

Mise à jour

Je viens de tomber sur cette page Web Ubuntu sur les touches de luminosité: https://wiki.ubuntu.com/Kernel/Debugging/Backlight

Lors de la mise à niveau vers Ubuntu 16.04, le noyau 16.04 était accompagné de tous les problèmes de suspension/reprise, polices minces, écrans noirs au lieu de papiers peints, utilisation du processeur supérieure à la normale et températures plus élevées que la normale. J'ai écrit bon nombre des étapes que j'ai suivies dans cette réponse: buntu 15.10: Différents "types" de gels et d'arrêt inattend qui a résolu la plupart de mes problèmes sur une plate-forme Intel Ivy Bridge et cela pourrait très bien aider votre plate-forme Sky Lake.

0
WinEunuuchs2Unix