Trình điều khiển kỹ sư đảo ngược cho bàn phím có đèn nền nhiều màu trên máy tính xách tay Clevo


13

Đây là tình huống của tôi:

Gần đây tôi đã mua một chiếc Sager NP9170 (giống như Clevo P170EM) và nó có bàn phím nhiều màu, có đèn nền. Trong Windows 7, bạn có thể khởi chạy một ứng dụng cho phép bạn thay đổi màu của đèn nền thành bất kỳ màu nào (xanh dương, xanh lục, đỏ, v.v.).

Tôi muốn chức năng tương tự trong Linux. Tôi chưa thể tìm thấy bất kỳ phần mềm nào làm điều này, vì vậy tôi đoán tôi sẽ phải tự viết nó. Tôi là một lập trình viên thương mại, nhưng tôi đã không thực hiện nhiều chương trình cấp thấp và chắc chắn tôi chưa bao giờ viết trình điều khiển thiết bị, vì vậy tôi tự hỏi liệu có ai có thể trả lời hai câu hỏi sau không:

1) Đã có phần mềm nào hiện có loại điều này chưa? Tôi đã xem xét khá kỹ lưỡng nhưng không tìm thấy bất cứ điều gì có thể áp dụng.

2) Tôi sẽ bắt đầu từ đâu khi cố gắng đảo ngược kỹ thuật này? Bất kỳ bài viết hữu ích, hướng dẫn, sách có thể giúp đỡ?

Và chỉ cần làm rõ: Đèn nền đã hoạt động, đó không phải là vấn đề. Tôi chỉ muốn có thể thay đổi màu sắc của đèn nền. Chức năng này được hỗ trợ bởi phần cứng. Máy tính xách tay đi kèm với phần mềm windows thực hiện điều này và tôi muốn có chức năng tương tự trong Linux. Tôi sẵn sàng tự viết phần mềm này, tôi chỉ muốn biết cách tốt nhất để đi về nó.

Cảm ơn!

Câu trả lời:


9

Chà, hóa ra, một người khác thực sự đã tìm ra nó. Một "Cảm ơn" rất lớn đến " klystron34 " trên các diễn đàn notebookreview.com. Kiểm tra chủ đề diễn đàn để biết thêm thông tin.

Lưu ý: Theo như tôi biết, điều này sẽ hoạt động cho nhiều / hầu hết các máy tính xách tay dựa trên cổ phiếu Clevo P150EM và P170EM. Điều này đã được tôi xác minh cá nhân trên Sager NP9170 trên Ubuntu 12.04. Tiến hành có nguy cơ của riêng bạn. Tôi không chịu trách nhiệm cho bất kỳ thiệt hại nào bạn có thể gây ra khi làm điều này và bất kỳ sự từ chối internet tiêu chuẩn nào khác. Tiến hành có nguy cơ của riêng bạn. Bây giờ, vào những thứ tốt:

Trước tiên, bạn cần có khả năng biên dịch mô-đun hạt nhân, vì vậy hãy cập nhật kho lưu trữ của bạn:

sudo apt-get update

Bây giờ, cài đặt git, các công cụ xây dựng và nguồn kernel:

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

Bây giờ tạo một thư mục làm việc. Tôi thích sử dụng một thư mục "dev" nằm trong thư mục nhà của tôi:

cd ˜
mkdir dev
cd dev

Bây giờ, tải xuống nguồn cho mô-đun hạt nhân:

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

Đi vào thư mục với mã nguồn:

cd clevo-wmi-code

"Tạo" mô-đun hạt nhân:

make

Bây giờ bạn sẽ có một tập tin gọi là clevo_wmi.ko

Bây giờ, hãy kiểm tra và xem nếu mô-đun thực sự hoạt động bằng cách tải mô-đun:

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

Nếu nó hoạt động, bây giờ bạn sẽ có một thư mục mới gọi là:

/ sys / thiết bị / nền tảng / clevo_wmi / kbled

