[luminosité] marche pas

Reconnaissance et configuration du matériel / kernel linux
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [luminosité] marche pas

Message par bobo »

Il me semble que l'arborescence /sys est construite au démarrage, si bien que tout est root là-dedans. Pour refaire la manip du changement de droits|groupe, il faudrait que tu te fasses un service systemd au démarrage.
dwm — BÉPO — vim — “more is less !”
AchilleFraisse
Elfe
Messages : 623
Inscription : dim. 27 avr. 2014, 09:32

Re: [luminosité] marche pas

Message par AchilleFraisse »

bobo a écrit :[...] il faudrait que tu te fasses un service systemd au démarrage.
C'est à dire.. . ?
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [luminosité] marche pas

Message par bobo »

L'idée c'est rajouter une opération qui changerait les droits sur /sys/leds/asus à l'initialisation du système. Pour cela, Archlinux utilise systemd. Tu peux écrire des « unités » toi-même, et les ajouter au démarrage de la machine en les ajoutant dans l'arborescence /etc/system/systemd. Ainsi les droits seraient changés à chaque redémarrage.

Un bout de doc sur la création d'« unité »:
https://wiki.archlinux.org/index.php/Sy ... unit_files
Pour ton cas, un service « oneshot » est suffisant.
dwm — BÉPO — vim — “more is less !”
bobo
Elfe
Messages : 593
Inscription : mar. 08 avr. 2014, 22:47

Re: [luminosité] marche pas

Message par bobo »

un exemple de service one-shot, que j'ai mis en place sur mon eeepc (pour l'undervolt au démarrage, j'en profite pour le partager utilisant le-dit netbook pour les vacances :D ):

Code : Tout sélectionner

[Unit]
Description=undervolt/underclock
After=multi-user.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/root/undervolt/undervolt_eeepc.sh

[Install]
WantedBy=multi-user.target
En résumé :
– voilà le contenu du fichier /etc/systemd/system/multi-user.target.wants/undervolt_eeepc.service
– ça lance le script /root/undervolt/undervolt_eeepc.sh à chaque démarrage en root

Si tu as un script à la lancer en root à chaque démarrage, tu peux t'en inspirer…
dwm — BÉPO — vim — “more is less !”
avi3000
Chu Ko Nu
Messages : 405
Inscription : dim. 19 juin 2011, 18:53
Localisation : dans le neuf trois

Re: [luminosité] marche pas

Message par avi3000 »

Bonjour,
Modifier des permissions dans /sys ne me semble pas la bonne solution.

La méthode que j'utilise, fonctionnelle sur un ux31a :
vérifier que les modules asus sont bien chargés :

Code : Tout sélectionner

lsmod|grep asus
asus_nb_wmi            24576  0
asus_wmi               24576  1 asus_nb_wmi
sparse_keymap          16384  1 asus_wmi
led_class              16384  4 rtsx_usb_sdmmc,iwldvm,input_leds,asus_wmi
rfkill                 20480  5 cfg80211,bluetooth,asus_wmi
wmi                    20480  1 asus_wmi
video                  32768  2 i915,asus_wmi
installer le paquet upower

enregistrer le script ci-dessous =>/usr/local/bin/asus-kbd-brightness

Code : Tout sélectionner

#! /bin/bash
case $1 in
[0123456789])
     dbus-send --type=method_call --print-reply=literal --system \
     --dest="org.freedesktop.UPower" /org/freedesktop/UPower/KbdBacklight org.freedesktop.UPower.KbdBacklight.SetBrightness int32:"$1"
     ;;  
[uU])   #up 
     current_brightness=$(<"/sys/class/leds/asus::kbd_backlight/brightness")
     dbus-send --type=method_call --print-reply=literal --system \
     --dest="org.freedesktop.UPower" /org/freedesktop/UPower/KbdBacklight org.freedesktop.UPower.KbdBacklight.SetBrightness int32:"$((++current_brightness))"
     ;;  
[dD])   #down
     current_brightness=$(<"/sys/class/leds/asus::kbd_backlight/brightness")
     dbus-send --type=method_call --print-reply=literal --system \
     --dest="org.freedesktop.UPower" /org/freedesktop/UPower/KbdBacklight org.freedesktop.UPower.KbdBacklight.SetBrightness int32:"$((--current_brightness))"
     ;;  
esac
echo "brightness: $(<"/sys/class/leds/asus::kbd_backlight/brightness")"
tester le script, sur l'ux31A, le max_brightness est à 3.

pour dwm copier les lignes ci-dessous aux endroits adéquats, sinon on peut toujours faire un bind :

Code : Tout sélectionner

static const char *kbbrightupcmd[]   = { "asus-kbd-brightness", "u", NULL };
static const char *kbbrightdowncmd[] = { "asus-kbd-brightness", "d", NULL };

{ 0, XF86XK_KbdBrightnessUp,                  spawn,            {.v = kbbrightupcmd } },
{ 0, XF86XK_KbdBrightnessDown,                spawn,            {.v = kbbrightdowncmd } },
Je suis sur devuan avec sysvinit et kbwm
Répondre