13 votes

Pilote d'ingénierie inverse pour le clavier rétroéclairé multicolore des ordinateurs portables Clevo

Voici ma situation :

J'ai récemment acheté un Sager NP9170 (identique à celui du Clevo P170EM) et il dispose d'un clavier multicolore et rétro-éclairé. Sous Windows 7, vous pouvez lancer un application qui vous permet de changer la couleur du rétro-éclairage en une multitude de couleurs (bleu, vert, rouge, etc.).

Je veux la même fonctionnalité sous Linux. Je n'ai pas été capable de trouver un logiciel qui fasse cela, donc je suppose que je vais devoir l'écrire moi-même. Je suis programmeur de métier, mais je n'ai pas fait beaucoup de programmation de bas niveau, et je n'ai certainement jamais écrit un pilote de périphérique, donc je me demandais si quelqu'un pouvait répondre à ces deux questions :

1) Existe-t-il déjà un logiciel qui fait ce genre de choses ? J'ai cherché assez attentivement mais je n'ai rien trouvé d'applicable.

2) Par où commencer pour essayer de faire de l'ingénierie inverse sur ce genre de choses ? Y a-t-il des articles, des tutoriels ou des livres utiles qui pourraient m'aider ?

Et juste pour clarifier : le rétro-éclairage fonctionne déjà, ce n'est pas le problème. Je veux juste pouvoir changer la couleur du rétro-éclairage. Cette fonctionnalité est prise en charge par le matériel. L'ordinateur portable est livré avec un logiciel Windows qui fait cela et je veux la même fonctionnalité dans Linux. Je suis prêt à écrire ce logiciel moi-même, je veux juste savoir quelle est la meilleure façon de procéder.

Gracias.

9voto

PopeJamal Points 301

Eh bien, il s'avère que quelqu'un d'autre a trouvé la solution. Un énorme "Merci" à " klystron34 " sur les forums de notebookreview.com. Regardez le fil du forum pour plus d'informations.

Note : Pour autant que je sache, cela fonctionnera pour la plupart des ordinateurs portables basés sur le Clevo P150EM et le P170EM. Ceci a été personnellement vérifié par moi sur un Sager NP9170 sous Ubuntu 12.04. Procédez à vos propres risques. Je ne suis pas responsable des dommages que vous pourriez causer en faisant cela, et tout autre avertissement standard d'Internet. Procédez à vos propres risques. Maintenant, passons aux choses sérieuses :

Tout d'abord, vous devez être capable de compiler un module de noyau, donc mettez à jour vos dépôts :

sudo apt-get update

Maintenant, installez git, les outils de construction et les sources du noyau :

sudo apt-get install git build-essential linux-source

Créez maintenant un répertoire de travail. Je préfère utiliser un dossier "dev" situé dans mon répertoire personnel :

cd ˜
mkdir dev
cd dev

Maintenant, téléchargez la source du module du noyau :

git clone git://git.code.sf.net/p/clevo-wmi/code clevo-wmi-code

Allez dans le répertoire contenant le code source :

cd clevo-wmi-code

"Fabriquer" le module du noyau :

make

Vous devriez maintenant avoir un fichier appelé clevo_wmi.ko

Maintenant, testons et voyons si le module fonctionne réellement en chargeant le module :

sudo insmod /home/<your-username-here>/dev/clevo-wmi-code/clevo_wmi.ko

Si cela a fonctionné, vous devriez maintenant avoir un nouveau répertoire appelé :

/sys/devices/platform/clevo_wmi/kbled

Passez dans ce répertoire :

cd /sys/devices/platform/clevo_wmi/kbled

Vous devriez maintenant être en mesure de changer la couleur de la section centrale de votre clavier en exécutant la commande suivante :

sudo su -c 'echo 100 > middle'

La partie centrale de votre clavier doit maintenant être verte. Remplacer middle con left o right pour changer la section correspondante du clavier. Voici une liste des codes de couleur :