Thay đổi thư mục đó:

cd /sys/devices/platform/clevo_wmi/kbled

Bây giờ bạn có thể thay đổi màu của phần giữa của bàn phím bằng cách thực hiện lệnh sau:

sudo su -c 'echo 100 > middle'

Phần giữa của bàn phím của bạn bây giờ sẽ có màu xanh lá cây. Thay thế middlebằng lefthoặc rightđể thay đổi phần tương ứng của bàn phím. Dưới đây là danh sách các mã màu:

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

Để cài đặt mô-đun hạt nhân này vĩnh viễn, sao chép nó vào cùng một vị trí với phần còn lại của mô-đun hạt nhân của bạn (LƯU Ý: Bạn có thể sẽ phải thực hiện bước này và bước tiếp theo bất cứ khi nào bạn thay đổi hạt nhân của mình):

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

Tiếp theo, làm điều này (tôi nghĩ rằng xây dựng lại danh sách các mô-đun hạt nhân):

sudo depmod -a

Sau đó chỉnh sửa /etc/modulestệp của bạn và thêm dòng này vào cuối tệp:

clevo_wmi

Lưu các thay đổi của bạn vào /etc/modules.

Bây giờ, bất cứ khi nào bạn khởi động lại, mô-đun sẽ được tải và sau đó bạn có thể thay đổi màu của đèn nền trên bàn phím của bạn. Tìm hiểu làm thế nào để nó thay đổi màu sắc khi khởi động lại và ghi nhớ cài đặt màu cuối cùng của bạn là một bài tập dành cho người đọc. Kiểm tra docsthư mục trong mã nguồn để biết hướng dẫn về cách sử dụng các tính năng thay đổi màu động.

Cảm ơn agin cho (các) nhà phát triển đã làm việc chăm chỉ để viết mô-đun hạt nhân này!


Tôi rất vui mừng: D Cảm ơn. Sẽ rất tuyệt nếu nó được đưa vào kernel một ngày nào đó. BTW: có bất kỳ cách tiêu chuẩn nào để phơi bày điều này với UI, để Unity hoặc WM khác có thể sử dụng nó không?
bcelary

1
Kể từ 2017-Dec có một số mẫu Clevo mà tài xế chưa hỗ trợ. Random_fade và Random_flicker hoạt động, nhưng việc đặt các phần nhất định của bàn phím thành các màu cụ thể không hoạt động.
Mutant Bob

0

Làm thế nào để bạn truy cập chức năng như vậy?

Điều này có thể đạt được bằng một số kịch bản thông minh và chức năng khởi động.

(Trong Windows, bạn có thể cần phải viết mã trong mô hình bộ nhớ kỳ lạ cho phép truy cập phần cứng trực tiếp hoặc thay vào đó cần phải viết trình điều khiển (và API) để phát hiện và kiểm soát phần cứng.)


Làm thế nào để bạn chọn sở thích của bạn?

Sau đó, một số tập lệnh cơ bản (hoặc tập lệnh gọi biểu tượng) có thể chọn tùy chọn màu cụ thể.

Nếu bạn đã sử dụng Python, đối với GUI mặt trước, nó cũng sẽ khá đơn giản.


Cám ơn phản hồi của bạn! Điều tôi đang tìm kiếm là: a) một liên kết đến một số phần mềm mà tôi đã bỏ lỡ đã thực hiện điều này. b) một số hướng dẫn về nơi bắt đầu xác định thêm về bàn phím.
PopeJamal




Bạn cần xác định số phần / nhãn hiệu cho thành phần bàn phím ..
david6


0

Tôi đã tạo một kịch bản để thay đổi màu sắc bằng phương pháp trên của Giáo hoàng. Bạn có thể tìm thấy nó ở đây: pb aDwe9s6d (không chắc định dạng ở đây có hoạt động tốt hay không nên sao chép an toàn hơn từ đó)

#! /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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.