Pilote de rétro-ingénierie pour clavier rétroéclairé multicolore sur les ordinateurs portables Clevo

13

Voici ma situation:

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

Je veux cette même fonctionnalité sous Linux. Je n'ai pas pu trouver de logiciel qui le fasse, 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 de pilote de périphérique, donc je me demandais si quelqu'un pouvait répondre à ces deux questions:

1) Y a-t-il déjà un logiciel qui fait ce genre de chose? J'ai regardé assez attentivement, mais je n'ai rien trouvé d'application.

2) Par où commencer en essayant de faire de l'ingénierie inverse ce genre de chose? Des articles utiles, des tutoriels, des livres qui pourraient vous 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é sous Linux. Je suis prêt à écrire ce logiciel moi-même, je veux juste savoir la meilleure façon de procéder.

Merci!

PapeJamal
la source

Réponses:

9

Eh bien, il se trouve que quelqu'un d'autre l'a réellement compris. Un énorme "Merci" à " klystron34 " sur les forums de notebookreview.com. Consultez le fil du forum pour plus d'informations.

Remarque: Pour autant que je sache, cela fonctionnera pour de nombreux ordinateurs portables basés sur le stock Clevo P150EM et le P170EM. Cela a été personnellement vérifié par moi sur un Sager NP9170 sur Ubuntu 12.04. Procédez à vos risques et périls. Je ne suis pas responsable des dommages que vous pourriez causer en faisant cela, et de toute autre exclusion de responsabilité Internet standard. Procédez à vos risques et périls. Maintenant, passons aux bonnes choses:

Tout d'abord, vous devez être en mesure de compiler un module du noyau, alors mettez à jour vos référentiels:

sudo apt-get update

Maintenant, installez git, les outils de compilation et la source 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 avec le code source:

cd clevo-wmi-code

"Make" 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 fonctionnait, vous devriez maintenant avoir un nouveau répertoire appelé:

/ sys / devices / platform / clevo_wmi / kbled

Passez à ce répertoire:

cd /sys/devices/platform/clevo_wmi/kbled

Vous devriez maintenant pouvoir modifier la couleur de la section centrale de votre clavier en exécutant la commande suivante:

sudo su -c 'echo 100 > middle'

La section centrale de votre clavier doit maintenant être verte. Remplacez middlepar leftou rightpour modifier la section correspondante du clavier. Voici une liste des codes couleurs:

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 dans le même emplacement que le reste de vos modules de noyau (REMARQUE: vous devrez probablement effectuer cette étape et l'étape suivante chaque fois que vous changez votre noyau):

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

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

sudo depmod -a

Modifiez ensuite votre /etc/modulesfichier 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 doit être chargé et vous pouvez ensuite changer la couleur du rétroéclairage de votre clavier. Déterminer comment le faire changer de couleur au redémarrage et se souvenir de votre dernier réglage de couleur est un exercice laissé au lecteur. Vérifier ladocs répertoire dans le code source pour obtenir des instructions sur la façon d'utiliser les fonctions de changement de couleur dynamique.

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

PapeJamal
la source
Je suis ravi: D Merci. Ce serait génial s'il était inclus dans le noyau un jour. BTW: existe-t-il des moyens standard d'exposer cela à l'interface utilisateur, afin que Unity ou un autre WM puisse l'utiliser?
bcelary
1
À partir de 2017-décembre, il existe certains modèles Clevo que le pilote ne prend pas encore en charge. Les fonctions random_fade et random_flicker fonctionnent, mais la définition de certaines sections du clavier sur des couleurs spécifiques ne fonctionne pas.
Mutant Bob
0

Comment accédez-vous à ces fonctionnalités?

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

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


Comment choisissez-vous vos préférences?

Ensuite, certains scripts de base (ou scripts appelant des icônes) 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.

david6
la source
Merci pour votre réponse! Ce que je recherche, c'est: a) un lien vers un logiciel que j'ai manqué qui le fait déjà. b) quelques conseils sur où commencer pour en savoir plus sur le clavier.
PopeJamal
Vous devez identifier le numéro de pièce / la marque du composant clavier.
david6
0

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 sais pas si le formatage ici fonctionnera bien donc plus sûr de 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
Noé
la source