Clevo Dizüstü Bilgisayarlarda Çok Renkli Arkadan Aydınlatmalı Klavye için Ters Mühendis Sürücüsü


13

İşte benim durumum:

Son zamanlarda bir Sager NP9170 (Clevo P170EM ile aynı) satın aldım ve çok renkli, arkadan aydınlatmalı bir klavyeye sahip. Windows 7 altında , arka aydınlatmanın rengini bir avuç renkten (mavi, yeşil, kırmızı, vb.) Herhangi birine değiştirmenize izin veren bir uygulama başlatabilirsiniz .

Aynı işlevselliği Linux altında istiyorum. Bunu yapan bir yazılım bulamadım, bu yüzden sanırım bunu kendim yazmak zorunda kalacağım. Ticaretle programcıyım, ancak çok düşük seviyeli programlama yapmadım ve kesinlikle bir aygıt sürücüsü yazmadım, bu yüzden herhangi birinin bu iki soruya cevap verip veremeyeceğini merak ediyordum:

1) Bu tür bir şey yapan herhangi bir yazılım var mı? Oldukça iyice baktım ama uygulanabilir bir şey bulamadım.

2) Bu tür şeyleri tersine çevirmeye çalışırken nereden başlasam? Yararlı olabilecek faydalı makaleler, öğreticiler, kitaplar var mı?

Ve sadece açıklığa kavuşturmak için: Arka aydınlatma zaten çalışıyor, sorun bu değil. Sadece arka plan aydınlatmasının rengini değiştirmek istiyorum. Bu işlevsellik donanım tarafından desteklenir. Dizüstü bilgisayar bunu yapan Windows yazılımı ile geldi ve ben de aynı işlevselliği Linux'ta istiyorum. Bu yazılımı kendim yazmaya hazırım, sadece bunun için en iyi yolu bilmek istiyorum.

Teşekkürler!

Yanıtlar:


9

Anlaşıldığı üzere, bir başkası bunu anladı. Notebookreview.com forumlarında " klystron34 " e dev bir "Teşekkür ederiz" . Daha fazla bilgi için forum başlığına göz atın .

Not: Bildiğim kadarıyla, bu stok Clevo P150EM ve P170EM dayalı birçok / çoğu dizüstü bilgisayar için çalışacaktır. Bu kişisel olarak Ubuntu 12.04'teki Sager NP9170'da doğrulandı. Kendi sorumluluğunuzdadır. Bunu yaparken neden olabileceğiniz hasarlardan ve diğer standart internet sorumluluk reddlerinden sorumlu değilim. Kendi sorumluluğunuzdadır. Şimdi güzel kısma geçelim:

İlk olarak, bir çekirdek modülünü derleyebilmeniz gerekir, bu yüzden depolarınızı güncelleyin:

sudo apt-get update

Şimdi git'i, derleme araçlarını ve çekirdek kaynağını yükleyin:

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

Şimdi çalışan bir dizin oluşturun. Giriş dizinimde bulunan bir "dev" klasörü kullanmayı tercih ederim:

cd ˜
mkdir dev
cd dev

Şimdi çekirdek modülünün kaynağını indirin:

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

Kaynak kodun bulunduğu dizine gidin:

cd clevo-wmi-code

Çekirdek modülünü "yap":

make

Şimdi adlı bir dosyanız olmalı clevo_wmi.ko

Şimdi, modülü yükleyerek modülün gerçekten çalışıp çalışmadığını test edelim:

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

Eğer işe yaradıysa, şimdi yeni bir dizininiz olmalıdır:

/ Sys / cihazlar / platform / clevo_wmi / kbled

Bu dizine geçin:

cd /sys/devices/platform/clevo_wmi/kbled

Şimdi aşağıdaki komutu yürüterek klavyenizin orta bölümünün rengini değiştirebilmeniz gerekir:

sudo su -c 'echo 100 > middle'

Klavyenizin orta kısmı şimdi yeşil olmalıdır. Değiştir middleile leftveya rightklavyenin gelen bölümünü değiştirmek için. Renk kodlarının bir listesi:

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

Bu çekirdek modülünü kalıcı olarak kurmak için, çekirdek modüllerinizin geri kalanıyla aynı konuma kopyalayın (NOT: Çekirdeğinizi her değiştirdiğinizde muhtemelen bu adımı ve sonraki adımı uygulamanız gerekir):

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

Sonra, bunu yapın (bence çekirdek modülleri listesini yeniden oluşturur):

sudo depmod -a

Ardından /etc/modulesdosyanızı düzenleyin ve bu satırı dosyanın sonuna ekleyin:

clevo_wmi

Değişikliklerinizi olarak kaydedin /etc/modules.

Şimdi, her yeniden başlattığınızda, modül yüklenmeli ve ardından klavyenizdeki arka ışığın rengini değiştirebilirsiniz. Yeniden başlatma sırasında renkleri nasıl değiştirebileceğini bulmak ve son renk ayarınızı hatırlamak okuyucuya bırakılan bir alıştırmadır. Kontrol docsözellikleri değişen dinamik rengi nasıl kullanılacağına dair talimatlar için kaynak kodundaki dizini.

Bu çekirdek modülünü yazmak için çok çalışan geliştiricilere teşekkürler!


Memnun oldum: D Teşekkürler. Bir gün çekirdeğe dahil olsaydı harika olurdu. BTW: Unity veya diğer WM'nin bunu kullanabilmesi için bunu kullanıcı arayüzüne göstermenin standart yolları var mı?
bcelary

1
2017-Aralık itibariyle sürücünün henüz desteklemediği bazı Clevo modelleri var. Random_fade ve random_flicker çalışır, ancak klavyenin belirli bölümlerini belirli renklere ayarlamak işe yaramaz.
Mutant Bob

0

Bu işlevselliğe nasıl erişiyorsunuz?

Bu muhtemelen bazı akıllı komut dosyaları ve başlatma işlevleri ile gerçekleştirilebilir.

(Windows'da, doğrudan donanım erişimine izin veren egzotik bir bellek modelinde kod yazmanız veya bunun yerine donanımı algılamak ve kontrol etmek için bir sürücü (ve API) yazmanız gerekir.)


Tercihlerinizi nasıl seçersiniz?

Ardından bazı temel komut dosyaları (veya simge çağırma komut dosyaları) belirli bir renk tercihini seçebilir.

Python kullandıysanız, bir ön uç GUI için de oldukça basit olurdu.


Yanıtınız için teşekkürler! Aradığım şey ya: a) Bunu zaten yapan, kaçırdığım bazı yazılımların bağlantısı. b) klavye hakkında daha fazla şey belirlemeye nereden başlayacağınıza dair bazı rehberlik
PopeJamal




Klavye bileşeninin parça numarasını / markasını tanımlamanız gerekiyor ..
david6


0

Pope tarafından yukarıdaki yöntemi kullanarak renkleri değiştirmek için bir komut dosyası oluşturdum. Burada bulabilirsiniz: pb aDWe9s6d (buradaki biçimlendirmenin oradan kopyalamak için çok daha güvenli çalışacağından emin değilim)

#! /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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.