web-dev-qa-db-ja.com

Clevoラップトップのマルチカラーバックライトキーボード用リバースエンジニアドライバー

私の状況は次のとおりです。

最近、Sager NP917 (Clevo P170EMと同じ)を購入しました。これには、マルチカラーのバックライト付きキーボードがあります。 Windows 7では、 app を起動して、バックライトの色をいくつかの色(青、緑、赤など)に変更できます。

Linuxでも同じ機能が必要です。これを行うソフトウェアを見つけることができなかったので、自分で作成しなければならないと思います。私はプログラマーですが、低レベルのプログラミングを行ったことはありません。また、デバイスドライバーを書いたこともないので、次の2つの質問に答えられる人がいるかどうか疑問に思いました。

1)この種のことを行うソフトウェアはすでに存在しますか?私はかなり徹底的に見てきましたが、該当するものは見つかりませんでした。

2)この種のことをリバースエンジニアリングしようとするとき、どこから始めますか?役立つ記事、チュートリアル、書籍はありますか?

そして明確にするために:バックライトはすでに機能していますが、それは問題ではありません。バックライトの色を変えたいだけです。この機能はハードウェアでサポートされています。ラップトップにはこれを行うWindowsソフトウェアが付属しており、Linuxでも同じ機能が必要です。私はこのソフトウェアを自分で書いても構わないと思っています。ただそれについて最善の方法を知りたいだけです。

ありがとう!

13
PopeJamal

結局のところ、他の誰かが実際にそれを理解しました。 notebookreview.comフォーラムの「klystron34」に対する巨大な「ありがとう」。詳細については、 フォーラムスレッド をご覧ください。

注:私の知る限り、これは、ストックClevo P150EMおよびP170EMに基づいた多く/ほとんどのラップトップで機能します。これは、Ubuntu 12.04のSager NP9170で個人的に検証されました。ご自身の責任で進めてください。あなたがこれを行うことによって生じた損害、およびその他の標準的なインターネットの免責事項については責任を負いません。ご自身の責任で進めてください。さて、良いものに:

まず、カーネルモジュールをコンパイルできる必要があるため、リポジトリを更新します。

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/devices/platform/clevo_wmi/kbled

そのディレクトリに切り替えます:

cd /sys/devices/platform/clevo_wmi/kbled

次のコマンドを実行して、キーボードの中央セクションの色を変更できるようになりました。

Sudo su -c 'echo 100 > middle'

キーボードの中央部分が緑色になります。 middleleftまたは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ディレクトリを確認してください。

このカーネルモジュールの作成に懸命に取り組んでいる開発者に感謝します。

9
PopeJamal

キーボード全体とフライモードキーのすべての機能のドライバーが既に存在します! TUXEDO Computersはこのドライバーを開発し、サポートフォーラムで提供しています。 http://www.linux-onlineshop.de/forum/index.php?page=Thread&threadID=26

楽しんで :)

0
Tobias

このような機能にどのようにアクセスしますか?

これはおそらく、いくつかの巧妙なスクリプトとスタートアップ機能によって実現できます。

(Windowsでは、ハードウェアへの直接アクセスを許可するエキゾチックなメモリモデルでコードを記述するか、ハードウェアを検出および制御するドライバー(およびAPI)を記述する必要があります。)


設定をどのように選択しますか?

その後、いくつかの基本的なスクリプト(またはアイコン呼び出しスクリプト)は、特定の色設定を選択できます。

Pythonを使用してフロントエンドGUIを作成した場合も、かなり簡単です。

0
david6

Popeによる上記の方法を使用して、色を変更するスクリプトを作成しました。ここで見つけることができます: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
0
Noah