← Documents Documentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus GitHub 원문 ↗

Linux 6.18.37 · ABI / obsolete

Roccat Koneplus mouse obsolete ABI

Roccat Koneplus의 persistent profile, button·settings payload, sensor와 tracking control unit calibration sysfs ABI를 설명합니다.

Source pathDocumentation/ABI/obsolete/sysfs-driver-hid-roccat-koneplus
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

Profile 선택과 binary profile data

sysfs-driver-hid-roccat-koneplus:1-109

0-4 startup profile, firmware info, 500-stroke macro와 5개 profile의 button·resolution·sensitivity·light 설정을 고정 길이 payload로 관리합니다.

Tracking sensor와 calibration

sysfs-driver-hid-roccat-koneplus:111-145

tracking·distance control, Easy 기능, TCU register와 calibration을 제어하고 calibration 중 표면의 30×30 pixel sample image를 읽습니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/actual_profile
2 Date: October 2010
3 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
4 Description: The integer value of this attribute ranges from 0-4.
5 When read, this attribute returns the number of the actual
6 profile. This value is persistent, so its equivalent to the
7 profile that's active when the mouse is powered on next time.
8 When written, this file sets the number of the startup profile
9 and the mouse activates this profile immediately.
10 Users: http://roccat.sourceforge.net
11
12 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/startup_profile
13 Date: October 2010
14 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
15 Description: The integer value of this attribute ranges from 0-4.
16 When read, this attribute returns the number of the actual
17 profile. This value is persistent, so its equivalent to the
18 profile that's active when the mouse is powered on next time.
19 When written, this file sets the number of the startup profile
20 and the mouse activates this profile immediately.
21 Please use actual_profile, it does the same thing.
22 Users: http://roccat.sourceforge.net
23
24 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/firmware_version
25 Date: October 2010
26 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
27 Description: When read, this file returns the raw integer version number of the
28 firmware reported by the mouse. Using the integer value eases
29 further usage in other programs. To receive the real version
30 number the decimal point has to be shifted 2 positions to the
31 left. E.g. a returned value of 121 means 1.21
32 This file is readonly.
33 Please read binary attribute info which contains firmware version.
34 Users: http://roccat.sourceforge.net
35
36 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/info
37 Date: November 2012
38 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
39 Description: When read, this file returns general data like firmware version.
40 When written, the device can be reset.
41 The data is 8 bytes long.
42 Users: http://roccat.sourceforge.net
43
44 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/macro
45 Date: October 2010
46 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
47 Description: The mouse can store a macro with max 500 key/button strokes
48 internally.
49 When written, this file lets one set the sequence for a specific
50 button for a specific profile. Button and profile numbers are
51 included in written data. The data has to be 2082 bytes long.
52 This file is writeonly.
53 Users: http://roccat.sourceforge.net
54
55 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile_buttons
56 Date: August 2010
57 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
58 Description: The mouse can store 5 profiles which can be switched by the
59 press of a button. A profile is split in settings and buttons.
60 profile_buttons holds information about button layout.
61 When written, this file lets one write the respective profile
62 buttons back to the mouse. The data has to be 77 bytes long.
63 The mouse will reject invalid data.
64 Which profile to write is determined by the profile number
65 contained in the data.
66 Before reading this file, control has to be written to select
67 which profile to read.
68 Users: http://roccat.sourceforge.net
69
70 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile[1-5]_buttons
71 Date: August 2010
72 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
73 Description: The mouse can store 5 profiles which can be switched by the
74 press of a button. A profile is split in settings and buttons.
75 profile_buttons holds information about button layout.
76 When read, these files return the respective profile buttons.
77 The returned data is 77 bytes in size.
78 This file is readonly.
79 Write control to select profile and read profile_buttons instead.
80 Users: http://roccat.sourceforge.net
81
82 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile_settings
83 Date: October 2010
84 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
85 Description: The mouse can store 5 profiles which can be switched by the
86 press of a button. A profile is split in settings and buttons.
87 profile_settings holds information like resolution, sensitivity
88 and light effects.
89 When written, this file lets one write the respective profile
90 settings back to the mouse. The data has to be 43 bytes long.
91 The mouse will reject invalid data.
92 Which profile to write is determined by the profile number
93 contained in the data.
94 Before reading this file, control has to be written to select
95 which profile to read.
96 Users: http://roccat.sourceforge.net
97
98 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/profile[1-5]_settings
99 Date: August 2010
100 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
101 Description: The mouse can store 5 profiles which can be switched by the
102 press of a button. A profile is split in settings and buttons.
103 profile_settings holds information like resolution, sensitivity
104 and light effects.
105 When read, these files return the respective profile settings.
106 The returned data is 43 bytes in size.
107 This file is readonly.
108 Write control to select profile and read profile_settings instead.
109 Users: http://roccat.sourceforge.net
110
111 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/sensor
112 Date: October 2010
113 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
114 Description: The mouse has a tracking- and a distance-control-unit. These
115 can be activated/deactivated and the lift-off distance can be
116 set. The data has to be 6 bytes long.
117 This file is writeonly.
118 Users: http://roccat.sourceforge.net
119
120 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/talk
121 Date: May 2011
122 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
123 Description: Used to active some easy* functions of the mouse from outside.
124 The data has to be 16 bytes long.
125 This file is writeonly.
126 Users: http://roccat.sourceforge.net
127
128 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/tcu
129 Date: October 2010
130 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
131 Description: When written a calibration process for the tracking control unit
132 can be initiated/cancelled. Also lets one read/write sensor
133 registers.
134 The data has to be 4 bytes long.
135 Users: http://roccat.sourceforge.net
136
137 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>/tcu_image
138 Date: October 2010
139 Contact: Stefan Achatz <erazor_de@users.sourceforge.net>
140 Description: When read the mouse returns a 30x30 pixel image of the
141 sampled underground. This works only in the course of a
142 calibration process initiated with tcu.
143 The returned data is 1028 bytes in size.
144 This file is readonly.
145 Users: http://roccat.sourceforge.net
146

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Profile 선택과 device 정보

