[Touches Fn] Touches de luminosité non fonctionnelles ?

Reconnaissance et configuration du matériel / kernel linux
Phyks
Hankyu
Messages : 43
Inscription : jeu. 23 août 2012, 14:04

[Touches Fn] Touches de luminosité non fonctionnelles ?

Message par Phyks »

Bonjour,

Je possède un ordinateur portable Saturne vendu assemblé par LDLC (ce serait un Clevo W150ER apparemment).

Toutes les touches multimédia (Fn + ...) fonctionnent sauf les touches de luminosité. Je ne peux régler la luminosité de l'écran ni via les préférences de Gnome ni via les touches multimédia. En revanche, toutes les autres touches multimédia fonctionnent (son, extinction de l'écran, wifi, bluetooth...).

Dans /sys/class/backlight, j'ai deux dossiers : acpi_video0 et intel_backlight.
Après test (echo de valeurs dans les fichiers brightness), c'est acpi_video0 qui gère la luminosité (aucun effet pour intel_backlight) via un chiffre entre 0 et 7.

J'ai également essayé de regarder la sortie de xev et de showkeys lors de l'appui sur les touches Fn+F8 et Fn+F9 mais je n'ai absolument aucune sortie qui apparaît.

En jouant avec les paramètres de démarrage, voici ce que j'ai eu :
- acpi_backlight=vendor -> rien
- acpi_osi=Linux -> idem
- acpi_osi= -> les touches de luminosité fonctionnent et le réglage via les paramètres de gnome fonctionne. En revanche, je n'ai toujours aucune sortie dans showkey/xev et je n'ai pas d'OSD.
- acpi_osi=Linux acpi_backlight=vendor -> rien
- acpi_osi=Linux acpi_backlight=legacy -> idem

Y a-t-il un moyen d'avoir les touches pleinement fonctionnelles (touches + OSD) ?

Merci

P.S. : Si ça peut aider, j'ai installé bumblebee pour gérer Optimus sur ce PC.
Avatar de l’utilisateur
MrMen
Chu Ko Nu
Messages : 479
Inscription : sam. 11 juil. 2009, 14:33
Localisation : (33)

Re: [Touches Fn] Touches de luminosité non fonctionnelles ?

Message par MrMen »

Je pense que tu dois faire ça en root. Perso je me suis fait ça avec un petit truc en C (pas top mais ça fait le boulot. j'ai un warning pas cool quand même mais ça marche).

Je te laisse t'en inspirer. Ensuite tu peux binder tes deux touches en appelant le script avec les bons arguments.

Code : Tout sélectionner

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
 
int main(int argc, char *argv[]){
  if (argc!=2)
    {
      fprintf(stderr, "Not enough argument\n");
      return 0;
    }
  int i = atoi(argv[1]);
  char *bright = NULL;
  int brightness;
  FILE *file = fopen("/sys/class/backlight/nvidia_backlight/brightness", "r");
  if(file)
    {
      fscanf(file, "%s", &bright);
      brightness = atoi(&bright);
      brightness+=i;
      if (brightness<50)
	{
	  brightness = 0;
	}
      if (brightness>1023)
	{
	  brightness = 1023;
	}
      fclose(file);
      FILE *test = fopen("/sys/class/backlight/nvidia_backlight/brightness", "w");
      fprintf(test, "%d", brightness);
      fclose(test);
    }
  return 0;
}
Arch 64 | Awesome | Zsh | Bépo
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17625
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [Touches Fn] Touches de luminosité non fonctionnelles ?

Message par benjarobin »

@Mr_Men Tu as de la chance que cela fonctionne car il y a des erreurs, la plus grosse est la variable bright dont la mémoire n'est pas allouée

Code : Tout sélectionner

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#define BACKLIGHT_BRIGHTNESS_FILE "/sys/class/backlight/nvidia_backlight/brightness"
#define BACKLIGHT_BRIGHTNESS_MIN  50
#define BACKLIGHT_BRIGHTNESS_MAX  1023

int main(int argc, char *argv[])
{
	int incr = 0;
	int brightness = 0;
	FILE *file = NULL;
	
	if (argc != 2)
	{
		fprintf(stderr, "Not enough argument\n");
		return 2;
	}
	
	incr = atoi(argv[1]);
	file = fopen(BACKLIGHT_BRIGHTNESS_FILE, "r");
	
	if (file)
	{
		fscanf(file, "%d", &brightness);
		brightness += incr;
	
		if (brightness < BACKLIGHT_BRIGHTNESS_MIN)
		{
			brightness = 0;
		}
		else if (brightness > BACKLIGHT_BRIGHTNESS_MAX)
		{
			brightness = BACKLIGHT_BRIGHTNESS_MAX;
		}
		
		fclose(file);
		file = fopen(BACKLIGHT_BRIGHTNESS_FILE, "w");
		if (file)
		{
			fprintf(file, "%d", brightness);
			fclose(file);
			return 0;
		}
		else
		{
			perror("Fail to open in write mode : " BACKLIGHT_BRIGHTNESS_FILE);
		}
	}
	else
	{
		perror("Fail to open in read mode : " BACKLIGHT_BRIGHTNESS_FILE);
	}
	return 1;
}
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Avatar de l’utilisateur
MrMen
Chu Ko Nu
Messages : 479
Inscription : sam. 11 juil. 2009, 14:33
Localisation : (33)

Re: [Touches Fn] Touches de luminosité non fonctionnelles ?

Message par MrMen »

Ah merci pour les corrections. Je savais quec'était pas Bon mais j'avais pas trop cherché
Arch 64 | Awesome | Zsh | Bépo
Phyks
Hankyu
Messages : 43
Inscription : jeu. 23 août 2012, 14:04

Re: [Touches Fn] Touches de luminosité non fonctionnelles ?

Message par Phyks »

Ok mais j'ai réussi à faire marcher mes touches de luminosité !

Mon problème maintenant est que je n'arrive pas à avoir d'OSD (l'OSD de Gnome par exemple) pour la luminosité.

Merci
Avatar de l’utilisateur
MrMen
Chu Ko Nu
Messages : 479
Inscription : sam. 11 juil. 2009, 14:33
Localisation : (33)

Re: [Touches Fn] Touches de luminosité non fonctionnelles ?

Message par MrMen »

Bon c'est moins cool mais tu peux faire ça avec des notify…
Arch 64 | Awesome | Zsh | Bépo
Répondre