Драйвер реверс-інженера для різнокольорової клавіатури з підсвічуванням на ноутбуках Clevo


13

Ось моя ситуація:

Нещодавно я придбав Sager NP9170 (такий же, як у Clevo P170EM), і він має різнокольорову клавіатуру з підсвічуванням. У Windows 7 можна запустити додаток, який дозволяє змінити колір підсвічування на будь-який із кількох кольорів (синій, зелений, червоний тощо).

Я хочу той самий функціонал під Linux. Я не зміг знайти жодного програмного забезпечення, яке б це зробило, тому, мабуть, мені доведеться його самостійно написати. Я програміст по торгівлі, але не займався програмуванням на низькому рівні, і, звичайно, ніколи не писав драйвер пристрою, тому мені було цікаво, чи хтось може відповісти на ці два питання:

1) Чи є вже якесь програмне забезпечення, яке робить подібні речі? Я переглянув досить ретельно, але не знайшов нічого застосовного.

2) З чого я б почав намагатися змінити інженер подібних речей? Будь-які корисні статті, навчальні посібники, книги, які можуть допомогти?

І лише для уточнення: підсвічування вже працює, це не проблема. Я просто хочу мати можливість змінити колір підсвічування. Ця функціональність підтримується апаратним забезпеченням. Ноутбук постачався з програмним забезпеченням Windows, яке це робить, і я хочу те саме функціонування в Linux. Я готовий сам написати це програмне забезпечення, я просто хочу знати, як краще це зробити.

Спасибі!

Відповіді:


9

Ну, як виявляється, хтось ще насправді це з'ясував. Величезне "Дякую" " klystron34 " на форумах notebookreview.com. Перегляньте нитку на форумі для отримання додаткової інформації.

Примітка. Наскільки мені відомо, це буде працювати для багатьох / більшості ноутбуків на базі Clevo P150EM та P170EM. Це було особисто підтверджено мною на Sager NP9170 на Ubuntu 12.04. Продовжуйте на власний ризик. Я не несу відповідальності за будь-який збиток, який ви можете заподіяти цим, та будь-які інші стандартні відмови в Інтернеті. Продовжуйте на власний ризик. Тепер, про хороший матеріал:

По-перше, ви повинні мати можливість скласти модуль ядра, тому оновіть свої сховища:

sudo apt-get update

Тепер встановіть git, інструменти збирання та джерело ядра:

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

Тепер створіть робочий каталог. Я вважаю за краще використовувати папку "dev", розташовану в моєму домашньому каталозі:

cd ˜
mkdir dev
cd dev

Тепер завантажте джерело для модуля ядра:

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

Перейдіть у каталог із вихідним кодом:

cd clevo-wmi-code

"Зробити" модуль ядра:

make

Тепер у вас має бути названий файл clevo_wmi.ko

Тепер давайте перевіримо, чи модуль працює насправді, завантаживши модуль:

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

Якщо це спрацьовувало, тепер у вас повинен бути новий каталог під назвою:

/ sys / пристрої / платформа / clevo_wmi / kbled

Перейдіть до цього каталогу:

cd /sys/devices/platform/clevo_wmi/kbled

Тепер ви зможете змінити колір середнього розділу клавіатури, виконавши таку команду:

sudo su -c 'echo 100 > middle'

Середній розділ вашої клавіатури тепер повинен бути зеленим. Замінити middleз leftабо rightзмінити відповідну частину клавіатури. Ось список кольорових кодів:

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

Щоб встановити цей модуль ядра назавжди, скопіюйте його в те саме місце, що і інші ваші модулі ядра (ПРИМІТКА. Вам, ймовірно, доведеться виконати цей крок і наступний крок, коли ви зміните ядро):

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

Далі зробіть це (я думаю, відновлює список модулів ядра):

sudo depmod -a

Потім відредагуйте /etc/modulesфайл та додайте цей рядок до кінця файлу:

clevo_wmi

Збережіть свої зміни в /etc/modules.

Тепер при кожному перезавантаженні модуль слід завантажувати, а потім ви можете змінити колір підсвітки на клавіатурі. З'ясувати, як змусити його змінювати кольори при перезавантаженні та запам'ятати останню настройку кольорів - це вправа, що залишається читачеві. Перегляньте docsкаталог у вихідному коді, щоб дізнатися, як використовувати функції динамічного зміни кольору.

Дякуємо архіву розробникам, які наполегливо працювали над написанням цього модуля ядра!


Я в захваті: D Дякую. Було б чудово, якби воно колись увійшло до ядра. BTW: Чи існують якісь стандартні способи впливу цього інтерфейсу, щоб Unity чи інша WM могли ним користуватися?
випускний вечір

1
Станом на 2017 - грудень є деякі моделі Clevo, які драйвер ще не підтримує. Функція random_fade та random_flicker працює, але встановити певні розділи клавіатури на певні кольори не працює.
Мутант Боб

0

Як ви отримуєте доступ до такої функціональності?

Можливо, цього можна досягти за допомогою розумних сценаріїв та функцій запуску.

(У Windows, ймовірно, вам потрібно буде записати код в екзотичну модель пам'яті, що дозволяє прямий доступ до обладнання, або замість цього потрібно написати драйвер (і API) для виявлення та керування обладнанням.)


Як ви обираєте свої уподобання?

Тоді деякі основні сценарії (або сценарії, що викликають піктограму) можуть вибрати певну колірну перевагу.

Якщо ви використовували Python для інтерфейсу інтерфейсу, це було б досить просто.


Дякую за Вашу відповідь! Те, що я шукаю, це: а) посилання на якесь програмне забезпечення, яке я пропустив, це вже робить це. б) деякі вказівки з того, з чого почати, щоб визначити більше про клавіатуру.
PopeJamal




Вам потрібно визначити номер деталі / марку для компонента клавіатури ..
david6


0

Я створив сценарій зміни кольорів, використовуючи вищевказаний метод Папою. Ви можете знайти його тут: pb aDWe9s6d (не впевнений, чи форматування тут буде працювати правильно, тому безпечніше копіювати звідти)

#! /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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.