1-42
BASE=/sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<product-id>.<num>/koneplus/roccatkoneplus<minor>

$BASE/actual_profile
$BASE/startup_profile
$BASE/firmware_version
$BASE/info

contact는 Stefan Achatz <erazor_de@users.sourceforge.net>, user는 http://roccat.sourceforge.net다.

attributeDate값·길이access의미
actual_profile2010년 10월integer 0-4read/write현재 profile과 다음 power-on startup profile
startup_profile2010년 10월integer 0-4read/writeactual_profile과 같은 기능을 제공하는 구 interface
firmware_version2010년 10월raw integerread-onlydecimal point를 왼쪽으로 두 자리 이동한 firmware version
info2012년 11월8 byteread/writefirmware를 포함한 일반 data 조회와 device reset

actual_profile을 읽으면 현재 profile 번호를 반환한다. persistent 값이므로 mouse power를 다음에 켤 때 활성화될 profile과 같다. 값을 쓰면 startup profile을 저장하고 mouse가 그 profile을 즉시 활성화한다.

startup_profile도 0-4 범위에서 정확히 같은 동작을 한다. 중복 interface이므로 actual_profile을 사용해야 한다.

firmware_version은 mouse가 보고한 firmware version을 raw integer로 반환한다. 다른 program에서 다루기 쉽게 integer를 사용하며 실제 version은 decimal point를 왼쪽으로 두 자리 옮겨 구한다. 예를 들어 121은 1.21이다. 이 file 대신 firmware version이 포함된 binary info attribute를 읽는 것이 권장된다.

info를 읽으면 firmware version 같은 일반 data 8 byte를 반환한다. 8-byte data를 쓰면 device를 reset할 수 있다.

Macro와 profile button layout

44-80
$BASE/macro
$BASE/profile_buttons
$BASE/profile[1-5]_buttons
attributeDatepayloadaccess
macro2010년 10월2082 bytewrite-only
profile_buttons2010년 8월77 byteread/write
profile[1-5]_buttons2010년 8월77 byteread-only

mouse는 최대 500번의 key 또는 button stroke로 이루어진 macro를 내부에 저장할 수 있다. macro에 쓰면 특정 profile의 특정 button sequence를 설정한다. 2082-byte payload에 button 번호와 profile 번호가 포함되어야 한다.

mouse는 button press로 전환할 수 있는 profile 다섯 개를 저장한다. 각 profile은 settings와 buttons 두 부분으로 나뉘며 profile_buttons는 button layout을 담는다.

profile_buttons에 77 byte를 쓰면 payload 내부 profile 번호가 지정하는 profile의 button data를 mouse에 기록한다. mouse는 잘못된 data를 거부한다. 읽기 전에는 control에 써서 읽을 profile을 선택해야 한다.

profile1_buttons부터 profile5_buttons까지의 file은 각 profile button data 77 byte를 직접 읽는 기존 read-only interface다. 이제 control로 profile을 선택하고 profile_buttons를 읽는 방식을 사용해야 한다.

Profile settings

82-109
$BASE/profile_settings
$BASE/profile[1-5]_settings
attributeDatepayloadaccess
profile_settings2010년 10월43 byteread/write
profile[1-5]_settings2010년 8월43 byteread-only

profile_settings는 resolution, sensitivity, light effect 같은 profile 설정을 담는다. 43-byte payload를 쓰면 payload의 profile 번호가 지정한 settings를 mouse에 기록하며 invalid data는 mouse가 거부한다. 읽기 전에는 control에 써서 profile을 선택해야 한다.

profile1_settings부터 profile5_settings까지는 각 profile settings 43 byte를 직접 반환하는 기존 read-only interface다. control로 profile을 선택한 뒤 profile_settings를 읽는 방식으로 대체되었다.

Sensor, Talk와 TCU calibration

111-145
$BASE/sensor
$BASE/talk
$BASE/tcu
$BASE/tcu_image
attributeDatepayloadaccess동작
sensor2010년 10월6 bytewrite-onlytracking·distance control unit와 lift-off distance 설정
talk2011년 5월16 bytewrite-onlymouse의 일부 easy* 기능을 외부에서 활성화
tcu2010년 10월4 byteread/writeTCU calibration 시작·취소와 sensor register 접근
tcu_image2010년 10월1028 byteread-onlycalibration 중 sample surface의 30×30 pixel image

mouse에는 tracking control unit와 distance control unit가 있다. sensor에 6 byte를 쓰면 두 unit을 활성화하거나 비활성화하고 lift-off distance를 설정할 수 있다.

talk에 16 byte를 쓰면 mouse의 일부 easy* 기능을 외부 host에서 활성화한다.

tcu에 4 byte를 쓰면 tracking control unit calibration을 시작하거나 취소할 수 있다. 같은 attribute로 sensor register를 읽고 쓸 수도 있다.

tcu_image를 읽으면 mouse가 sample한 아래 표면의 30×30 pixel image를 반환한다. tcu로 시작한 calibration 과정 중에만 동작하며 반환 data 크기는 1028 byte다.

TCU calibration과 surface image read
tcu에 4-byte calibration start commandtracking control unit가 표면 samplecalibration 진행 중 tcu_image read30×30 pixel / 1028-byte data 반환tcu command로 calibration 종료 또는 취소

tcu command로 calibration context를 만든 동안에만 tcu_image가 sample surface data를 반환한다.