GRB (Green-Red-Blue)
000 - Off
111 - White
100 - Green
010 - Red
001 - Blue
110 - Yellow
011 - Purple
101 - Aqua

Pour installer ce module de noyau de façon permanente, copiez-le au même endroit que le reste de vos modules de noyau (NOTE : Vous devrez probablement effectuer cette étape et l'étape suivante à chaque fois que vous modifierez votre noyau) :

sudo cp ~/dev/clevo-wmi-code/clevo_wmi.ko /lib/modules/`uname -r`/kernel/drivers/platform/x86/

Ensuite, faites ceci (je pense que cela reconstruit la liste des modules du noyau) :

sudo depmod -a

Ensuite, modifiez votre /etc/modules et ajoutez cette ligne à la fin du fichier :

clevo_wmi

Enregistrez vos modifications dans /etc/modules .

Maintenant, chaque fois que vous redémarrez, le module devrait être chargé et vous pouvez alors changer la couleur du rétro-éclairage de votre clavier. Pour savoir comment faire en sorte que le rétroéclairage change de couleur au redémarrage et se souvienne de votre dernier réglage de couleur, c'est un exercice à la portée du lecteur. Vérifiez le docs dans le code source pour obtenir des instructions sur la façon d'utiliser les fonctions de changement de couleur dynamique.

Merci encore au(x) développeur(s) qui ont travaillé dur pour écrire ce module du noyau !

0voto

david6 Points 14408

Comment accéder à cette fonctionnalité ?

Cela peut probablement être réalisé par des scripts astucieux et une fonctionnalité de démarrage.

( Sous Windows, vous devriez probablement écrire du code dans un modèle de mémoire exotique permettant un accès direct au matériel, ou bien écrire un pilote (et une API) pour détecter et contrôler le matériel. )


Comment sélectionner vos préférences ?

Ensuite, certains scripts de base (ou icône appelant scripts) pourraient sélectionner une préférence de couleur spécifique.

Si vous utilisiez Python, pour une interface graphique frontale, ce serait également assez simple.

0voto

Tobias Points 1

Il existe déjà un pilote pour toutes les fonctions de l'ensemble du clavier ET du flymode-key ! TUXEDO Computers a développé ce pilote et le propose sur son forum de support : http://www.linux-onlineshop.de/forum/index.php?page=Thread&threadID=26

Amusez-vous bien :)

0voto

Stephen Points 2878

J'ai créé un script pour changer les couleurs en utilisant la méthode ci-dessus par Pope. Vous pouvez le trouver ici : pb aDWe9s6d (je ne suis pas sûr que le formatage fonctionne correctement, il est donc plus sûr de le copier à partir de là).

#! /bin/bash
#changes keyboard colors
#Noah B.

#Prompt for root
[ "$UID" -eq 0 ] || exec sudo bash "$0" "$@"

off=000
white=111
green=100
red=010
blue=001
yellow=110
purple=011
aqua=101

left=$1
l_code=000
middle=$2
m_code=000
right=$3
r_code=000

#LEFT SIDE

if [ -z "$left" ]
then 
    echo "Enter desired color for the left side:
    (off/white/green/red/blue/yellow/purple/aqua)"
read -p "Color choice: " left
fi

eval "l_code=\$$left"

echo $l_code > /sys/devices/platform/clevo_wmi/kbled/left

#MIDDLE

if [ -z "$middle" ]
then
    echo "Enter desired color for the middle:
    (off/white/green/red/blue/yellow/purple/aqua)"
read -p "Color choice: " middle
fi

eval "m_code=\$$middle"

echo $m_code > /sys/devices/platform/clevo_wmi/kbled/middle

#RIGHT SIDE

if [ -z "$right" ]
then
    echo "Enter desired color for the right side:
    (off/white/green/red/blue/yellow/purple/aqua)"
read -p "Color choice: " right
fi

eval "r_code=\$$right"

echo $r_code > /sys/devices/platform/clevo_wmi/kbled/right

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X